지난 일정 관리 프로젝트에 이어서, 이번에는 더 발전된 일정 관리 API를 JPA와 Spring Boot를 활용해 구현하였다. 이번 프로젝트에서는 더 다양한 기능을 추가하고, 보안과 데이터 관리를 강화하여 더욱 견고한 시스템을 구축하는 데 중점을 두었다. 주요 기능으로는 일정 CRUD, 댓글 CRUD, 페이지네이션, 사용자 검증 및 비밀번호 검증 등이 포함된다. 프로젝트는 트러블 슈팅 과정을 통해 문제를 해결하며 완성되었으며, 각 기능별 구현 사항과 API 명세서는 아래와 같다.
일정 CRUD
댓글 CRUD
사용자 검증 및 비밀번호 검증
페이지네이션 및 정렬
다양한 예외 처리
API 명칭 | 메서드 | 요청 URL | 요청 헤더 | 요청 본문 | 응답 코드 | 설명 | 응답 본문 |
---|---|---|---|---|---|---|---|
일정 생성 | POST | /api/todo | Content-Type: application/json | json {"memberId":1,"title":"할 일 제목","password":"securePassword123","description":"이 할 일에 대한 설명입니다."} | 201 | 일정 생성 성공 | json {"id":1,"memberId":1,"title":"할 일 제목","description":"이 할 일에 대한 설명입니다.","createdAt":"2024-10-03","updatedAt":"2024-10-03"} |
전체 일정 조회 | GET | /api/todo | Content-Type: application/json | N/A | 200 | 전체 일정 조회 성공 | json [{"id":1,"memberId":1,"title":"할 일 제목","description":"이 할 일에 대한 설명입니다.","commentCount":2,"createdAt":"2024-10-03","updatedAt":"2024-10-03"}...] |
선택 일정 조회 | GET | /api/todo/{todoId} | Content-Type: application/json | N/A | 200 | 선택 일정 조회 성공 | json {"id":1,"memberId":1,"title":"할 일 제목","description":"이 할 일에 대한 설명입니다.","createdAt":"2024-10-03","updatedAt":"2024-10-03"} |
일정 수정 | PUT | /api/todo/{todoId} | Content-Type: application/json | json {"memberId":1,"password":"securePassword123","description":"수정된 내용"} | 204 | 일정 수정 성공 | N/A |
일정 삭제 | DELETE | /api/todo/{todoId} | Content-Type: application/json | json {"memberId":1,"password":"securePassword123"} | 204 | 일정 삭제 성공 | N/A |
댓글 생성 | POST | /api/comments | Content-Type: application/json | json {"memberId":1,"todoId":1,"content":"댓글 내용"} | 201 | 댓글 생성 성공 | json {"id":1,"content":"댓글 내용","memberId":1,"createdAt":"2024-10-03","updatedAt":"2024-10-03"} |
댓글 조회 | GET | /api/comments/{todoId} | Content-Type: application/json | N/A | 200 | 댓글 조회 성공 | json [{"id":1,"content":"댓글 내용","memberId":1,"createdAt":"2024-10-03","updatedAt":"2024-10-03"}...] |
댓글 수정 | PUT | /api/comments/{commentId} | Content-Type: application/json | json {"content":"수정된 댓글 내용"} | 204 | 댓글 수정 성공 | N/A |
댓글 삭제 | DELETE | /api/comments/{commentId} | Content-Type: application/json | json {"memberId":1} | 204 | 댓글 삭제 성공 | N/A |