SQLite3과 JWT 인증을 기반으로 한 TODO API 백엔드 구현 과제입니다.
AI Assistant(GPT 등)를 활용하여 전체 구현 및 테스트를 완료하였으며, 사용한 프롬프트는 별도 파일로 정리되어 있습니다.
- 전체 소스코드
./app/ - SQLite 초기화 코드
./app/src/main/resources/init.sql - JWT 발급 및 검증 흐름 다이어그램
./JWT 발급 및 인증 과정.pdf - ○ README.md
- ○ 사용한프롬프트
./prompts/used_prompts.md - ○ 테스트코드(필수)
./app/src/test/- ✓ 단위 테스트 또는 통합테스트 작성
- ✓ 테스트 코드 커버리지 80% 이상
- Java 17
- Spring Boot 3.3.11
- Spring Security + JWT
- JWT: jjwt-api 0.11.5
- Spring Data JPA
- SQLite3
- SQLite JDBC 3.42.0.0
- Gradle
- JUnit5
- Mockito
- Spring Test
- Spring Security Test
- Swagger UI
- springdoc-openapi-starter-webmvc-ui 2.5.0
- OpenAPI 3.0
- Lombok
- Spring Boot DevTools
app/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/todo/api/
│ │ │ ├── common/ # 공통 모듈
│ │ │ ├── mmbr/ # 회원 관리
│ │ │ └── todo/ # TODO 관리
│ │ └── resources/
│ │ └── application.yml # 설정 파일
│ └── test/ # 테스트 코드
└── build.gradle # 빌드 설정- Java 17 이상
- Gradle 7.x 이상
# 실행 위치로 이동
cd app
# Gradle 빌드
./gradlew build
# 서버 실행
./gradlew bootRun# 실행 위치로 이동
cd app
# 전체 테스트 실행
./gradlew test
# 단위 테스트 실행
./gradlew unitTest
# 통합 테스트 실행
./gradlew integrationTest- Swagger UI: http://localhost:8080/swagger-ui.html
- 회원가입 (
POST /users/signup) - 로그인 (
POST /users/login) - JWT 토큰 발급
- API 요청 시 Authorization 헤더에 토큰 포함
Authorization: Bearer {JWT_TOKEN}
POST /users/signup: 회원가입POST /users/login: 로그인GET /users/me: 현재 사용자 정보 조회PUT /users/me: 사용자 정보 수정DELETE /users/me: 회원 탈퇴
POST /todos: TODO 생성GET /todos: TODO 목록 조회 (페이징, 정렬 지원)- 정렬 기준: createdAt, updatedAt, no, title
- 정렬 방향: asc, desc
- 기본 페이지 크기: 10
GET /todos/{id}: 특정 TODO 조회PUT /todos/{id}: TODO 수정DELETE /todos/{id}: TODO 삭제GET /todos/search: TODO 검색- 키워드 검색 지원
- 페이징, 정렬 지원
GET /api/health: 서버 상태, 테이블 수, 응답 시간 확인GET /api/health/error: 예외 발생 테스트
- 단위 테스트
- 통합 테스트
- 테스트 커버리지: 80% 근접
- 주요 기능 테스트 완료
테스트 결과 확인 -> ./app/build/reports/tests/test/index.html