-
[WHY] Node.js 기반으로 API 서버를 구축하면 좋은 이유Server/Node.js 2022. 10. 30. 13:13
[이전 글 참고]
1. [WHAT] Node.js란 무엇인가? : https://growth-msleeffice.tistory.com/51
[다음 글 참고]
3. Node.js 모듈 시스템 : https://growth-msleeffice.tistory.com/53
2. [Why] Node.js 기반으로 API 서버를 구축하면 좋은 이유
2.1 frontend와 backend 기술 스택 통합
- 클라이언트와 서버의 동일한 언어 사용으로 코드를 모듈로 만들어서 "재사용"가능
- FE개발자 서버 프로그래밍 접근성 향상
- 개발팀 생산성 향상
2.2 빠른 처리속도, 동시요청 처리 성능
- V8 엔진은 JIT 컴파일 방식, V8의 최적화 기법으로 놀라운 속도로 작업을 수행한다.
- libuv라는 비동기 I/O에 중점을 둔 오픈소스 라이브러리를 사용함으로써 이벤트 기반, 싱글쓰레드, non-blocking I/O 모델을 구현한 덕분에 지연없이 동시요청을 빠르게 처리한다.
- 탄생배경 : Node.js 개발 전 Apache HTTP Server가 최대 10,000개 이상의 동시 요청을 다루는데 있어서 갖는 문제를 해결하고자 JS를 그대로 활용하면서 이벤트 기반의 높은 처리성능을 낼 수 있는 network 서버를 만드는 것에 관심이 있었고 그렇게 Node.js가 탄생했다.
2.3 MSA(Micro Service Architecture)에 적합
- Monoilithic Architecture : 하나의 서버에 결제, 인증, 스트리밍 등의 모든 기능이 포함되어있는 구조.
- Micro Service Architecture
- MSA란 시스템의 전체적인 구조를 서비스별로 독립적으로 나뉘어서 구성되는 아키텍쳐이다.
- MSA 구조 안에서는 기능이 추가될 때마다 기존 시스템에 더해지는 것이 아니라 가벼운 시스템을 새롭게 구축하는 방법으로 확장하게 된다.
- 따라서, Node.js는 상대적으로 가벼운 런타임이기 때문에 MSA와 아주 잘 조화되어 사용될 수 있다.
- 결제기능, 인증 기능을 분리해서 하나의 시스템에서 하나의 기능만 하도록 만들어진 구조.
- node.js는 풍부한 생태계(라이브러리 약 80만개)를 갖고 있고, JSON 형식을 그대로 사용할 수 있는 등 많은 장점들이 있습니다. 이러한 이유로 자바스크립트와 노드로 백엔드 API 서버를 구축하는 것은 좋은 선택일 수 있습니다. Node.js의 경우 속도와 확장성을 요구하는 집중적인 I/O가 있는 실시간 애플리케이션, 웹, 앱 어플리케이션 개발에 적합한 기술입니다. 최근 Node.js는 엔터프라이즈급(Netflix, NASA, 페이팔 등)에서 Node.js를 채택해서 활발히 사용되고 있습니다.
'Server > Node.js' 카테고리의 다른 글
Error Handling (0) 2022.11.20 [HOW] Node.js 모듈 시스템 (0) 2022.10.30 [WHAT] Node.js란 무엇인가? (0) 2022.10.30