본문 바로가기

Node.js

[Node.js] 노드 버전관리 NVM(Node Version Manager) 1. NVM이란? Node Version Manager의 약자로 NOde.js의 여러 버전을 관리하고 전환할 수 있게 해주는 도구 2. NVM 설치(homebrew 이용) 1) homebrew 최신 상태로 업데이트 brew update 2) nvm 설치 brew install nvm 3) Shell 설정 nvm을 사용 할 수 있도록 현재 사용 중인 쉘에 설정을 추가해야한다. 쉘은 주로 bash 또는 zsh를 사용하고 설정파일은 .bashrc, bash_profile, .zshrc 와 같은 이름임 export NVM_DIR="$HOME/.nvm" [ -s "$(brew --prefix nvm)/nvm.sh" ] && . "$(brew --prefix nvm)/nvm.sh" # This loads nvm [.. 더보기
[Node.js] npm과 yarn npm과 yarn은 JavaScript 패키지 관리 도구로 프로젝트의 의존성을 관리하고 패키지를 설치하는데 사용되며 주로 Node.js 프로젝트에서 사용됩니다. npm은 Node.js의 공식 패키지 관리 도구로서, Node.js를 설치하면 함께 제공됩니다. yarn은 Facebook에서 개발한 대체 도구로, npm과 비슷한 목적으로 사용됩니다. 설치 속도: npm: npm은 패키지를 설치할 때 인터넷 연결 및 패키지 종속성 체인을 다시 계산하는 데 시간이 소요됩니다. yarn: yarn은 패키지를 더 빠르게 설치할 수 있는 캐싱 메커니즘을 갖추고 있습니다. 이미 다운로드한 패키지를 캐시에 저장하여 동일한 패키지를 다시 설치할 때 더 빠르게 진행됩니다. 보안 및 안정성: npm: npm은 패키지의 보안 검.. 더보기
[Node.js] 노드 Express 라우터(Router) 라우터(Router)는 웹 애플리케이션에서 클라이언트의 요청에 대한 적절한 응답을 처리하는 역할을 하는 부분 라우터는 URL에 따라 어떤 로직이 실행되어야 하는지를 결정하고 요청을 처리함 Node.js에서는 주로 Express.js 프레임워크 라우터를 사용함 1. 라우터 생성 및 등록 Express.js에서는 express.Router를 사용하여 새로운 라우터 객체를 생성함 const express = require('express'); const router = express.Router(); // routes-index.js var express = require("express"); var router = express.Router(); module.exports = router; 2. 라우터에 미.. 더보기
[Node.js] 계정관리 서버 프로젝트 4 오늘의 할 일 - 코드 보완 - 구글 클라우드 플랫폼 VM 서버 올리기 - 서버 올리기 외부 IP로 포스트맨 테스트 1. 코드보완 비밀번호 암호화 비밀번호를 안전하게 저장하기 위해서 해시함수를 사용하여 비밀번호를 해싱하고 저장 1) bcrypt 라이브러리를 사용하여 해싱하기 위해 bcrypt 라이브러리 설치 2) 비밀번호를 암호화하는 hashPassword()와 비밀번호 비교를 해주는 comparePasswords 작성 var express = require("express"); var router = express.Router(); const logging = require("../util/logger"); // 로그 모듈 const bcrypt = require("bcrypt"); /* * bcryp.. 더보기
[Node.js] 계정관리 서버 프로젝트 3 오늘의 할 일 - 로그 관리 - 예외 처리 1. 로그관리 외부 로깅 라이브러리인 winston을 사용하기 위해 winston 설치 logger.js 작성 const winston = require("winston"); const logger = winston.createLogger({ // 출력 형식 정의 transports: [ new winston.transports.Console(), // 콘솔 출력: 개발 중 디버깅에 사용됨 new winston.transports.File({ filename: "app.log" }), // 파일 출력: 실제 운영 환경에서 로그 관리 ], // 로그 형식 지정 format: winston.format.combine( // combine을 사용하여 여러 형식을 조합.. 더보기
[Node.js] exress 프로젝트 로그 관리 방법 프로젝트에서 로그를 관리하기 위해 로그 관리 방법에 대해서 알아봤다. 로그를 관리하는 방법으로는 로깅 모듈을 만들어서 사용하거나, 이미 만들어진 로깅 라이브러리를 사용하는 방법이 있다. 1. 직접 로그 관리 모듈 만들기 logger.js // logger.js function logRequest(user, method, url) { const log = `${user.email} - ${new Date().toISOString()} - ${method} ${url}`; console.log(log); } module.exports = { logRequest }; 위에서 만든 모듈을 사용하여 미들웨어 만들기 // middleware.js const logger = require('./logger'); //.. 더보기
[Node.js] 계정관리 서버 프로젝트 2 오늘의 할 일 - 공통 응답 모듈 만들기 - 세션관리 모듈 만들기(클라이언트가 요청하는 모든 API(로그인 제외)헤더에 토큰 있는지 검사하는 모듈 만들기) - 파일 업/다운로드 로그인한 사용자 검사 추가 1. 공통 응답 모듈 만들기 function success(status, message, data) { return { success: true, status: status, message: message, data: data, }; } function fail(status, message) { return { success: false, status: status, message: message, }; } module.exports = { success, fail }; 공통으로 들어가던 응답부분을 모듈.. 더보기
[Node.js] 계정관리 서버 프로젝트 1 개발 일정 일자 to do 23.11.14(화) API 만들기 23.11.15(수) - 공통 응답 모듈 만들기 - 파일 업/다운로드 로그인한 사용자 검사 추가 - 세션관리 모듈 만들기(클라이언트가 요청하는 모든 API(로그인 제외)헤더에 토큰 있는지 검사하는 모듈 만들기) 23.11.16(목) - 로그관리: 유저가 어떤 API를 언제 호출했는지 / - 코드 보완: 예외처리, 중복코드 수정 23.11.17(금) - 이메일 중복검사 같은 세세한 부분 체크 - 구글 클라우드 플랫폼 VM 서버 올리기(포트 새로 열기) - 서버올리고 포스트맨 테스트 API 기능 세부기능 method url 계정 추가 항목: 이메일, 비밀번호, 이름, 전화번호 post /api/users 계정 삭제 계정 삭제 delete /api.. 더보기