Node.js란 무엇인가?

2023. 10. 11. 02:21Node.js

728x90
반응형

Node.js는 Chrome's V8 Javascript 엔진을 기반으로 하는 서버 측 Javascript 런타임 이벤트 기반 아키텍처와 내장 기능을 활용해 높은 성능의 HTTP 서버를 구축하고 실행할 수 있습니다.

 

 Node.js는 비동기 이벤트 주도 JavaScript 런타임입니다. 이 특징은 Node.js가 동시에 여러 연결을 처리하는 데 효과적이게 만듭니다.

 

  • Javascript - 브라우저에서 실행되는 프로그래밍 언어로, 동적 웹 페이지와 기능을 만드는 데 사용됩니다.
  • V8 Javascript 엔진 - Google이 C++로 개발한 고성능의 Javascript 실행 엔진입니다. Javascript 코드를 바이트 코드로 변환하여 빠르게 실행시킵니다.
  • Runtime - 프로그램이 동작하는 환경을 의미합니다. Node.js는 Javascript 코드가 브라우저 외의 환경에서도 실행될 수 있는 runtime입니다.
  • Server Side - 클라이언트(브라우저) 대신 서버에서 실행되는 프로그램 또는 코드를 의미합니다. Node.js는 서버 측에서 실행되는 Javascript runtime입니다.

 

Node.js에서 모듈 사용방법

 

1. 기본 설정

프로젝트 폴더를 생성하고, 두 개의 JavaScript 파일을 만듭니다.

  • main.js (메인 실행 파일)
  • moduleExample.js (내보낼 모듈이 포함된 파일)

 

2. moduleExample.js 작성

이 파일에서는 간단한 함수를 하나 정의하고 이를 export 합니다.

// moduleExample.js



function sayHello(name) {

    return `Hello, ${name}!`;

}



module.exports = sayHello;

 

3. main.js 작성

main.js 파일에서 require를 사용하여 위에서 만든 moduleExample.js의 함수를 불러와 사용합니다.

// main.js



const sayHello = require('./moduleExample');



const greeting = sayHello('ChatGPT');

console.log(greeting);  // 출력: Hello, ChatGPT!

 

4. 실행

터미널(또는 커맨드 프롬프트)에서 다음과 같이 main.js를 실행합니다.

node main.js

 

이렇게 실행하면, main.js가 moduleExample.js의 sayHello 함수를 불러와 사용하여 결과를 출력합니다. 이를 통해 require를 사용하여 모듈을 불러오고 실행하는 방법을 알 수 있습니다.

 

 

 

package.json은 Node.js 프로젝트의 메타데이터 파일로, 프로젝트의 의존성, 스크립트, 이름, 버전 등의 정보를 담고 있습니다. 더 자세한 내용은 [npm 공식 문서](https://docs.npmjs.com/cli/v7/configuring-npm/package-json)를 참고하세요.

 

# pacakage.json 파일

{

  "name": "api",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "author": "lordmyshepherd",

  "license": "MIT",

"dependencies": {

    "bcryptjs": "^2.4.3",

    "cors": "^2.8.5",

    "dotenv": "^16.0.0",

    "express": "^4.17.3",

    "jsonwebtoken": "^8.5.1",

    "mysql2": "^2.3.3",

    "typeorm": "^0.3.0"

  },

  "devDependencies": {

    "nodemon": "^2.0.15"

  }

 

  • name: 패키지의 이름입니다. package.json의 name 속성에 저장됩니다.
  • version: 패키지의 버전을 나타냅니다. SemVer (Semantic Versioning) 방식을 따르며, 주요 변경사항에 따라 버전이 업데이트됩니다.
  • scripts: 패키지 관리자 (npm이나 yarn)를 통해 실행할 수 있는 사용자 정의 스크립트를 정의합니다. 개발자들은 npm start, npm test, npm run dev, npm run build와 같은 다양한 스크립트를 scripts 항목에 정의하여 사용합니다.
  • dependencies : 프로젝트에서 사용하는 배포용 패키지와 각 버전을 명시합니다.
  • devDependencies : 프로젝트에서 사용하는 로컬 개발용 패키지와 각 버전이 명시되어 있습니다.
  • license: 해당 패키지의 라이선스를 나타냅니다. MIT 라이선스는 오픈소스 라이선스 중 하나입니다.
  • main: index.js 이 항목은 해당 모듈을 require()로 불러올 때 기본적으로 참조하는 파일을 지정합니다. 이는 패키지의 진입점(entry point)으로 작용합니다.

 

 

node_modules이란 

 

  • node_modules는 Node.js 프로젝트에서 외부 패키지와 라이브러리들을 저장하고 관리하는 핵심 디렉토리입니다. 이 디렉토리는 npm install 명령을 통해 설치된 모든 패키지들이 위치하는 곳으로, 프로젝트가 의존하는 외부 라이브러리와 패키지들이 여기에 저장됩니다. 보통, 이 디렉토리는 Git 또는 다른 버전 관리 시스템에 추가하지 않는 것이 좋습니다.
  • node_modules 디렉토리에는 프로젝트의 package.json 파일에 명시된 모든 종속성과 이러한 종속성들의 하위 종속성들이 저장됩니다.

 

 

자주 사용하는 npm 명령어 목록

 

  • npm install <package>: 배포용 패키지를 설치합니다. package.json의 dependencies에 추가됩니다.
  • npm install --save-dev <package>: 개발용 패키지를 설치합니다. package.json의 devDependencies에 추가됩니다.
  • npm uninstall <package>: 패키지를 삭제합니다. (npm rm <package>도 가능)
  • npm search <검색어>: npm 패키지를 검색합니다.
  • npm info <package>: 패키지의 세부 정보를 출력합니다.
  • npm login: npm에 로그인합니다. 사전에 npmjs.com에서 회원가입이 필요합니다.
  • npm whoami: 현재 로그인한 사용자를 출력합니다.
  • npm logout: 로그인한 계정에서 로그아웃합니다.
  • npm version <major|minor|patch>: package.json의 버전을 올립니다.
  • npm deprecate <package>@<version> "<message>": 패키지를 설치할 때 경고 메시지를 띄웁니다.
  • npm publish: 패키지를 npm에 배포합니다.
  • npm unpublish: 특정 버전의 패키지 배포를 중단합니다. 특정 버전을 unpublish하는 것을 추천합니다. 완전한 패키지 삭제는 주의가 필요합니다.

 

 

728x90
반응형

'Node.js' 카테고리의 다른 글

Node.js dbmate  (0) 2023.10.30
Node.js의 레이어 패턴 (Layered Pattern)  (1) 2023.10.28
Node.js bcrypt 암호화  (2) 2023.10.19
Node.js JWT  (0) 2023.10.12
Node.js 초기세팅 가이드  (1) 2023.10.11