[JS] 클로저(Closure)의 개념과 React에서의 활용법
·
CS
개요클로저는 공식 문서에서 다음과 같이 설명된다.클로저는 주변 상태(어휘적 환경)에 대한 참조와 함께 묶인(포함된) 함수의 조합입니다. 즉, 클로저는 내부 함수에서 외부 함수의 범위에 대한 접근을 제공합니다. JavaScript에서 클로저는 함수 생성 시 함수가 생성될 때마다 생성됩니다. 직관적으로는 다음과 같은 의미를 가진다. 클로저는 함수가 “자기 주변의 변수”를 기억해서, 나중에도 계속 사용할 수 있게 해주는 기능이다. 즉 클로저를 쓰면 다음과 같은 이점을 가질 수 있다.변수를 보호하고 감출 수 있다. (은닉)값을 유지할 수 있다. (상태 유지)콜백, 비동기 함수 등에서 엄청 유용하게 쓰인다.해당 내용들을 이해하기 위해선 먼저 자바스크립트의 스코프에 대한 이해가 필요하다.2024.01.03 - [C..
자바스크립트의 스레드와 동시성 처리를 위한 이벤트 루프(Event Loop)
·
기타
개요컴퓨터공학에서 스레드는 동시에 여러 작업이나 프로그램을 실행하는 것을 의미한다. 코드를 실행할 수 있는 각 단위를 스레드라고 한다. 스레드는 멀티 스레드와 싱글 스레드로 나뉘며, 멀티 스레드는 말 그대로 한번에 여러 작업을 처리할 수 있는 것을 의미하고 싱글 스레드는 한번에 하나의 작업만을 처리할 수 있다. 자바스크립트는 어떤 스레드를 가지며 어떻게 로직을 처리하는지 알아보자.자바스크립트의 스레드자바스크립트는 기본적으로 싱글 스레드 언어이다. 자바스크립트의 메인 스레드는 브라우저에서 사용자 이벤트를 처리하고, 디스플레이 렌더링 및 페인팅, 일반적인 웹이나 앱을 구성하는 대부분의 코드를 실행한다. 웹이나 앱을 렌더링하는 과정은 모두 하나의 스레드에서 일어나기 때문에 느린 웹 & 앱 스크립트는 전체 브라..
[JS] 스코프에 대하여
·
CS
개요 Scope 는 범위라는 뜻을 가진다. Javascript에서 scope는 변수에 접근할 수 있는 범위를 뜻한다. 주로 동적 스코프, 정적 스코프(렉시컬 스코프), 블록레벨 스코프의 3가지 스코프가 있다. 동적 스코프 동적 스코프는 함수를 호출한 위치에 따라 상위 스코프를 결정한다. 결론적으로 말하자면 자바스크립트는 동적 스코프를 사용하지 않는다. 자바스크립트에서 함수와 스코프를 참조할 때에는 어디에서 호출되었는가만 보기 때문이다. 예시 코드 const func1 = () => { console.log(a); } const func2 = () => { let a = 2; func1(); } let a = 1; func2(); 위의 코드에서 func2 함수를 호출하면 콘솔에는 1가 출력된다. 간단하게 ..