NASA가 Node.js를 선택한 이유

NASA가 Node.js를 선택한 이유

Node.js 2009년 처음 등장한 자바스크립트 런타임입니다.
Node.js가 등장하기 전까지 자바스크립트는 대표적인 클라이언트 개발 언어로만 여겨졌는데요.


JavaScript Everywhere라는 기조에 따라 만들어진 Node.js는 자바스크립트로 클라이언트와 서버를 모두 개발할 수 있어 개발자들에게 많은 관심을 받고 있습니다.


실제로 넷플릭스, 페이스북, 링크드인 등 거대 글로벌 기업에서도 웹 서비스 개발에 Node.js를 사용하고 미국 항공 우주국 NASA에서도 Node.js를 활용하고 있습니다.


가장 첨단 기술을 다루는 조직인 NASA Node.js를 어떻게 활용하고,  Node.js를 채택한 것일까요?


| NASA, 우주복의 라이프사이클 데이터를 Node.js로 관리


NASA 2013년 우주 비행사의 헬멧에 있던 물이 누수 되어 큰 사고로 이어질뻔한 사건을 경험한 이후, 우주복의 전체 라이프사이클 데이터를 하나의 클라우드에서 통합 관리할 수 있도록 변경하고, 클라우드에 데이터를 전송하는 과정에 Node.js를 활용하고 있습니다.


이전에는 하드웨어 기반 데이터 처리로 인해 여러 곳에 분산된 데이터베이스를 수집하는 작업이 천문학적인 규모의 작업으로 수행되었지만, 클라우드 기반의 컨테이너에서 동작하는 마이크로서비스 아키텍처 구조를 이용하고, 각각의 애플리케이션을 API로 연결하여 모든 정보를 하나의 데이터베이스에 접근하여 확인할 수 있어 접근 시간이 300% 단축 되었다고 합니다.



| NASA Node.js를 선택한 이유: 자바스크립트, 비동기 I/O, NPM


자바스크립트(JavaScript)

NASA는 기존 애플리케이션을 대부분 자바스크립트 코드로 이용하고 있었습니다. 따라서, 새로운 시스템을 만들 때 동일한 언어를 활용함으로써 개발 시간과 비용을 줄이기 위해 Node.js를 채택했습니다. 실제로 많은 개발자들은 자바스크립트라는 동일한 언어로 클라이언트와 서버를 개발할 수 있다는 점을 Node.js의 강점으로 꼽고 있습니다.

비동기 I/O

Node.js의 가장 큰 특징은 서버 처리 성능이 높다는 것입니다. 이는 Node.js가 비동기 I/O 방식을 이용하기 때문인데요. 비동기 I/O는 하나의 이벤트가 완료 되지 않아도 다음 이벤트를 처리할 수 있는 방식을 말합니다.

쉽게 말해, A, B, C 세 권의 책을 읽을 때 반드시 A를 전부 읽고 B, C를 읽는 것이 아닌 A에서 읽기 쉬운 부분을 먼저 읽고 대기시켜두고, B, C를 읽는 방식입니다. 하나의 작업이 모두 끝나기를 기다렸다가 다음 작업을 수행하는 것이 아니기 때문에 효율적으로 작업을 처리할 수 있습니다. I/O를 처리하는 동안 특정 작업 프로세스를 차단(Blocking)하지 않고, 계속 다음 작업을 처리하기 때문에 Non-blocking I/O 방식이라고 부르기도 합니다.

효율적인 서버 처리 방식 덕분에 많은 곳에서 데이터를 요청해도 즉시 대응할 수 있다는 점이 클라우드 기반 데이터시스템에 적합한 솔루션으로 여겨져 Node.js를 활용하고 있습니다.


NPM

Node.js의 패키지 매니저인 NPM과 마이크로 서비스 아키텍처를 만드는 도커가 잘 호환되는 것도 Node.js를 채택한 이유입니다. NPM Node.js 관련 패키지를 공유/관리해주는 툴입니다. NPM에 등록된 패키지 수는 100만개 이상으로, 개발하려는 대부분의 모듈이 NPM에 등록되어 있기 때문에 직접 개발할 필요 없이 설치해서 사용할 수 있어 개발이 수월하다는 이점이 있습니다.  



NASA Node.js를 채택한 이유를 살펴보며, Node.js의 특징에 대해 알아보았습니다.

위에서 언급한 특징 이외에도 Node.js는 다음의 장점을 가지고 있습니다.


구글 v8 엔진

구글이 관리하는 엔진이기 때문에 성능이 뛰어나고, 앞으로의 발전 가능성이 높다고 평가 받습니다.


이벤트-드리븐(Event-driven) 방식

사용자가 이벤트를 발생 시켰을 때만 웹 서버가 작동하는 방식으로, 이벤트가 발생할 때까지 대기하는 방식에 비해 메모리를 효율적으로 사용할 수 있습니다.


가비아 Node.js 호스팅은 초보 개발자도 쉽게 사용할 수 있도록 Node.js에 최적화된 호스팅 환경을 제공합니다. 

빠른 성능과 간편함의 Node.js를 경험해 보세요


Node.js 호스팅 무료 체험하기 >>




[출처] https://post.naver.com/viewer/postView.nhn?volumeNo=26678816&memberNo=2521903

0개의 댓글이 있습니다.

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입