-
Node.JS 디자인 패턴 및 바이블 (1)JS 2021. 7. 24. 09:15728x90
간단하게 책을 읽고 중요한 부분만 정리할 생각입니다.
🚀 Node.JS 의 철학
책에서 Node.JS 의 철학은 쉽게 말해서 "경량 코어 + 경량 모듈러 시스템을 통해 간결하게 코드를 작성하는 것" 으로
이를 달성하기 위해 Node.JS 내부 코어 패턴 및 아키텍처를 알아야 한다고 소개하고 있습니다.
이는 저와 같은 JavaScript기반의 Front-end 개발자에게도 필수적인 요소라고 생각합니다.
🚀 Node.JS 구성
아래와 같이 구성되어 있다고 합니다. 나머지는 다 아실거고, 책에서는 가장 중요한 libuv에 대해서 구체적으로 다루고 있습니다.
👻 libuv
각각의 os의 호환성을 해결해주면서 가장 중요한 논블로킹 동작을 표준화시켜주는 C로 작성된 라이브러리입니다.
🍩 리액터 패턴
libuv는 리액터 패턴을 기반으로 구성되어 있습니다.
책에서는 조금은 어렵게 설명해두었는데 쉽게 이야기하면 비동기 작업 요청이 발생하면 이벤트 큐에 우선 넣어두고
이벤트 루프가 돌면서 해당 작업들을 순차적으로 실행해서 결과를 리턴하는 방식입니다.
많이들 함께 이야기 하는 프로액터 패턴과 비교해서 좀 더 간단하게 처리할 수 있는 패턴이죠
🚀 Node.JS 에서의 JavaScript
제가 주로 JavaScript를 활용하는 영역인 브라우져와 Node.js의 JavaScript는 다소 차이가 있습니다.
이러한 차이는 실행되는 영역때문에 발생하게 되죠.
그래서 이 책에서는 Node.js에서 JavaScript를 사용할 때 다음과 같은 특징을 소개합니다.
👻 최신 JavaScript 사용
브라우져는 트랜스파일러와 폴리필의 사용하면 되니 최신 버젼을 활용합니다.
👻 모듈 시스템
예전에는 Node.js는 CommonJS, 브라우져 진영에서는 AMD기반으로 모듈시스템이 구성됩니다.
프론트엔드는 대부분 ES모듈 기반으로 동작하고, Node.js는 아직 CommonJS 및 ES모듈 문법을 모두 사용하는 편이라 합니다.
👻 운영체제 기능에 대한 접근
👻 네이티브 코드 실행
C/C++ 레거시들과 같은 네이티브 코드를 바인드하여 모듈 생성가능 및 WASM도 활용가능
'JS' 카테고리의 다른 글
Node.JS 디자인 패턴 및 바이블 (3) (0) 2021.07.25 Node.JS 디자인 패턴 및 바이블 (2) (0) 2021.07.24 [Typescript] 1. 개론 (0) 2021.04.25 [Javascript] 6. 이벤트 처리 (0) 2021.04.25 [Javascript] 5. 클라이언트 측 자바스크립트 (0) 2021.04.25