Express 백엔드 서버 세팅
1. 깃허브 레포지토리 만들고 클론하기
git clone 링크 폴더이름2. Node 프로젝트 시작
package.json 생성, 업데이트 초기화 - 관련링크 (opens in a new tab)
기본값으로 생성하는 법: npm init -y
npm init3. Express 프레임워크
npm i express4. Prisma ORM 세팅
npm i prisma
@prisma/clientnpm i -D @types/nodenpx prisma init5. psql 접속
psql -h localhost -p 5432 -U 유저이름 -d postgres데이터베이스 만들기
CREATE DATABASE 데이터베이스이름;.env 파일 수정
DATABASE_URL="postgres://유저이름:비밀번호@localhost:5432/데이터베이스이름?schema=public"Prisma Client 생성하기
npx prisma generatePrisma Client 인스턴스 생성하기
prisma.ts 유틸리티 파일 생성
import "dotenv/config";
import { PrismaPg } from '@prisma/adapter-pg'
import { PrismaClient } from '../generated/prisma/client'
const connectionString = `${process.env.DATABASE_URL}`
const adapter = new PrismaPg({ connectionString })
const prisma = new PrismaClient({ adapter })
export { prisma }데이터베이스 모델 추가하기 및 마이그레이션
prisma/schema.prisma 파일 수정 - 관련링크 (opens in a new tab)
prisma 포맷 - 관련링크 (opens in a new tab)
npx prisma format마이그레이션
npx prisma migrate dev --name 마이그레이션이름프리즈마 스튜디오 열기
npx prisma studio시드 데이터 만들기
prisma/seed.ts 파일 만들기 - 관련링크 (opens in a new tab)
시딩 명령어 설정하기
prisma.config.ts 파일에 추가하기
migrations: {
seed: "tsx prisma/seed.ts"
}시딩 실행하기
npx prisma db seed6. 타입스크립트
npm i -D typescript
tsx
@types/express
npm tsc --init7. .gitignore 세팅
.gitignore 파일에 추가하기 - 관련링크 (opens in a new tab)
의도적으로 추적하지 않을 파일을 지정해 Git이 무시하게 한다
node_modules
.env
dist5. package.json 수정
ES6 설정
"type": "module"script 추가
"dev": "tsx --watch --env-file=.env src/app.ts",
"build": "tsx",
"start": "node --env-file=.env dist/src/app.js"8. 이외 패키지 추가
프리티어
npm i -D prettier
prettier-plugin-packagejson린트
npm i -D eslint
eslint-plugin-unused-imports
eslint-plugin-simple-import-sort
eslint-plugin-import
eslint-import-resolver-typescript
@typescript-eslint/parser
@typescript-eslint/eslint-plugin허스키
npm i -D husky
lint-staged
npx husky init테스트
npm i -D supertest
jest
ts-jest
@types/supertest인증
npm i jsonwebtoken
npm i -D @types/jsonwebtoken비밀번호 해싱
npm i bcrypt
npm i -D @types/bcrypt로그
npm i pino
pino-pretty데이터 검증
npm i zod통신
npm i socket.io기타
npm i dotenv
helmet
express-rate-limit
cors
npm i -D @types/cors
@types/compression
dotenv-cli클라우드
npm i @aws-sdk/client-s3