9/4 Node.js 입문 2주차 (2)

성준호·2024년 9월 4일
0

1. Prettier

1) Prettier 사용 준비

프로젝트에 Prettier 설치

# Prettier를 debDependency로 설치합니다.
yarn add prettier -D

Prettier 설정파일 추가

root 위치에 .prettierrc.json 파일을 생성하고 아래의 내용을 넣는다.

{
  "printWidth": 80,
  "tabWidth": 2,
  "singleQuote": false,
  "trailingComma": "all",
}
  • "printWidth": 80: 한 줄 최대 글자 수
  • "tabWidth": 2: Tab에 대한 스페이스 수
  • "singleQuote": false: 쌍따옴표 사용
  • "trailingComma": "all": 여러 줄을 사용할 때, 후행 콤마 사용

스크립트 추가

package.json 파일에 스크립트 추가

{
  "name": "프로젝트 이름",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "type": "module",
  "scripts": {
    "format": "prettier --write *.js **/*.js"
  },
... 생략
}

2) Prettier 실행

# package.json에 작성된 format 스크립트를 실행합니다.
yarn run format

1. 배포를 위한 Git 학습

1) Git 명령어

  • git init

    프로젝트 폴더를 Git repository로 만든다.

  • git add

    변경 사항을 스테이징 영역에 올린다.

    • git add .: 모든 변경사항을 올린다
    • git add app.js: app.js 변경사항만 올린다.
  • git commit

    스테이징 영역에 추가된 변경사항들을 하나의 스냅샷처럼 기록한다. 나중에 해당 커밋 시점으로 돌아갈 수 있다.

    • git commit -m "feat: Add app.js"를 실행하면 app.js 파일에 대한 업데이트 내용을 커밋 메시지에 담는다.
  • git remote add

    로컬 저장소에 원격 저장소를 추가할 수 있다.

    • git remote add <name> <url> 명령어로 로컬 저장소에 <name>이라는 이름의 원격 저장소를 추가할 수 있다.
      • <url>은 원격 저장소의 주소를 의미한다.
        e.g git remote add origin https://github.com/foo/bar
        origin이라는 이름의 https://github.com/foo/bar 저장소를 연결한다.
  • git push

    로컬 저장소에서 작업한 변경사항을 원격 저장소로 업로드한다.

  • git clone

    원격 저장소에 있는 프로젝트를 자신의 컴퓨터에 다운로드

  • git pull

    원격 저장소의 최신 변경사항을 로컬 저장소로 가져와서 최신 상태로 유지

  • .gitignore 파일

    프로젝트에서 Git이 추적하지 않아야 하는 파일이나 폴더를 지정

#.gitignore
node_modules

node_modules 폴더는 Git의 추적에서 제외되어, 해당 폴더는 원격 저장소에 업로드되지 않는다.

1. AWS EC2 Instance 생성

1) EC2 Instance 생성

  • AWS EC2에서는 컴퓨터 하나의 단위를 Instance라는 이름으로 부른다.
  • EC2 Instance를 생성한다는 건, 서버 컴퓨터를 하나 대여한다는 것과 같다.

2) EC2 Instance에 접속하기

EC2 Instance에 접속하기 위한 도구, SSH 개념 정리

  • SSH는 일반적으로 다른 컴퓨터에 연결할 때 사용되는 프로그램이다.
  • 접속할 EC2 Instance의 방화벽에서 22번 포트가 열려있어야 접속 가능하다.

AWS EC2에 접속하기

  • gitbash를 실행하고, 아래를 입력
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피

예시

ssh -i /c/Users/HO/Downloads/sparta-keypair.pem ubuntu@123.123.123.123

3) 리눅스 명령어 연습하기

가장 많이 쓰는 몇 가지 명령어

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir [폴더 이름]: 내 위치 아래에 새 폴더를 만든다.

cd [폴더 이름]: 나를 해당 폴더로 이동시킨다.

