2023. 10. 11. 02:21ㆍNode.js
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하는 것을 추천합니다. 완전한 패키지 삭제는 주의가 필요합니다.
'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 |