[Node.js] Node.js의 비동기적 작동이 어떻게 나오게 되었을까? (작성중)

2023. 7. 28. 01:59개발 공부/Javascript

Node.js 환경에서 약 2년 정도를 개발했지만, 이미 구성되어 있는 프레임에서만 개발을 진행했다.

어떻게 동작하고, 왜 Node.js가 생겨나게 된건지 이제서야 궁금해지기 시작해서 공부하게 되었다.

내용의 기반은 Node.js 디자인 패턴 책과 기타 논문을 종합한 짬뽕 글이다.

 

학습 목표: 

- Node.js 철학, "Node way"

- Reactor 패턴 - Node.js의 비동기 이벤트 주도 아키텍처의 핵심 메커니즘

-브라우저와 다르게 서버에서 동작하는 Javascript의 의미

 

Node.js 코어를 구성하는 몇가지 원칙들이 있다.

- 최소한의 기능세트를 가지고 코어의 바깥부분에 유저랜드 혹은 유저스페이스라고 불리우는 사용자 전용 모듈 생태계이다.

(*유저랜드: 사용자들이 모여서 소통하고 상호작용하는 가상의 공간, 유저(사용자) + 랜드(땅, 지역) 을 합쳐서 사용자들이 모인 하나의 지역)

 

- 코드 모양 뿐만 아니라 범위의 측면에서도 작은 모듈을 디자인 해야한다.

Unix 철학에 근거하여 '작은 것이 아름답다', '각 프로그램은 한가지 역할만 잘하도록 만들어라' 등 두가지 수칙으로 Node.js는 새로원 차원으로 변경했다.

다들 아는 NPM (패키지 관리자)의 도움을 받아 각 패키지가 자신이 필요로 하는 버전의 종속성 패키지들을 갖도록 하여 종속성 지옥을 벗어나게 해준다. 이렇게 하여 재사용성이 향상되는 장점이 있다.

 

한가지의 기능을 쪼갠다는게 사실 기준이 모호했었는데,

더 작고 집중화된 모듈을 갖는 것, 그래서 모두에게 공유와 재사용을 가능하게 하는 것 이것이 Node.js가 추구하는 원칙이다.

 

Node.js의 가장 일반적인 패턴은

- 명백란 단일 진입점을 제공하기 위해 단하나의 함수느 클래스를 만드는 것이다. 이러한 모듈의 가장 큰 특징은 확장보다는 

'사용'에 초점을 둔 것이다.

 

단순함이야말로 궁극의 정교함이다.
-레오나르도 다빈치-

 

 

그렇다면, Node.js는 어떻게 작동할까?

핵심 개념은

- 비동기 특성의 핵심인 리액터 패턴이다.

 

단일 스레드 아키텍처, 논 블로킹 I/O와 같은 주요 개념을 빼놓을 수가 없다.

I/O가 컴퓨터의 기본 동작들 중에서 가장 느리다는 것을 모두 알고 있을 것이다.

 

추후 To. Do

 

 

'개발 공부 > Javascript' 카테고리의 다른 글

[개념] axios 와 fetch 어떤게 더 좋을까?  (0) 2023.07.15