왜 Node.js를 쓰는가 ?

Q kim·2020년 11월 15일
1
post-thumbnail

원본: https://thinkmobiles.com/blog/why-use-nodejs/


프로그래밍 언어로써 그리고 데이터 포멧(JSON)으로써 JavaScript 는 웹 개발을 과감하게 바꿔왔습니다. 웹 브라우저뿐만 아니라 Node.js를 통해 js를 서버에서까지 이용하는 것은 최근의 트렌드입니다. 이번 글에서 우리는 NodeJS를 왜 이용하는지, 무엇이 NodeJS인지 그리고 어디서 이용되는지 알아보겠습니다~

최대한 프로그래밍/코더적인 언어를 지양하고 모두가 이해하기 쉽게 "왜 node가 대단한지" 이야기해보겠습니다.

통계적으로 node를 얼마나 쓰는지는 넘어가겠습니다.

What is Node js?

NodeJS는 자바스크립트 런타임 환경입니다. 런타임 환경이란 소프트웨어 어플리케이션을 구축하고 실행하기 위한 인프라를 의미합니다.

Node를 만든 회사에서는 Node를 "Chrome V8 엔진으로 만들어진 자바스크립트 런타임"이라고 정의했습니다. Wikipedia는 "Nodejs는 코드를 실행시키기 위한 오픈소스, 크로스플렛폼 환경"이라고 정의했습니다. 또한 Techtarget은 "서버 사이드 어플리케이션을 만들기 위한 개발 플렛폼"이라고 정의합니다.

정리하면

  • 서버 프레임워크, 무료
  • window, linux, mac OS등 여러 곳에서 작동합니다.
  • server에서 javascript를 활용합니다.

어떻게 Nodejs가 작동하는지?

  • 작업이 file system으로 이동합니다.
  • 시스템은 다음번 요청을 기다립니다.
  • 파일이 열거나 읽으면 시스템은 컨텐츠를 클라이언트단에 보냅니다.

NodeJS file이 뭐냐면,

  • 작업을 포함하고 설정된 이벤트에 따라 실행합니다.
  • 이벤트는 누군가 서버에 액세스하려고 할 때 발생합니다.
  • 서버에서 파일을 시작해야합니다.
  • 파일 확장자는 '.js'입니다.

마지막으로 NodeJS로 무엇을 할수 있냐면,

  • 동적 컨텐츠를 생성할수 있습니다.
  • 서버에서 파일 생성, 열기, 읽기 또는 삭제가 가능합니다.
  • 데이터베이스와 소통할 수 있습니다.

Why use Node.js

NodeJS를 만든 'Ryan Dahi'이 말하길, 가장큰 장점은 "JavaScript언어가 I/O를 차단하지 않는것"이라고 합니다. 이 주장에 대해 개발자들 사이에서 논쟁이 꽤 있습니다. 일부에서는 CPU 주기가 많은 애플리케이션은 Node에서 충돌이 발생할수 있다고 합니다. 또 다른 일부는 Node 코드는 아주 작은 프로세스로서 작동하기 때문에 문제가 되지않는다고 합니다.
또 다른 장점은 **단일 스레드 이벤트 루프"입니다. 이것은 외부 요청에서 발생하는 I/O를 추상화합니다. 무슨소리냐면, node가 시작될 때 이벤트루프가 시작되고 그뒤에 Input을 처리하고 여러 작업들을 순서대로 실행합니다. 더 자세한 내용은 여기를 참고.

Jim hirschaure가 말하는 "왜 nodejs를 이용하느냐"
1. Google javascript 엔진이라는 것: 빠르고 확장가능한 웹앱이다.
2. 서버 측 애플리케이션: 노드는 특정 이벤트(사용자 작업, 메시지 등)에 의해 흐름이 결정되는 이벤트기반 프로그래밍 모델입니다.
3. 아주 쉽게 확장가능합니다. Uber와 Trello와 같은 앱처럼 여러 CPU 서버로 확장하기가 쉽습니다.
4. 각 프로세스마다. 그리고 서버끼리: 다시말해서, 노드는 개별 프로세스 기반으로 확장되어 멀티 코어 서버에 부하를 분산시킬 수 있습니다.

설명이 좀 어렵습니다. 쉽게 예약해보자면,
1. 초심자에게 좋다. 자바스크립트는 배우기 간단하고 수많은 프레임워크를 가지고 있다.
2. Node를 구글에서 관리하기 때문에 빠릅니다.
3. 데이터를 순수 JSON으로 관리할수 있습니다.
4. 여러 모듈이 공유되어있습니다. ex) NPM
5. 실시간 어플을 만들기 좋습니다. 채팅앱 혹은 게임을 만들기 좋습니다.
6. 데이터 스트리밍에 좋습니다.
7. 자바스크립트는 정말 많은 사람들이 배우는 언어입니다.

개인적으로 node.js를 배운 이유.

: 스타트업에서 일하고 싶었다. 스타트업에서 많이 쓰는 게 뭔지 찾아보니 백엔드 개발자로써는 springnode.js 였다. node.js가 javascript를 기반 언어로 쓰다보니 더 끌렸다. "나중에 프론트 개발도 해야될텐데 node쓰면서 js 익숙해지면 도움이 되겠지?" 하는 마음이 컸다.

profile
https://medium.com/nodejs-server

2개의 댓글

comment-user-thumbnail
2023년 8월 31일

Excellent stuff; I'll let my friends know about it and have them check it out. I appreciate you sharing! Whenever you have more time, go to:

답글 달기
comment-user-thumbnail
2023년 8월 31일

Excellent stuff; I'll let my friends know about it and have them check it out. I appreciate you sharing! Whenever you have more time, go to: run 3

답글 달기