새소식

Node.js

Node.js 란? | ComClothing

  • -
반응형

안녕하세요 : ) 컴클로딩이에요. 오늘은 공대생답게 프로그래밍 관련 글을 포스팅하려고 노트북을 켰어요. 혹시 Node.js 라는 것을 들어보셨나요? 오늘은 간단하게 Node.js가 무엇인지에 대해 설명하고 다음 포스팅에서는 어떻게 설치해서 사용하는지에 대해 알아볼거에요!!

 

 

Node.js 로고

 

Node.js 란?

Node.js를 구글에 검색하면 위키백과에서는 "Node.js는 확장성있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다"(출처 : 위키백과) 라고 명명하고 있어요! 왜 이렇게 정의를 내렸는지는 한 번 알아보도록 할거에요!!이젠 편하게 노드라고 부를게요!!

 

1. Node.js 역사

 

2009년, 노드는 라이언 딜에 의해 개발되었어요. 2009년에도 분명 웹 개발에 사용되는 소프트웨어 플랫폼이 존재했을 텐데 왜 라이언 딜은 또 다른 플랫폼인 노드를 새로 개발했을까요? 그건 의외로 단순해요. 그 당시에 라이언 달은 웹 서버에 파일을 업로드할 때 업로드가 완료되기 전까지 웹 서버에서 이미지를 조회한다거나 데이터를 조회하는 등의 다른 작업을 할 수 없는 불편함을 느꼈고 그것이 시발점이 되었어요.

 

아마 표정이 이랬겠죠?

 

하지만 개발 초기에는 주목받지를 못했어요. 하지만 구글에서 2017년에 V8 개발되고 나서 이를 기반으로 런타임되면서 부터 주목받기 시작했어요! 아래의 이미지를 보시면 바로 알 수 있어요.

위 이미지는 Node.js 다운로드수를 연도별로 월별로 나타낸 도표인데요. 점점점 다운로드수가 증가하는 것이 보이죠?? 우리나라는 아직 JAVA로 개발된 웹 서버들이 많은데 해외에는 Node.js로 개발된 서버들이 많다고 하니 주목할 필요가 있는 것 같아요!!

 

Node.js 다운로드 그래프 참고 링크 

 

Node by Numbers 2018 — NodeSource

presents 2018 Edition For the fourth year in a row, we’ve analyzed a large set of adoption, growth, and success metrics for the Node.js project. The annual numbers tell the story of continued evolution of the Node.js project. By all measures, 2017 was a fa

nodesource.com

 

2. Node.js 특징

 

Node.js 특징은 크게 4가지로 볼 수 있어요.

 

  • 1. 자바스크립트 언어를 사용
  • 2. 이벤트 기반 입출력
  • 3. 비동기 입출력(Non-Blocking I/O)
  • 4. 모듈과 패키지

제일 대표적인 비동기 입출력(Non-Blocking I/O)을 알아보겠어요. 간단하게 그림으로 설명할게요.

동기 입출력 방식으로 파일 읽기

위 그림은 동기 입출력 방식으로 파일을 읽는 것을 나타낸 것인데요!! 보시면 [파일 읽기 요청] -> [파일 준비] -> [파일 처리] <- [데이터 처리] 인데요! 이렇게 되면 파일 처리랑 데이터 처리가 끝날 때까지 다른 작업을 진행을 못하게 돼요!

 

비동기 입출력 방식으로 파일 읽기

반면에 비동기 입출력 방식은 [파일 읽기 요청]을 해놓고 다른 작업을 진행하다가 [파일 처리] 및 [데이터 처리]가 끝나면 파일읽기가 완료되는 거에요! 이렇게 할 수 있는 이유가 "콜백 함수"라는 것 때문인데요!! 콜백 함수의 역할을 간단히 설명하자면 "작업이 끝났을 알려주는 알람"이라고 생각하면 돼요!! "콜백 함수"가 중요해서 나중에 또 따로 포스팅할게용!!

 

마지막으로 모듈과 패키지에 관해 설명만 하고 마무리 지을게요!!

 

위 그림처럼 여러개의 기능을 파일마다 저장을 시켜서 모듈화를 시키는 것이 가능해요! 예를 들어, 어떠한 파일은 데이터베이스와 관련된 파일, 어떠한 파일은 로그인 기능 구현이 담긴 파일 등 처럼요! 그럼 로그인 기능, 데이터 처리 기능 등등으로 기능들이 나눠질 수 있겠죠?? 그리고 그러한 모듈을 사용할 때 사용하는 것이 require이에요!! 아직 관심만 가지는 단계라면 이정도만 알아두셔도 좋을 것 같네요!!

 

이렇게 여러 모듈을 합쳐서 하나의 패키지로 만들어 두면, 다른 프로그래머들도 npm 프로그램으로 손쉽게 패키지를 설치해 사용하는 것이 가능해요. npm은 'Node Package Manager'의 약어로 다른 프로그래머가 미리 개발하여 올려둔 패키지를 찾아 설치하는 방법을 제공하니 참고해 주세요!!

npm 로고

npm로고 사진으로 마무리 할게요~ 다음엔 Node.js를 어떻게 설치하는지 개발환경을 어떻게 구축하는지에 대해 알아보도록 할게요!! 더 알찬 내용으로 찾아뵐게요~!! : )

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.