메뉴 건너뛰기

조회 수 134 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. Node.js

 

  • Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임을 의미한다.
  • 런타임이란 해당 프로그래밍 언어로 작성된 코드가 구동되는 환경을 말한다. 브라우저가 대표적인 JavaScript 런타임이다.
  • 결국 Node.js란 JavaScript 코드가 구동되는 환경을 말하며, 브라우저 외부에서도 JavaScript 프로그래밍이 가능하게 하였다.
  • 다음과 같은 두 가지 방식으로 JavaScript 런타임을 제공한다.
    1. REPL (Read, Evaluate, Print, Loop) : 사용자의 입력을 받아(Read) 그 코드를 평가(Evaluate) 및 실행하고, 그 결과를 화면에 출력(Print)해주는 작업을 반복(Loop)한다. 이는 윈도우의 cmd 혹은 리눅스의 터미널 등에서 사용될 수 있다.
    2. JavaScript로 작성된 소스 파일을 직접 실행할 수 있다. REPL로 한 줄 한 줄 읽어서 실행한 것과 동일하다고 볼 수 있다.
  • 많은 사람들이 Node.js를 장고(Django)나 스프링(Spring)과 같은 백 엔드 어플리케이션으로 간주하는 경향이 있다. 하지만 엄밀히 말하면 이는 잘못된 말이다. Node.js는 단순히 JavaScript 코드가 구동될 수 있는 환경을 말할 뿐이며, 그 환경 하에서 백 엔드 어플리케이션도 만들 수 있을 뿐이다. 예를 들어 백 엔드 어플리케이션에 해당하는 코드를 JavaScript로 작성하고 이를 Node.js 환경에서 실행시키면 그것이 곧 백 엔드 어플리케이션의 역할을 수행하는 것이다. 반면에 Node.js 환경에서는 프론트 엔드 개발도 가능하다. 예를 들어, React를 활용하여 웹을 개발할 때 사용하는 create-react-app(React 프로젝트를 생성할 때 사용), babel(JavaScript 컴파일러), 그리고 webpack(모듈 번들러) 등이 Node.js 환경에서 실행되는 대표적인 프로그램에 해당한다.
  • create-react-app, babel, webpack 등과 같이 Node.js 환경에서 실행될 수 있도록 누군가 JavaScript로 작성해놓은 각종 프로그램들을 Node.js 패키지라고 부른다. 이 용어는 이어서 설명할 npm과 아주 밀접한 관련이 있다.

 

2. npm (node package manager)

 

  • Node.js 패키지들을 쉽게 설치하거나 관리할 수 있도록 돕는 프로그램을 말하며, Node.js 설치 시 함께 설치된다.
  • 예를 들어, JavaScript 컴파일러에 해당하는 babel 혹은 모듈 번들러에 해당하는 webpack의 경우 npm을 이용하면 쉽게 설치하는 것이 가능하다.
  • package.json
    • 반드시 JSON 형식으로 작성되어야 한다. (확장자가 .json이기 때문)
    • 프로젝트의 의존성을 명시한다. 즉, 해당 프로젝트가 필요로 하는 Node.js 패키지들의 목록을 명시한다.
    • "npm install" 명령어는 package.json 파일을 읽어서 해당 프로젝트에서 필요한 Node.js 패키지들을 한 번에 설치해준다.
    • package.json 파일에 대한 자세한 내용(+ package-lock.json 파일에 대한 내용)이 궁금하다면 여기를 참조하자.

 

3. npx (since @npm 5.2.0)

 

  • node_modules/.bin 폴더에 있는 바이너리를 실행시킨다. 만약 이것이 없다면 이를 위한 Node.js 패키지를 임시로 설치한다.
  • 기본적으로, npx는 실행하고자 하는 바이너리를 시스템의 환경 변수인 $PATH에서 먼저 탐색한다. 그런데 여기서 탐색에 실패하게 되면 node_modules/.bin 폴더에서 해당 바이너리를 탐색한다. 그런데도 탐색에 실패하면, 해당 바이너리가 없다는 의미이므로 필요한 Node.js 패키지를 자동으로 임시 설치한다.
  • (--package 혹은 -p 옵션을 사용하지 않았을 때) 바이너리 탐색에 실패하면, 어떤 Node.js 패키지를 설치하게 될까? 이때는 설치해야 하는 패키지의 이름이 해당 바이너리의 이름과 같다고 가정해버린다. 따라서 실행하고자 하는 바이너리의 이름과 패키지의 이름이 다르다면, 반드시 해당 패키지를 먼저 설치해주거나 --package 혹은 -p 옵션으로 해당 패키지 이름을 명시해줘야 한다.
  • 임시 설치라는 것은 설치 후에 바이너리를 실행하고 나면 다시 해당 패키지를 삭제한다는 것을 의미한다. 이는 저장 공간을 절약할 수 있고 항상 최신 버전의 패키지를 사용할 수 있다는 장점이 있다. 따라서 create-react-app 등의 패키지 사용 시에 유용하다.

List of Articles
번호 제목 날짜 조회 수
247 활용예제 : 체크박스 전체선택 전체해제 /라디오버튼 2014.03.01 7020
246 현재시간 기준 날짜 계산 2016.09.21 6103
245 현재 날짜, 시간 ( Month + 1 에 대해서 ) 2021.03.25 218
244 핸드폰 번호 일부 마스킹크 작업 (정규식 이용) 2015.06.19 10741
243 해상도에 따라 배경 바꾸기 2014.03.01 6083
242 함수의 arguments 를 이름(key)으로 접근하기 2016.09.21 5976
241 한글 짜르기 2019.01.16 1179
240 한글 또는 영문만이 존재하는지 체크 2019.01.16 1163
239 풍선도움말 2019.01.16 1167
238 폼안에 태그명, 함수명 같을때 오류 2021.03.26 214
237 페이지 이동 2021.03.26 190
236 페이지 로드 할때 컨트롤에 포커스 주기 2015.02.03 8500
235 패스워드, 확인패스워드가 맞는지 체크 2023.01.12 129
234 팝업창 차단 "허용 메시지" 2018.09.28 1738
233 팝업창 맨위로 올라오게 하기 2021.03.26 867
232 팝업창 가운데 띄우기 2016.12.23 6705
231 특정부위 마우스 오버시 설명을 보여주는 소스 2014.03.17 8695
230 특정 부분 인쇄 자바스크립트 2019.01.16 1588
229 특정 HTML DOM 엘레멘트로 스크롤 이동하기 2016.09.09 7075
228 텍스트박스(input type = "text") 숫자 증가, 감소 시키기 - 쇼핑몰 주문 수량 file 2015.06.19 12283
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved