이번 연재의 목표: 스프링 부트의 기본 문법으로 책을 등록하고 조회하는 HTTP API를 만듭니다.

자바 기초에서 클래스와 인터페이스를 직접 호출했습니다. 스프링 부트는 그 객체들을 대신 만들고 연결한 뒤, 웹 요청을 메서드 호출로 바꿔 줍니다. 프레임워크 전체를 외우기보다 실행, 빈, 요청, 검증, 예외, 저장의 순서로 한 프로젝트를 키웁니다.

기준은 JDK 17과 Spring Boot 3입니다. 빌드는 Maven으로 통일합니다. 데이터베이스와 화면 템플릿은 범위 밖에 두고, 서버를 끄면 사라지는 메모리 저장소로 API 사용법까지 완성합니다.

목차

01 — 프로젝트 생성과 실행 start.spring.io로 프로젝트를 만들고 내장 서버를 띄웁니다.

02 — 시작 클래스와 자동 설정 폴더 구조와 @SpringBootApplication이 하는 일을 확인합니다.

03 — 빈과 생성자 주입 스프링이 객체를 만들게 하고, 생성자로 필요한 객체를 받습니다.

04 — 설정 값 읽기 application.properties의 값을 코드에서 사용합니다.

05 — REST 컨트롤러 주소 하나를 메서드에 연결하고 문자열을 응답합니다.

06 — 경로와 쿼리 주소 안의 번호와 물음표 뒤의 값을 메서드 매개변수로 받습니다.

07 — JSON 요청과 응답 객체를 JSON으로 주고받습니다.

08 — 서비스 계층 계산과 규칙을 컨트롤러 밖으로 옮깁니다.

09 — 입력 검증 제목과 가격이 비어 있거나 0 이하이면 거절합니다.

10 — 예외 응답 없는 책을 조회할 때와 검증 실패 때의 응답 형식을 맞춥니다.

11 — 메모리 저장소로 등록과 조회 목록, 한 권 조회, 등록, 삭제를 한 API로 모읍니다.

12 — 테스트와 실행 파일 MockMvc로 요청을 확인하고 jar로 실행합니다.

학습 방법

한 편의 코드를 프로젝트에 반영한 뒤 서버를 다시 실행합니다. 브라우저나 curl로 주소에 요청해 응답을 확인합니다. 이전 편의 클래스를 지우지 말고, 그 편에서 바뀌라고 한 파일만 교체합니다.