Devin.KR

HTTP와 Spring 도서 API

파일 저장소 위에 Spring Boot 3.1.x 도서 조회·추가 API를 구현합니다.

진도 0%

레슨

  1. 요청과 응답 계약

    DNS·TCP·TLS·HTTP의 역할과 메서드·상태 코드를 연결합니다.

  2. Spring 구성과 의존성

    생성자 주입으로 컨트롤러·서비스·저장소를 연결합니다.

  3. 도서 추가와 상세 조회

    JSON DTO와 GET·POST 계약을 구현합니다.

  4. 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
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 앞 단계의 계약과 테스트를 유지하며 변경 이유를 설명합니다.
  • 정상·경계·실패 경로의 근거와 재현 절차를 제출합니다.