2026-09-14
JWT 인증이 적용된 간단한 TODO API를 만들어 주세요. ChatGPT, Claude, Copilot 등 AI 도구는 자유롭게 쓰셔도 되고, 사용한 주요 프롬프트를 함께 제출해 주세요.
아래 두 가지 중 하나를 선택해 주세요.
| 항목 | A. NestJS | B. Spring Boot |
|---|---|---|
| 언어 | TypeScript | Java 17 이상 |
| 런타임·빌드 | Node.js 20 이상, npm | Gradle 또는 Maven |
| ORM | 자유 (TypeORM, Prisma 등) | 자유 (Spring Data JPA 권장) |
| DB | SQLite3 | SQLite3 |
| 테스트 | Jest | JUnit 5 |
| 스택 | 설정 |
|---|---|
| NestJS + TypeORM | sqlite3 패키지 설치 → type: 'sqlite', synchronize: true |
| NestJS + Prisma | provider = "sqlite" → 마이그레이션 명령어를 README에 적어 주세요 |
| Spring Boot + JPA | org.xerial:sqlite-jdbc, org.hibernate.orm:hibernate-community-dialects 의존성 추가 → dialect org.hibernate.community.dialect.SQLiteDialect, ddl-auto: update |
sqlite3 설치 중 오류가 나면 better-sqlite3를 써도 됩니다. (TypeORM 기준 type: 'better-sqlite3')사용자
| Method | Path | 설명 | 인증 |
|---|---|---|---|
| POST | /users/signup |
회원가입 | – |
| POST | /users/login |
로그인, access_token 반환 |
– |
| GET | /users/me |
내 정보 조회 | 필요 |
TODO — 로그인한 사용자 본인의 TODO만 다룹니다
| Method | Path | 설명 | 인증 |
|---|---|---|---|
| POST | /todos |
생성 | 필요 |
| GET | /todos |
내 목록 조회 | 필요 |
| GET | /todos/{id} |
단건 조회 | 필요 |
| PUT | /todos/{id} |
수정 | 필요 |
| DELETE | /todos/{id} |
삭제 | 필요 |
{ "access_token": "..." }를 반환합니다.Authorization: Bearer <token> 헤더를 사용합니다.