본문 바로가기
JAVASCRIPT

프론트엔드 개발환경 - Node.js가 필요한 이유

by 다미르 2023. 6. 24.

1. Introduction

현대 프론트엔드 개발환경을 설정하다보면 Node.js를 필수적으로 접하게 됩니다.

Node.js를 js로 빌드하는 백엔드 프레임워크로 알고계신 분이라면,

왜 프론트엔드 개발환경에 백엔드 프레임워크가 필요한지 의아하실 수도 있을 것 같네요.

오늘은 Node.js, npm을 기반으로한 프론트엔드 개발환경에 대해서 간략하게 알아보고자 합니다.

node.js


2. Definition - Node.js란?

공식 사이트(https://nodejs.org/ko)에서는 Node.js에 대하여 간결하게 정의하고 있습니다.

Node.js®는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.

js는 '스크립트' 언어이고 이를 해석해서 실행시켜줄 환경이 별도로 필요합니다. 우리가 가장 흔하게 사용해왔던 실행환경은 바로 브라우저의 개발자 콘솔입니다. 여기에서 js를 실행하며 코드를 개발/테스트하는 경우가 많았고, 이에 상응해서 개발자 콘솔도 점점더 많은 기능을 가지게 되었습니다.

chrome 개발자 콘솔

브라우저의 기본적인 역활은 'parser'입니다.

  • html을 파싱하여 화면을 생성합니다.
  • js를 해석하여 실행하는 역활을 합니다.

이를 반대로 말하면 브라우저 밖에서는 js를 사용하는 것이 제한이 됩니다. 그러다보니 기존 js 개발환경은 브라우저에 종속적이 였습니다. IDE에서 스크립트를 작성하고, 브라우저에서 실행결과를 확인하고, 다시 수정해서 확인하고.. 이러한 작업을 계속 반복했던 경험이 있으실 것이라고 생각합니다.

이러한 문제를 해결하기 위해서 Node.js를 사용합니다. Node.js의 본질은 js 런타임 환경이기 때문에 브라우저 없이도 js를 실행할 수 있습니다.

Node.js 실행예시 - 브라우저 외부에서 js를 실행하고 있다


3. npm(Node Package Manager)이란?

공식사이트(https://docs.npmjs.com/about-npm)에서는 npm을 아래와 같이 소개하고 있습니다.

npm is the world's largest software registry. Open source developers from every continent use npm to share and borrow packages, and many organizations use npm to manage private development as well.

npm은 Node.js로 만들어진 자바스크립트 모듈을 설치하고 관리하는 도구입니다. 개발자 입장에서는 단 몇 줄의 명령어로 기존의 공개된 모듈을 설치하고 활용할 수 있습니다. Java 진영의 maven, gradle과 같은 빌드툴과 비슷하다고 볼 수 있겠네요.


4. Conclusion - 왜 Node.js가 필요한가요?

백엔드/프론트엔드가 분리되고 있는 요즘 추세에서는 프론트엔드 환경 구축 시 npm의 역활이 절대적이라고 볼 수 있습니다. 대부분의 모듈, 프레임워크가 npm을 기반으로 quick-start 가이드를 제시하고 있는 것만 봐도 알 수 있습니다.

예시) vue 설치(https://v3-docs.vuejs-korea.org/guide/quick-start.html#creating-a-vue-application)
npm init vue@latest

이러한 npm을 사용할 때 얻을 수 있는 이점은 아래와 같습니다.

  • 라이브러리 관리(관리, 사용여부 등)
  • 라이브러리 의존성 해결 및 테스트 자동화
  • 빌드 자동화(파일 압축, 난독화 등)
  • 개발 환경 커스터마이징

이러한 이점을 잘 살린다면 프론트엔드 개발 시 생산성 향상에 큰 도움이 될 것 같습니다.

'JAVASCRIPT' 카테고리의 다른 글

Constructor and Object model  (0) 2019.09.04
Prototype  (0) 2019.09.03
Function  (0) 2019.09.02
Object  (0) 2019.09.02