왜 노드일까?

Donghun Seol·2023년 4월 5일
0

스타트업이 node.js로 개발을 해야 하는 이유

레퍼런스

https://www.youtube.com/watch?v=fXBZvpG_IUQ

노드를 사용한 탑티어 기업들

탑티어 테크기업에서도 잘 쓰고 있음
넷플릭스, 트렐로, 페이팔, 링크드인, 월마트

페이팔

  • 특정 서비스의 프로토타입을 자바 vs 노드 팀으로 나눠서 같이 개발시킴
  • 2인으로 구성된 노드 개발팀이 5인으로 구성된 자바팀과 유사한 퍼포먼스 냄
  • 퍼포먼스는 성능 뿐만아니라 생산성도 의미함

링크드인

  • 원래 루비온 레일즈로 개발하다 노드로 변경
  • 15대 였던 서버를 4대로 줄임
  • 서버사이드 쓰루풋이 2배 향상됨

월마트

  • 커머스는 일반적으로 자바를 사용하는게 정석이지만
  • 클라이언트 서버사이드 언어 통일을 위해 노드를 도입

스타트업에 유리한 노드의 특징

개발속도가 빠르다, 프론트, 백엔드 언어의 통일
싱글스레드 이벤트루프 기반으로 코드작성의 생산성이 높음
NPM의 풍부한 오픈소스 생태계
서버의 퍼포먼스가 좋고 스케일 업에도 문제 없다.
AWS와 궁합도 좋다.

NodeJS vs Django

레퍼런스

노마드 코더
https://www.youtube.com/watch?v=PnhmeFakkXg

워크로드에 적합한 프레임워크를 선택해야 된다.

워크로드의 CRUD 비율.

django

모든게 들어있는 큰 상자와 같아서, 필요없는 기능을 버리면서 구현해나감
CRUD에 적합한 프레임워크(게시판, 인스타그램, 페이스북)
유저, 인증, 뷰, 템플릿, URL, .. 등 모든것이 최적화되어 포함되어 있다.

Node.JS

레고블럭처럼 하나하나 외부 모듈을 조합해가면서 만들어나간다.
리얼타임처리가 필요한 경우(넷플릭스, 우버)
JS로 된 다른 API와의 통신이 빈번한 경우
커스터마이징이 많이 필요한 경우

Node.JS에 적합한 워크로드

일반적으로 노드는 실시간, 이벤트기반으로 많은 데이터를 처리하거나 많은 동시성이 요구될때 사용된다. 가볍고, 이벤트 기반이며, 서비스간의 많은 커뮤니케이션이 발생하는 작업에 적합하다. CPU Bound 워크로드가 아니라 I/O Bound 워크로드에 적합하다. 따라서 채팅, 스트리밍, IoT, MSA같은 서비스에 Node.JS를 활용하는 것이 적합하다.

profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글