Code&Data Insights
[NodeJS] NodeJS 기본 개념 정리 본문
NodeJS 란?
: 크롬의 자바스크립트 해석 엔진 V8로 이루어져 있음
-> 자바스크립트 실행 환경(런타임)
(ex) 유저가 공지 페이지에 접속했을 때, 공지를 띄어주는 것
app.get('/notice', function(req, res){
res.send('공지입니다')
})
NodeJS를 쓰는 이유?
: 브라우저 말고도 다른 환경에서도 JS를 실행 할 수 있게 도와줌
- 큰 처리를 필요로 하는 요청이 들어올 시, 대기 시간/처리 시간이 오래 걸림, 요청을 다 처리할 때 까지 다른 요청을 받지 않음
=> 반면, NodeJS는 Non-blocking IO
=> 요청 순서대로 처리하는 것이 아닌, 처리 순서가 빠른 것 부터 처리함, 요청을 계속 받음
- 코드가 짧고 쉬워서 빠른 개발이 가능하지만, 웹서비스에만 강점
- 서버사이드 프레임 워크
: 서버사이드 자바스크립트 런타임으로, Express와 같은 프레임워크를 사용해 서버 애플리케이션을 개발
서버사이드 프레임워크란?
1) HTTP 요청 및 응답 처리
- 클라이언트로부터의 HTTP 요청을 받아들이고, 이에 대한 응답을 반환하는 기능을 제공
2) 라우팅: 특정 URL 패턴에 따라 어떤 함수나 메서드가 실행될지 결정
=> 각기 다른 URL 요청에 대해 적절한 처리가 가능
3) 데이터베이스 연동
- 데이터베이스와의 상호작용을 쉽게 할 수 있도록 도와줌
- ORM(Object-Relational Mapping)등을 통한 데이터베이스 작업이 가능
4) 미들웨어
- 요청 처리 과정에서 공통적으로 수행해야 하는 작업(인증, 로깅 등)을 쉽게 추가할 수 있는 방법을 제공함
NestJS
: Node.js 위에서 동작하기 때문에 동일한 non-blocking I/O를 지원
- 모듈화된 아키텍처를 제공하여, 체계적이고 관리하기 쉬운 프로젝트 구조
- 의존성 주입(Dependency Injection)을 기본적으로 지원하여 모듈 간 결합도를 낮출 수 있음
- 데코레이터로 설정과 코드 작성을 간편하게 합니다.
=> RESTful API를 만들 때 데코레이터를 사용해 라우트를 정의할 수 있음
- HTTP 서버, WebSocket, GraphQL, 마이크로서비스 등 다양한 기능을 내장하거나 쉽게 확장할 수 있도록 지원
'Web Development > Back-end' 카테고리의 다른 글
[TypeScript] TypeScript 공부하기 (0) | 2024.06.12 |
---|