교재 목차
회원가입·게시판을 완성하며 객체지향 설계, Spring MVC, 데이터 접근, 트랜잭션, AOP와 운영 관측을 익힙니다.
Spring을 처음 배우면 애노테이션을 외우는 데 집중하기 쉽습니다.
하지만 Spring의 핵심은 객체를 어떻게 만들고 연결하며 요청과 트랜잭션의 경계를 어디에 둘지 판단하는 것입니다.
이 교재는 회원가입과 게시판이라는 하나의 사례를 끝까지 확장합니다.
순수 Java 도메인에서 시작해 컨테이너, HTTP, MVC, 데이터베이스와 운영 관측을 차례로 연결합니다.
각 기능이 동작하는 코드만 보지 않고 잘못된 매핑, 바인딩, 트랜잭션과 프록시 경계도 함께 재현합니다.
Java의 변수·메서드·클래스·생성자를 읽을 수 있으면 첫 예제를 시작할 수 있습니다. 객체의 역할과 구현, 예외, 컬렉션이 낯설 때는 Java 입구의 해당 장으로 돌아가 필요한 부분을 복습하세요.
처음에는 프로젝트 준비를 따라 시작 로그를 확인합니다. 첫 페이지는 다음 절에서 static/index.html을 추가한 뒤 GET /의 HTML·200 응답으로 확인합니다. 같은 절의 JSON 예제로 넘어가기 전에는 1-1의 RuntimeVersions.java도 작성해야 합니다.
학습 경로
1단계 · 객체와 컨테이너에서는 회원가입·게시판의 책임을 나누고 Spring이 객체를 조립하는 이유를 익힙니다.
2단계 · 웹 요청에서는 HTTP, 서블릿, Spring MVC의 요청·응답 흐름을 연결합니다.
3단계 · 화면과 웹 상태에서는 Thymeleaf 폼, 검증, 세션, 필터와 예외 처리를 다룹니다.
4단계 · 데이터와 트랜잭션에서는 JDBC에서 JPA·Spring Data까지 저장 기술의 공통 경계를 익힙니다.
5단계 · 공통 관심과 운영에서는 템플릿·프록시·AOP, Spring Boot와 Actuator로 확장합니다.
예제를 넣을 프로젝트 고르기
같은 회원가입·게시판을 설명해도 파일을 넣을 프로젝트는 다를 수 있습니다. 새 절로 넘어갈 때 그 절의 빌드 설정과 패키지 준비를 먼저 읽으세요. 다음 표는 기존 준비 문서로 돌아갈 위치입니다.
| 학습 구간 | 준비를 따를 단위와 재사용 범위 |
|---|---|
| 객체와 컨테이너의 시작 | 1-1의 board는 Java 25와 Boot 4.1.1 플러그인·의존성 버전 묶음(BOM)을 기준으로 Initializr가 만든 Gradle Wrapper를 사용합니다. 회원 기능은 이 누적 예제에 추가하지만, 메모리 저장이 인증·회원 존재·외래 키를 보장하지는 않습니다. |
| HTTP 메서드 | 4-5의 Java 17 정책 모델과 Spring 6.2.11 standalone MVC 테스트는 별도 설명 단위입니다. 누적 Boot BOM에 이 의존성을 섞지 말고 해당 본문의 준비를 따릅니다. |
| MVC 요청·응답의 선택 예제 | 6-6~8의 준비는 mvc-boundary-contracts 테스트 프로젝트를 사용합니다. Java 25·Gradle 9.5.1·Boot 4.1.1 BOM 아래 장별 컨텍스트를 지정하며 Boot 시작 클래스는 두지 않습니다. |
| 화면과 웹 상태 | 7장의 thymeleaf-view-contracts와 8장의 servlet-request-contracts는 각각 별도 프로젝트입니다. 각 본문의 패키지·템플릿·시작 클래스 준비를 따르고, 같은 클래스 이름만 보고 누적 프로젝트에 덮어 넣지 않습니다. |
| JDBC와 트랜잭션 | 9장의 jdbc-transaction-contracts는 Java 25·Boot 4.1.1 BOM과 JDBC·테스트 H2를 사용합니다. H2에서 확인하는 범위와 운영 DB의 드라이버·복구 범위는 구분합니다. |
| AOP·Boot의 작은 선택 예제 | 프록시 예제는 순수 모델 뒤에 작은 컨텍스트를 연결하며 실제 트랜잭션·기한·대기 정책은 구현하지 않습니다. 조건 8조합과 속성 바인딩은 누적 BOM을 바탕으로 작은 컨텍스트를 만드는 ApplicationContextRunner 테스트 소스입니다. 조건 후보를 직접 지정한 테스트가 배포 JAR의 자동 구성 발견까지 확인하는 것은 아닙니다. |
앞의 개념과 모델은 다음 예제를 이해하는 데 재사용합니다. 파일을 옮길 때는 각 절이 지정한 프로젝트 단위와 버전·등록 범위를 따로 확인하세요.
장별 목차
1장 회원가입과 게시판 시작
2장 객체지향 설계와 Spring
3장 컨테이너·빈·생명주기·스코프
4장 HTTP 기본 원리
5장 서블릿 MVC 구조
6장 Spring MVC 요청·응답
7장 View·폼·메시지·검증
8장 웹 상태와 경계 처리
9장 JDBC와 트랜잭션
10장 데이터 접근 기술과 테스트
11장 예외와 트랜잭션 심화
12장 스레드 로컬·템플릿·프록시
13장 Spring AOP
14장 Spring Boot와 외부 설정
15장 Actuator와 관측
예제를 실행한 뒤에는 요청이 어느 객체를 통과하고, 트랜잭션과 예외가 어느 경계에서 시작하고 끝나는지 말로 설명해 보세요.
완주 기준은 애노테이션 개수가 아니라 회원가입과 게시글 요청 한 건을 컨테이너부터 데이터베이스까지 추적하는 능력입니다.