Javascript와 Node.js 의 그렇고 그런 사이...
자바스크립트는 우리가 현재 사용하고 있는 현대적인 브라우저의 모태가 되는 넷스케이프 브라우저에서 사용하기 위해 만들어진 스크립트 언어로 개발되었어. 넷스케이프는 모질라 프로젝트에서 오픈소스화되었고, 이를 바탕으로 현대적인 브라우저 중 하나인 파이어폭스가 아직 남아있지.
*파이퍼폭스와 같은 브라우저에서 사용하기 위해 개발된 스크립트 언어 : 자바스크립트
그런데, 만들고 보니 너무 괜찮은 거 같아..! 이걸 서버에서도 쓸 수 있을 것 같은거야.
구글에서 2008년도에 개발한 V8 엔진을 기반으로 Node.js라고 하는 서버 개발 플랫폼을 만들어서 썼어. 더 이상 자바스크립트를 브라우저 내에서만 국한하여 사용할 필요가 없어진거지. 이때부터 Node.js를 이용해 웹서버를 개발하거나, API 서버 등을 개발하고, 모바일 앱, 심지어 데스크탑 어플리케이션도 뚝딱 생성해버리는 지경에 이르렀어.
개발자들은 어떤 것이든 개발할 수 있는 강력한 통합 플랫폼을 얻게 된 샘이지!
이를 가능케 해주는 버팀목이 있는데, 바로 NPM 패키지들이야.
해당 사이트에 들어가면 1700만개가 넘는 패키지들이 관리되고 있어. 어떤 개발 플랫폼도 따라올 수 없는 엄청난 규모지.
다른 개발 환경이 레고 블록을 하나씩 조각해서 맞춰 끼우는 가내수공업 같은 느낌이였다면, 웹 개발 환경은 어떤 레고블록이 몇번 창고에 있는지 검색해서 포장을 뜯어 조립하는 방식처럼 느껴질 정도야.
다만, 내가 만드려고 하는 앱 또는 서비스가 브라우저 API에 종속적인지, Node.js 플랫폼을 활용해야하는지, 모바일 기기의 Native 기능이 필요한지 등을 따지면서, 적절한 npm 패키지들을 활용할 수 있어야 해.
1700만개의 패키지 중, 아직까지는 대부분의 패키지들이 웹 앱 개발용이 60~70%로 구성되어있는데, 서버 개발용 패키지는 20~30%, 모바일 개발용이 10% 정도 된다고 볼 수 있어.