HTTP와 Spring 도서 API
파일 저장소 위에 Spring Boot 3.1.x 도서 조회·추가 API를 구현합니다.
진도 0%
레슨
- 요청과 응답 계약
DNS·TCP·TLS·HTTP의 역할과 메서드·상태 코드를 연결합니다.
- Spring 구성과 의존성
생성자 주입으로 컨트롤러·서비스·저장소를 연결합니다.
- 도서 추가와 상세 조회
JSON DTO와 GET·POST 계약을 구현합니다.
- API 명세와 클라이언트 관찰
요청 예시·빈 목록·실패 응답을 API 명세에 작성합니다.
HTTP와 Spring 도서 API 미션
앞 모듈의 결과를 이어서 파일 도서 목록을 HTTP API로 공개합니다.
요구사항
- 앞 모듈 미션 solution의 Java 코드와 50개 테스트를 유지하고 Java 17·Spring Boot 3.1.5로 HTTP 계층을 확장합니다.
- 생성자 주입으로 파일 저장소·서비스·컨트롤러를 연결하고 GET /books, GET /books/{id}, POST /books를 구현합니다.
- 빈 제목·파일 구분 문자를 400으로 거부하고 기존 최대 키+1을 할당하며 ID 고갈은 409로 처리합니다.
- API-SPEC.md에 조회·추가·빈 목록·없는 상세의 요청·상태·Location·본문과 curl 재현 조건을 기록합니다.
- 단일 프로세스·단일 작성자·원자 이동 지원 범위와 ID 재사용 가능성, 재시도 중복 가능성을 설명합니다.
완료 기준
- 누적 64개 테스트 실행, 실패·오류·건너뜀 0, 종료 상태 0입니다.
- MockMvc가 목록 200·빈 배열, 생성 201·Location, 상세 200·404와 잘못된 입력 400·형식 415·메서드 405를 확인합니다.
- 새 Spring 컨텍스트와 새 파일 저장소에서 추가한 한글 도서를 복원하는 테스트가 통과합니다.
- BootContextTest는 웹 서버 없이 기본 빈 탐색을 확인하고 모든 테스트는 임시 파일·컨텍스트를 정리합니다.
./mvnw test미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 앞 단계의 계약과 테스트를 유지하며 변경 이유를 설명합니다.
- 정상·경계·실패 경로의 근거와 재현 절차를 제출합니다.