본문 바로가기
728x90

JAVASCRIPT50

[JS] 동기와 비동기 동기와 비동기 지금까지 자바스크립트와 리액트를 공부하면서 동기와 비동기에 대해 정확히 이해하고 사용한 것이 아닌, 필요에 의해 대략적인 이해만 하고 사용하고 있었다. 하지만 비동기적인 처리를 점점 더 많이 해나갈수록 정확히 이해하고 사용해야겠다는 필요성을 느끼게 되어 이번 기회에 정확히 자바스클비트의 동작 원리를 알고 사용해야 겠다고 생각한다. 동기와 비동기에 대해 공부해보니 결국 이 두 가지는 수행 순서에 대한 매커니즘이라는 생각이 들엇으며, 두 가지에 대해 공부를 해보니 blocking, non-blocking과 동기 비동기를 연관지어 이야기하고 있다. 다만 이 두가지의 개념의 관점이 다른 곳에 맞춰진 개념들이지만 묶어서 언급하면 쉽게 이해가 되므로, 동기와 비동기의 추상적인 개념을 블록킹과 논블록킹.. 2022. 3. 30.
[JS][스코프 클로저] 모듈 모듈 클로저의 능력을 활용하면서 표면적으로는 콜백과 상관없는 코드 패턴들이 있다. 그중 가장 강력한 패턴인 모듈을 살펴보자. function foo() { var something = "cool"; var another = [1, 2, 3]; function doSomething() { console.log(something); } function doAnother() { console.log(another.join("!")); } } 이 코드에는 클로저의 흔적이 보이지 않는다. 우리가 볼 수 있는 것은 몇 가지 비공개 데이터 변수인 something과 another 그리고 내부 함수 doSomething()과 doAnother()가 있다. 이들 모두 foo()의 내부 스코프를 렉시컬 스코프로 가진다. .. 2022. 2. 19.
[JS][스코프 클로저] 반복문과 클로저 반복문과 클로저 클로저를 설명하는 가장 흔하고 표준적인 사례는 for 반복문이다. for (var i = 1; i 2022. 2. 18.
[JS][스코프 클로저] 클로저 개요 스포크 클로저 이제 자바스크립트에서 굉장히 중요하지만, 자주 잊어버리곤 해서 거의 신화적인 부분인 클로저를 보자. 렉시컬 스코프에 대한 설명을 제대로 이해했다면 클로저는 앞에서 배웠던 것들보다 쉽고 뻔해 보일 것이다. 깨달음 자바스크립트를 사용해봤지만 단 한번도 클로저 개념을 완전히 이해한 적이 없는 이들에게는 클로저가 열반에 드는 것처럼 고된 노력을 들여야 이해할 수 있는 것일지도 모르겠다. 클로저는 렉시컬 스코프에 의존해 코드를 작성한 결과로 그냥 발생한다. 이용하려고 굳이 의도적으로 클로저를 생성할 필요도 없다. 모든 코드에서 클로저는 생성되고 사용된다. 그러므로 여기서 적절히 클로저의 전반을 파악하면 클로저를 목적에 따라 확인하고, 받아들이고, 이용할 수 있다. 깨달음의 순간이 이럴 것이다. "아.. 2022. 2. 18.
[JS][호이스팅] 호이스팅이란? 호이스팅 이제 스코프라는 개념에 어느 정도 익숙해졌..나? 어디서 얻허게 선언되는지에 따라 변수가 다른 여러 수준의 스코프에 붙게 되는 과정도 이해했을 것이다. 함수 스코프와 블록 스코프 모두 이점에서는 똑같은 규칙에 따라 작동한다. 한 스코프 안에서 선언된 변수는 바로 그 스코프에 속한다. 선언문이 스코프의 어디에 있는지에 따라 스코프에 변수가 추가되는 과정에 미묘한 차이가 있다. 여기서 그 차이에 대해 살펴보자. 닭이 먼저냐 달걀이 먼저냐 자바스크립트 프로그램이 실행되면 코드가 한 줄 한 줄 위에서부터 차례대로 해석될 것이라고 생각하기 쉽다. 대체로 옳은 생각이지만, 바로 이런 추정 대문에 프로그램을 잘못 이해하는 경우가 있다. 다음 코드를 보자. a = 2; var a; console.log(a);.. 2022. 2. 17.
[JS][함수 vs 블록 스코프] 스코프 역할을 하는 블록 스코프 역할을 하는 블록 함수가 가장 일반적인 스코프 단위이자 현재 자바스크립트에서 통용되는 가장 널리 퍼진 디자인 접근법이기는 하지만, 다른 스코프 단위도 존재하고 이를 이용하면 더 좋은 깔끔한 코드를 작성할 수 있다. 자바스크립트를 제외하고도 많은 언어가 블록 스코프를 지원한다. 그래서 다른 언어를 사용하던 개발자들은 블록 스코프라는 개념에 익숙하지만, 자바스크립트만을 써왔던 개발자에게는 이개념이 약간은 어색할 수 있다. 그러나 아직 블록 스코프 방식으로 한 줄도 코딩해 본 적이 없더라도 다음과 같은 자바스크립트 코드는 매우 익숙할 것이다. for (var i = 0; i < 10; i++) { console.log(i); } 변수 i를 for반복문의 시작부에 선언하는 이유는 보통 i를 오직 for반.. 2022. 2. 17.
728x90