devlog

Spring, Node.js 비교 본문

카테고리 없음

Spring, Node.js 비교

bellaah 2020. 5. 6. 00:03

그동안 인턴과 취업 준비를 하며 바빴다. 블로그를 보니 3달동안이나 포스팅을 안했다.. 🤭
사실 bear로 혼자 정리한 글은 몇 백개인데 ㅠㅠ 그래서 오늘은 오랜만에 포스팅을 해본다.

1. Spring와 Node.js

Spring은 Java를 이용하는 프레임워크이고, Node.js는 Javascript 런타임이다. 둘 다 서버 개발을 할 수 있기때문에 차이점을 정리해보았다.

2. 차이점

2-1. Spring

장점

  • 크기와 부하의 측면에서 경량이다.
  • Spring이 안정적이라는 말을 많이 한다. 그 이유는 레퍼런스가 많아 이슈를 쉽게 해결할 수 있고, 자유성이 낮다는 점에서 안정적이라고 생각한다.
  • 스프링은 2002년 로드 존슨이 최초로 개발하였기에 Spring을 다루는 개발자가 많아 인력 문제도 없다.
  • 많은 개발자들이 오랫동안 사용하고 유지해왔기 때문에 알려진 버그와 보안 문제는 많이 잡혀있어서 안정성이 우수하다.
  • 정형화된 패턴이 있다.
  • IOC/ DI로 느슨한 결합도를 유지한다.
  • 자유도는 낮지만 안정적이다.

단점

  • 설정이 복잡한 편이다.

2-2. node.js

장점

  • V8 엔진을 기반으로 한 성능이 뛰어나다.
  • 싱글스레드, 비동기 IO 처리에 기반한 빠른 속도를 가진다.
  • 파일 I/O나 네트워크 처리를 이벤트 드리븐 방식으로 처리하기 때문에 빠른 처리가 가능하다.
  • CPU의 대기시간을 최소화 할 수 있다.
  • CPU 부하가 적고, 많은 커넥션을 동시에 처리해야 하는 구조에 적합하다.
  • 자바스크립트를 이용해서 개발할 수 있기 때문에 프론트엔드 개발자의 진입장벽이 낮다.
  • 기존 Java 서버에 비해 생산성이 훨씬 높다.

단점

  • 싱글스레드 모델이기 때문에 하나의 작업에 시간이 오래걸리면 시스템 전체의 성능이 급격하게 떨어진다.
  • 에러가 발생할 경우 프로세스 자체가 죽어버리므로 주의해야한다.(watch dog 등으로 처리 가능)
  • 멀티코어 활용을 위해서 cluster 모듈을 이용해야 하고, 세션을 공유할 경우 부가적인 작업이 필요하다.
  • 비동기 제어가 까다롭다.
Comments