자 오늘은 몇 시간 전 Node.js를 시작한 노둥이의 첫 TIL을 정리해보겠다..
(이 글은 Wecode notion 자료 그리고 멘토 준님과 함께합니다..)
Node.js란 간단하게 비동기 이벤트-기반 JavaScript 런타임 환경이다.
즉 Asynchronous event-driven JavaScript Runtime environment...
hmmm... okay~
비동기에 대해선 앞서 정리한 벨로그에 설명해두었다.
자바스크립트는 기본적으로 싱글 스레드 언어이기 때문에 효율적인 작업 처리를 위해 비동기를 사용한다.
동기: 하나의 작업이 완료된 후 다음 작업으로, 순차적으로 실행하는 방법
비동기: 작업이 완료되지 않더라도 다른 작업이 실행될 수 있도록 처리하는 방법
노드에서의 이벤트는 하나의 작업 요청이다. 노드가 비동기적으로 이벤트를 처리한다는 것은 한 명의 클라이언트에 대한 작업이 완료되지 않더라도 다른 클라이언트의 요청을 받는다는 의미이다.
노드의 싱글 스레드는 이벤트(작업 요청)을 처리(응답)해주는 역할을 할 뿐이다.
JavaScript 런타임 환경은 Chrome V8 엔진이 담당한다. 싱글 스레드 기반의 동작 원리를 이해하고 JavaScript로 코드를 작성하면 헤비한 작업들은 이 Chrome V8 엔진이 처리해준다.
먼저 Express가 없는 Node.js로 서버를 열어보자.
와... 서버가 열렸고, httpie로 200OK와 헤더의 메시지를 확인할 수 있다.. (신기해🤭)
여기에 Express를 사용해보자.
express는 노드 개발자들이 사용하는 백엔드 프레임워크이고, 라우팅과 로직의 모듈화를 위해 사용된다.
require는 Node.js에서 다른 패키지를 불러올 때 사용하는 키워드다. express를 불러준다.
코드 양만 봐도 간단해진 것을 알 수 있다.
라우팅까지 확인해보자.
이런 모듈을 sendPosts.js 라고 작성해주었다.
그리고 http localhost:8000/products 엔드포인트로 이동해보면,
export 해주었던 모듈도 잘 나오는 걸 확인할 수 있다.
//참고자료