ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [what is?] node.js 가 뭔가요?
    IT 지식 2020. 11. 22. 14:11
    728x90

     

     

    오늘의 포스팅은 요즘 핫한 언어 중의 하나인 자바스크립트, 그중에서도 자바스크립트를 기반으로 한 플랫폼인 node.js에 대해 알아보는 시간을 가지도록 하겠습니다.

     

    1. node? 처음 들어보는데요?

     

    node의 출현에 대해 이야기하자면 자바스크립트에 대한 이야기가 필요합니다. 자바스크립트는 원래 브라우저에서만 작동하는 언어였습니다. 제어할 수 있는 대상이 웹에 한정되어 있다 보니, 그 시대 웹 개발자들은 많이 무시받기 일쑤였다고 합니다. 그러던 중 2008년 구글이 크롬 웹브라우저에서 자바스크립트의 성능을 개선하기 위한 V8엔진을 개발하게 된 것입니다. node.js의 창시자인 Ryan Dahl은 이 V8을 활용하여 웹에서 뿐만이 아니라 컴퓨터 자체를 제어할 수 있는 node.js를 개발하게 됩니다. 이 node.js의 개발로 무시받던 자바스크립트의 위상은 몰라보게 달라졌고, 지금은 전 세계에서 파이썬과 더불어 가장 핫하고 영향력이 강한 언어로 성장할 수 있게 되었습니다. 저희 웹 개발자들이 더 핫해진 이유라고 할 수 있죠.

     

    2. node, 그거 백엔드 언어 아닌가요?

     

    많은 분들이 node를 백엔드 서버를 구성하는 과정에서 접하시다 보니, node를 백엔드 언어로 알고 계신 경우가 많습니다. 하지만 node는 웹 서버용 언어가 아닙니다. node 그 자체로는 아무것도 하지 않습니다. 파이썬과 같은 포지션이라고 할 수 있죠. node는 그냥 코드를 실행하는 방법 중의 하나인 자바스크립트 런타임일 뿐입니다. 

     

    3. node의 특징

     

    1) 이벤트 위주의 비동기 처리 방식과 빠른 속도

     

    우리는 지난 포스팅에서 비동기 처리방식이란 무엇인가에 대해 배웠기 때문에 이 부분에 대한 설명은 간략하게 하고 넘어가도록 하겠습니다. node는 비동기로 코드를 처리하기 때문에 상대적으로 동기적으로 처리하는 언어들에 비해서 처리속도가 빠르다고 할 수 있습니다. 그리고 node를 구동하게 하는 V8엔진의 성능이 매우 뛰어나기 때문에 역시 처리속도가 빠르다고 할 수 있습니다.  

     

    2) 단일 쓰레드와 확장성

     

    스레드(스레드)는 컴퓨터가 업무를 처리하는 단위라고 생각하시면 됩니다. 스레드가 하나라는 것은 이 언어에서 동시에 여러 가지 업무를 처리하지 못하고 하나의 업무만을 순차적으로 진행해야 함을 의미합니다. 반면, 멀티 스레드라는 것은 컴퓨터가 동시에 여러 가지 업무를 처리할 수 있다는 것을 의미하게 되죠. node의 경우 단일 스레드를 활용하고 서버의 확장성이 뛰어난 언어이기 때문에 몇몇 서버 언어들에 비해 더 많은 요청을 처리할 수 있습니다.

     

    3) 폭넓은 생태계

     

    node는 개발된지 11년이 넘은 오래된 플랫폼입니다. 또 그 기반이 자바스크립트에 있기 때문에 전 세계 무수히 많은 자바스크립트 개발자가 열심히 노드를 공부하고 분석하고 연구하고 있습니다. 그러다 보니 인터넷에 node와 관련한 많은 자료들이 존재합니다. 이는 개발자에게 진입장벽을 낮춰주고 다양한 기능이나 에러를 처리하는데 많은 도움을 줄 수 있음을 의미합니다. 

     

    4. node의 단점

     

    node의 가장 대표적인 단점이라고 한다면 싱글 쓰레드를 사용하는데서 오는 불편함이라고 할 수 있습니다. node는 하나의 일처리를 빠르게 수행하는 것에는 큰 장점을 지니지만, 동시에 많은 cpu를 활용해야 하는 업무 등에서는 부적절한 언어라고 할 수 있습니다. node도 결국엔 싱글 스레드로서 메모리의 한계를 가지고 있어, 여러 개의 업무가 병렬적으로 처리되면서 진행되어야 하는 일에는 적합하지 않습니다. 

     

    5. node를 사용하는 기업

     

     

    node는 굉장히 많은 기업에서 사용하고 있습니다. 우리가 node를 공부하고 잘 다룰 줄 알게 된다면 node를 사용하는 회사에 취업하기가 수월해진다는 것을 의미하기도 하겠죠?(그렇다고 해주세요... ㅠ) eBay, Microsoft, Paypal, Yahoo LinkedIn, NetFlix, Walmart, UBER, NASA(우리가 아는 그 나사가 맞습니다)등의 회사에서 node를 사용하고 있다고 합니다. 정말 많은 회사들이 사용하고 있고, 또 그 중에는 우리가 모두 다 알법한 회사들도 많이 포함되어 있네요! 

     

    6. 마무리

     

    이번 포스팅을 하기 전에는 node는 그저 백엔드를 위한 언어인 줄만 알았는데, 그게 아니라 node를 사용해서 컴퓨터 자체를 다룰 수 있고 또 그만큼 많은 업무를 할 수 있다는 것을 알게 되어 정말 놀라울 따름이었습니다. 또 최근에는 인공지능 라이브러리인 TensorFlow에서도 자바스크립트 버전이 나왔다는 것을 알게 되었습니다(기존에는 파이썬 기반으로 된 TensorFlow만 존재했습니다). 이 TensorFlow도 node를 기반으로 하고 있다고 하니, node의 세계는 날이 갈 수록 깊어지고 있음을 다시금 느끼게 되네요. 우리 node를 열심히 공부해서 웹 기반의 개발 뿐만이 아니라 데이터 활용이나 인공지능 개발에까지 몸담을 수 있는 유능한 개발자가 될 수 있도록 노력해 보아요!!! 

     

    728x90

    댓글

Designed by Tistory.