
이벤트 루프와 비동기 처리 + 가비지 컬렉션과의 연관자바스크립트는 싱글 스레드 기반이다. 싱글 스레드이기 때문에 한번에 한가지 작업만 실행할 수 있다.하지만 그렇다고 한번에 한가지 작업만 하게되면? 문제가 많을것이다. (무한 대기가 생기겠지?)그렇기 때문에 브라우저나 노드 환경에서 여러 작업을 동시에 처리할 수 있도록 설계되어있는데, 이 핵심이 이벤트 루프다. 이벤트 루프란?자바스크립트의 비동기 처리를 가능하게하는 매커니즘이다. (비동기 작업 HTTP요청이나 setTimeout 등..)비동기 작업은 나중에 실행되도록 예약하고, 이벤트 루프는 준비된 작업을 실행할 수 있도록 한다.이때 어떤 순서대로 실행을 시킬까?우리가 여기서 알아야하는 기본적인 개념은 '콜스택, 태스트큐, 마이크로태스크큐' 이다. (W..
자바스크립트에서 함수가 선언된 렉시컬 스코프를 기억하고, 그 스코프 밖에서도 해당 스코프에 접근할 수 있는 함수(개념)를 말한다. 함수와 그 함수가 선언된 환경을 함께 묶은 개념으로 내부 함수가 외부 함수의 변수에 접근하거나 저장된 값을 유지할 수 있는 특성을 제공한다. 주요 특징 간단히 요약1. 변수 접근: 내부 함수가 외부 함수의 변수에 접근할 수 있다.2. 변수 유지: 외부 함수 실행이 종료되어도 내부 함수는 외부 함수의 변수를 참조한다.3. 데이터 은닉: 클로저를 사용하여 데이터를 외부에서 직접 접근할 수 없도록 보호할 수 있다. 예시function 외부함수(외부매개변수) { return function 내부함수(내부매개변수) { console.log(`외부함수: ${외부매개..

회사에서 매일 업무 스케쥴을 작성하는데, 주간마다 이것들을 모아서 정리한 후에 보고를 해야한다. 그러다보니 귀찮은 일들이 발생하고.. 이 부분을 개선하기 위해 어떤분이 (지금은 퇴사한..) 가공하여 추출하는 프로그램을 개발했었다. 스위프트로 되어있었기때문에 내가 봐도 뭐 알길이 있나..ㅎ; 그래서 그냥 궁금했던 electron과 결합해서 가공, 추출하는 프로그램을 js로도 만들어보자 생각해서 책을 완독하게되었다. 책은 회사 책장에 꽂혀있었다. ㅎㅎ! 일단 2018년도에 제작된 책이라 특정 버전을 설치해서 진행해야하고 그럼에도 오류가 생기는 부분들이있었다. 그래서 그런 부분은 대략적으로 이해만 하고 넘어갔고, 나중에 보니 약간 다른부분들도 충분히 존재했다. 책을 굳이 안 읽고 dock을 읽고 블로거글들을 ..
클린코드 - 03. 함수 어떤 프로그램이든 가장 기본적인 단위가 함수이다. 우리는 어떤 함수를 읽었을때 프로그램 내부를 직관적으로 파악할 수 있을까? 작게 만들어라 블록과 들여쓰기 중첩 구조가 생길 만큼 함수가 커지면 안된다. (if else문 등 주의하여 쓰자) 블록 안에서 호출하는 함수 이름을 적절히 짓는다면 코드를 이해하기 쉽다. 한가지만 해라 예시: 1. 페이지가 테스트 페이지인지 판단 => 2. 설정 페이지와 해제 페이지를 넣는다 => 3. 페이지를 HTML로 렌더링한다. 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한가지 작업을 한다고 할 수 있다. 더이상 줄이기가 불가능 하며 if, else를 따로 뺀다고 해도 다른 표현일 뿐 추상화 수준이 바뀌지 않는다. 함수 당 추상화 수준은 하나로..