안녕하세요! 이 프로젝트는 Express.js와 Prisma를 사용하여 기본적인 REST API를 만드는 방법을 배우기 위한 예제입니다. 사용자와 게시글을 관리하는 간단한 API를 만들어볼 거예요.
이 프로젝트를 시작하기 전에 컴퓨터에 다음 프로그램들이 설치되어 있어야 해요:
- Node.js (버전 14 이상) - 다운로드 링크
- Yarn 패키지 매니저 - 설치 가이드
- PostgreSQL - 다운로드 링크
- 코드 에디터 (VS Code 추천) - 다운로드 링크
mkdir express-prisma-rest-api
cd express-prisma-rest-api
이 저장소의 모든 파일을 방금 만든 폴더에 복사해주세요.
터미널(또는 명령 프롬프트)을 열고 다음 명령어를 실행해주세요:
yarn install
- 프로젝트 루트 디렉토리에
.env
파일을 생성해주세요:
touch .env # Mac/Linux의 경우
# 또는 윈도우에서는 직접 .env 파일을 생성해주세요
.env
파일을 열어서 다음 내용을 입력해주세요:
# 데이터베이스 연결 정보
DATABASE_URL="postgresql://사용자이름:비밀번호@localhost:5432/데이터베이스이름"
# 서버 포트 설정
PORT=3000
사용자이름
: PostgreSQL 데이터베이스 사용자 이름비밀번호
: PostgreSQL 데이터베이스 비밀번호데이터베이스이름
: 사용할 PostgreSQL 데이터베이스 이름 예시: DATABASE_URL="postgresql://postgres:1234@localhost:5432/myapp"
프로젝트를 처음 시작할 때 한 번만 실행하면 됩니다:
yarn prisma:init
이 명령어는 데이터베이스를 초기화하고 필요한 테이블들을 생성합니다.
개발 모드로 서버 실행하기:
yarn dev
일반 모드로 서버 실행하기:
yarn start
서버가 정상적으로 실행되면 콘솔에 "Server is running on port 3000" 메시지가 표시됩니다.
POST http://localhost:3000/api/users
Content-Type: application/json
{
"email": "[email protected]",
"name": "홍길동"
}
GET http://localhost:3000/api/users
GET http://localhost:3000/api/users/1
PUT http://localhost:3000/api/users/1
Content-Type: application/json
{
"name": "새이름"
}
DELETE http://localhost:3000/api/users/1
POST http://localhost:3000/api/posts
Content-Type: application/json
{
"title": "첫 번째 게시글",
"content": "안녕하세요!",
"authorId": 1,
"published": true
}
GET http://localhost:3000/api/posts
GET http://localhost:3000/api/posts/1
PUT http://localhost:3000/api/posts/1
Content-Type: application/json
{
"title": "수정된 제목",
"content": "수정된 내용"
}
DELETE http://localhost:3000/api/posts/1
API를 테스트하는 방법에는 여러 가지가 있어요:
- Postman - 추천!
- Insomnia
- VS Code의 Thunder Client 확장 프로그램
- curl 명령어 (터미널에서 사용)
express-prisma-rest-api/
├── .env # 환경 변수 설정 파일
├── .gitignore # Git 무시 파일 목록
├── .yarnrc.yml # Yarn 설정 파일
├── package.json # 프로젝트 설정 및 의존성
├── prisma/ # Prisma 관련 파일들
│ └── schema.prisma # 데이터베이스 스키마 정의
└── src/ # 소스 코드
├── config/ # 설정 파일들
│ └── database.js # 데이터베이스 연결 설정
├── routes/ # API 라우트 정의
│ ├── userRoutes.js # 사용자 관련 API
│ └── postRoutes.js # 게시글 관련 API
└── index.js # 메인 서버 파일
-
서버가 시작되지 않는 경우
- PORT가 이미 사용 중인지 확인해보세요
- .env 파일이 올바르게 설정되어 있는지 확인해보세요
- 모든 패키지가 설치되어 있는지 확인해보세요
-
데이터베이스 연결 오류
- PostgreSQL이 실행 중인지 확인해보세요
- 데이터베이스 접속 정보가 올바른지 확인해보세요
- 데이터베이스가 생성되어 있는지 확인해보세요
-
마이그레이션 오류
yarn prisma:init
을 실행했는지 확인해보세요- 데이터베이스 연결이 정상적인지 확인해보세요
- schema.prisma 파일에 문법 오류가 없는지 확인해보세요
- 에러 메시지를 자세히 읽어보세요
- 구글에서 에러 메시지를 검색해보세요
- Prisma 문서나 Express 문서를 참고해보세요
이 프로젝트를 마스터했다면, 다음 단계로 이런 것들을 시도해볼 수 있어요:
- 사용자 인증 추가하기 (JWT나 세션 사용)
- 입력 값 유효성 검사 추가하기
- 파일 업로드 기능 추가하기
- API 문서 자동화하기 (Swagger/OpenAPI 사용)
- 테스트 코드 작성하기
화이팅! 궁금한 점이 있으면 언제든 질문해주세요! 🙌