DB 연결과 일관된 오류
파일 저장소를 JDBC로 교체하고 입력 검증·수정·삭제 API를 구현합니다.
진도 0%
레슨
- JDBC 저장소와 매개변수
JdbcTemplate과 바인딩으로 SQL·연결 자원을 관리합니다.
- 입력 검증
DTO 검증과 업무 검증의 위치를 구분합니다.
- 예외와 오류 계약
ControllerAdvice로 일관된 오류 코드를 반환합니다.
- 수정·삭제와 회귀 테스트
HTTP 계약과 저장 결과를 함께 검증합니다.
DB 연결과 일관된 오류 미션
앞 모듈의 결과를 이어서 DB 기반 CRUD와 입력 오류 처리를 완성합니다.
요구사항
- 기존 조회·추가 계약을 유지하며 JDBC 저장소로 교체합니다.
- PATCH /books/{id}, DELETE /books/{id}와 통일된 오류 DTO를 구현합니다.
- 대여 이력 있는 도서 삭제 정책을 명세에 추가합니다.
- PATCH는 수정 가능한 유일한 필드 title을 필수로 받으며 누락·null은 400입니다. 길이는 UTF-16 코드 단위 200 이하입니다.
- 기본 설정은 JDBC를 선택하고 catalog.path 명시 시 이전 파일 저장소 테스트를 유지합니다. MAX(id)+1의 단일 JVM·삭제 후 ID 재사용 한계를 문서화합니다.
완료 기준
- 기존 84개와 JDBC API 11개, 누적 95개 테스트의 실패·오류·건너뜀 0을 report.py로 확인합니다.
- 검증 실패 시 DB 변경 0건이며 SQL 모양의 제목은 문자열 그대로 저장됩니다.
- 삭제 204·없는 도서 404·이력 있는 도서 삭제 409와 비밀 정보 없는 500을 확인합니다.
./mvnw test미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 앞 단계의 계약과 테스트를 유지하며 변경 이유를 설명합니다.
- 정상·경계·실패 경로의 근거와 재현 절차를 제출합니다.