Code&Data Insights

[NodeJS] NodeJS 기본 개념 정리 본문

Web Development/Back-end

[NodeJS] NodeJS 기본 개념 정리

paka_corn 2024. 5. 29. 11:27

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
Comments