cd .. : 나를 현재 위치의 상위 폴더로 이동시킨다.

cp -r [복사할 파일/폴더] [붙여넣기 할 위치]: 복사 붙여넣기

rm -rf [지울 파일/폴더]: 지우기 (이 명령은 매우 위험합니다. 신중히 사용해주세요!)

# 명령어 사용 당시에만 관리자 권한이 부여됩니다.
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.

# 명령어 사용 이후 모든 명령이 관리자 권한으로 실행됩니다.
sudo su: 관리자 권한이 있는 계정으로 접속한다. (exit 입력하면 관리자 계정에서 로그아웃)

2. AWS EC2 Node.js 설치

1) EC2 Instance에 Node.js 설치하기

설치 명령어

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

sudo apt-get install -y nodejs

apt-get 명령어는 yarn과 같은, 리눅스에서 지원하는 패키저 매니저에서 원하는 패키지를 설치하는 명령어이다.
여기서 apt(Advanced Package Tool)는 리눅스의 대표적인 패키지 관리 도구이다.

설치 확인 명령어

# 설치된 Node.js 버전 확인하기
node -v

# 설치된 npm 버전 확인하기
npm -v

3. 서버 프로그램 실행 및 웹사이트 접속

1) EC2 Instance에서 서버 실행

  1. GitHub 레파지토리 페이지로 들어가 초록색 Code 버튼을 눌러 복사한다.

  2. EC2 Instance 터미널에 접속해 복사한 내용을 붙여넣는다.

# 원격 저장소로 부터 코드 가져오기
git clone <Github Repository URL>

프로젝트 실행 순서

  1. cd <프로젝트 폴더>: 원격 저장소로부터 가져온 프로젝트로 이동한다.
  2. sudo npm install -g yarn: yarn을 사용하기 위해, 전역으로 yarn 설치
  3. yarn: 원격 저장소로부터 가져온 프로젝트의 의존성 및 패키지를 설치
  4. node app.js: 프로젝트를 실행한다.

2) 영원히 꺼지지 않는 서버 실행 프로그램, PM2

pm2란 프로세스 매니징 도구로 Node.js를 편하게 관리할 수 있게 도와주는 라이브러리이다.

pm2 설치

  • pm2는 관리자 권한이 필요하기 때문에 관리자 계정으로 전환한다.
# Linux의 관리자 계정으로 전환합니다.
sudo -s
  • yarn으로 설치
    • global 옵션은 특정 폴더나 프로젝트에 설치하는 게 아닌 전역 프로그램으로 설치하겠다는 의미
# pm2 라이브러리를 global로 설치합니다.
yarn global add pm2

pm2로 app.js 실행 / 종료

# pm2 로 app.js 파일을 실행합니다.
pm2 start app.js
# pm2의 id가 0인 프로세스를 종료합니다.
pm2 delete 0 

pm2 명령어

  • pm2 restart [idNumber]
    • 현재 실행 중인 pm2 서비스를 재시작
      # app.js를 재시작합니다.
      pm2 restart app.js

      # 0번 ID의 서비스 (app)을 재실행합니다.
      pm2 restart 0
  • pm2 list
    • pm2로 관리되는 모든 서비스의 목록을 출력
      # 모든 서비스들의 목록을 출력합니다.
      pm2 list 
  • pm2 delete [pid number]
    • 실행 중인 pm2 서비스 종료
      # 0번 ID의 서비스를 종료합니다.
      pm2 delete 0
  • pm2 log
    • 실행한 서비스들의 로그를 출력
    • 에러 메시지까지 확인할 수 있어 디버깅에 유용
      # 모든 서비스의 로그를 출력합니다.
      pm2 log
  • pm2 logs --lines [number]
    • 가장 최근에 발생한 로그 중에서 지정한 수만큼 출력
      # 마지막으로 발생한 로그 순서대로 100개를 출력합니다.
      pm2 logs --lines 100
profile
안녕하세요

0개의 댓글