본문 바로가기

기술면접 준비

Node.js를 사용해야 하는 이유

항해99를 마치고 취업 준비 스터디인 스프린터스에 신청했습니다. 앞으로 2주 간은 기술면접 준비와 이력서 수정 등에 집중하며 보낼 예정입니다. 그래서 기술면접을 준비하는 김에 더 쉽게 기억할 수 있도록! 그리고 기술면접을 준비하는 다른 분들에게 조금이라도 도움이 될 수 있도록 블로그에 기록으로 남겨보려고 합니다.

 

📕 오늘의 질문

Node.js를 사용해야 하는 이유를 설명해보세요. 

노드를 사용해야 하는 이유, 즉 노드의 장점을 주제로 정리하겠습니다.

먼저 간단히 노드JS의 특징을 짚어보겠습니다.

노드JS의 특징

  • Non-blocking I/O
  • Event-driven
  • Data-intensive
  • I/O intensive

 

1) 비동기 I/O 처리, 이벤트 기반

노드는 싱글 스레드로 작동하여 오래 걸리는 작업을 기다리지 않고,

다음 코드를 바로 실행합니다. 이는 서버를 효율적으로 운용할 수 있는 방법입니다.

 

2) 뛰어난 확장성

노드에서는 npm을 사용하여 이미 만들어진 다양한 모듈을 사용할 수 있습니다.

npm이란 node package manager로 일종의 오픈소스 생태계입니다.

npm의 이러한 모듈을 활용하여 또다른 모듈을 만들거나 프레임워크를 만들 수도 있습니다.

 사례: 페이팔, 링크드인

 

주의) CPU를 많이 사용하는 분야에서는 사용을 주의해야 합니다.

노드는 멀티 스레딩 환경이 아니기 때문에 CPU가 많이 사용되는 경우 효율적인 운용이 어렵습니다.

> CPU가 여러 개여도 하나 만의 CPU를 사용

> 노드는 단순 IO(입출력) 처리가 많은 경우 유리 (ex. 소켓)

 

📙 파생 질문

스타트업이 Node.js를 사용하면 좋은 점은 무엇이 있나.

빠른 속도와 우수한 퍼포먼스

페이팔과 링크드인의 사례를 통해 알아보겠습니다.

페이팔: 5명의 자바 개발자 vs 2명의 노드 개발자로 시험해봤을 때, 후자가 더 우수한 퍼포먼스를 냈다고 합니다.

여기서 퍼포먼스란? 앱의 퍼포먼스 뿐만 아니라 생산성을 의미합니다!

링크드인: 노드JS로 속도를 2배에서 10배까지 끌어올렸다고 합니다. 

 

 

출처

https://zooo.kr/fxbbs/f_view.php?i_code=smart&i_id=123

https://imraccoon-developer.tistory.com/12

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

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