node.js 구조, 이벤트 루프와 libuv의 이해

old_dorim·2022년 7월 30일
1

애증의 JavaScript

목록 보기
3/8

Node.js의 구조


node.js는 이런 구조로 이루어져있다. 인터넷에 조금씩 다르게 나와있던데 대충 말하는 건 같아보인다. 명백한 사실관계가 궁금하면 해당 깃허브에 들어가면 node.js 프로젝트를 확인할 수 있다. src 디렉토리를 확인하면 된다.
https://github.com/nodejs/node

v8

여기서 v8이 Javascript를 돌리는 메인 엔진이다. 크롬도 이걸 쓴다. Javascript엔진은 브라우저의 랜더링 프로세스에서 한 자리 빌려준 싱글스레드이기 때문에, 병렬로 처리되는 것처럼 보이는 비동기처리가 불가능하다. 혼자서는. 그래서 따로 비동기처리를 담당하는 libuv 엔진과 같이 돌아간다.

libuv

비동기처리를 담당하는 라이브러리다. 네트워크, 파일 I/O등의 비동기 처리를 지원해준다.
구 버전에서는 libeio, libev였는데 libuv 바뀌었다. 이벤트루프와 시스템 커널 API를 제공하여 비동기처리를 돕는다.

참고자료

https://blog.naver.com/pjt3591oo/221976414901
위 블로그가 정말 잘 나와있어서 다음에 다시 읽고 공부해봐야겠다
https://yjhjstz.gitbooks.io/deep-into-node/content/chapter1/chapter1-0.html

profile
미래엔 햄스터를 다운 받을 수 있겠지? 설치류니까...

0개의 댓글

관련 채용 정보