자바 백엔드 입문자를 위한 Spring Boot 강의 자료입니다.
강의 개요
이 강의는 웹의 동작 원리(HTTP)부터 시작해 Spring Boot로 실제 웹 애플리케이션을 만드는 과정을 단계적으로 다룹니다. 화면을 그리는 서버 사이드 렌더링(Spring MVC + Thymeleaf), 데이터베이스 연동(Spring Data JPA), 그리고 로그인·권한 처리(Spring Security)까지 하나의 흐름으로 이어집니다. 한국어로 작성되었으며 누구나 자유롭게 학습에 활용할 수 있습니다.
기술 스택
구분 | 버전 |
|---|---|
Spring Boot | 3.5.x (4.x 미사용) |
Java | 21 (LTS) |
빌드 도구 | Gradle |
데이터베이스 | MySQL 8.x (Spring Data JPA / Hibernate 6) |
템플릿 엔진 | Thymeleaf |
보안 | Spring Security 6.x |
이 강의가 3.5.x를 사용하는 이유
Spring Boot 4.0은 2025년 11월에 정식 출시되었지만, 이 강의는 입문자가 참고할 자료(블로그·도서·예제)가 가장 풍부하고 안정적인 3.5.x를 기준으로 합니다. 4.x에서 바뀐 핵심 내용은 아래에 따로 정리했으니, 입문 과정을 마친 뒤 참고하세요.
Spring Boot 4.x에서 달라진 점
Spring Boot 4.0은 Spring Framework 7을 기반으로 한 메이저 업그레이드입니다(2025-11-20 출시). 입문 단계에서 꼭 외울 내용은 아니지만, 어떤 방향으로 발전했는지 알아두면 좋습니다.
기반 버전 변경
구분 | 3.x | 4.0 |
|---|---|---|
Spring Framework | 6.x | 7.0 |
Java | 17+ | 17+ (25까지 지원) |
Jakarta EE | 10 | 11 |
Kotlin | 1.9 | 2.2 |
Gradle | 8.x | 9 지원 (8.14+ 유지) |
주요 신규 기능
모듈화(Modularization): 거대했던
spring-boot코드베이스를 기능 단위의 작고 명확한 jar로 분리했습니다. 더 가벼운 의존성 구성이 가능하지만, 기존 프로젝트는 일부 의존성을 명시적으로 추가해야 할 수 있습니다.널 안전성(JSpecify): 기존 JSR 305 기반
@Nullable방식을 JSpecify 애노테이션으로 전환했습니다. 제네릭·배열·가변인자의 널 여부까지 표현할 수 있어 컴파일 단계에서NullPointerException을 더 잘 잡아냅니다.API 버저닝: REST API 버전 관리를 프레임워크 차원에서 지원합니다. 경로(path)·헤더(header)·쿼리 파라미터(query)·미디어 타입(media type) 전략을 선택할 수 있습니다.
HTTP 서비스 클라이언트:
@HttpExchange가 붙은 인터페이스만 선언하면 구현체를 자동 생성·등록해 줍니다(자동 구성 + 설정 프로퍼티 제공). 선언적 REST 클라이언트 작성이 쉬워졌습니다.회복 탄력성(Resilience): 별도 프로젝트였던 Spring Retry가 코어로 흡수되어
@Retryable(재시도)·@ConcurrencyLimit(동시성 제한) 애노테이션을 기본 제공합니다(org.springframework.core.retry).
업그레이드 시 주의
마이그레이션은 가볍지 않습니다
3.x 전반에 걸쳐 deprecated 처리되었던 API·설정 프로퍼티·일부 Actuator 엔드포인트가 4.0에서 제거되었습니다. 기존 프로젝트를 올릴 때는 반드시 공식 마이그레이션 가이드를 확인하세요.
학습 로드맵
graph LR
A[HTTP 기초] --> B[스프링 소개]
B --> C[프로젝트 생성]
C --> D[Spring MVC]
D --> E[Thymeleaf]
E --> F[Spring Data JPA]
F --> G[테스트]
G --> H[Spring Security]학습 내용
기초
스프링 전에 다지는 자바 문법
애노테이션,var, 제네릭, 람다식·함수형 인터페이스, 메서드 참조, 스트림,Optional,record, switch 식·텍스트 블록HTTP 기본 지식
IP·TCP, OSI 7계층, URI, HTTP 요청/응답 메시지, 메소드, 상태 코드, 헤더스프링 소개
웹 서버와 WAS, 서블릿, SSR/CSR, 자바 웹 기술의 역사, 스프링 핵심 원리(IoC·DI·AOP), MVC 패턴·구조, 로깅실습 — 순수 자바로 이해하는 IoC·DI·AOP
스프링 없이 주문·할인 예제를 만들며 요구사항 변경의 고통을 직접 겪고, 생성자 주입·AppConfig·동적 프록시로 단계별 리팩터링프로젝트 생성 및 환경설정
Spring Initializr, 의존성 선택, 뷰·데이터베이스 설정,application.yml, 프로파일·설정 외부화, 빌드와 실행
웹 개발
Spring MVC
스프링 빈과 DI, 요청·응답 매핑, Bean Validation, 쿠키·세션, 필터·인터셉터, 예외 처리, 파일 업로드·페이징Thymeleaf
텍스트 출력, 변수 표현식, 기본·유틸리티 객체, URL 링크, 반복·조건, 템플릿 조각과 레이아웃JPA 기초
ORM과 JPA·Hibernate, EntityManager와 영속성 컨텍스트, 엔티티 생명주기, 1차 캐시·쓰기 지연·변경 감지, flush, JPQLSpring Data JPA
엔티티 매핑,JpaRepository, 쿼리 메소드,@Query, 페이징과 정렬, 연관관계, 트랜잭션·변경 감지, DTO 분리
테스트
JUnit 기초
테스트의 필요성,@Test와 given–when–then, Assertions,@BeforeEach생명주기단위/통합 테스트
단위 vs 통합, Fake·Mock,@SpringBootTest,@WebMvcTest+MockMvc+@MockitoBean
시큐리티
Spring Security
인증 절차,SecurityFilterChain,UserDetailsService, 비밀번호 암호화, 권한 제어, 로그인 실패 처리
이 강의 자료의 특징
흐름 중심: 개별 기능이 아니라, 하나의 웹 애플리케이션을 완성해 나가는 순서로 구성했습니다.
코드 중심: 모든 개념은 실행 가능한 예시 코드와 함께 제공됩니다.
실무 팁 포함: 단순한 문법 설명을 넘어 현장에서 자주 쓰이는 패턴과 주의사항을 박스로 강조했습니다.
검색 가능: 우측 상단 검색창에서 키워드로 빠르게 찾을 수 있습니다.
라이선스 및 활용
자유롭게 학습에 활용하시고, 오타·오류·개선 제안은 GitHub Issues 또는 Pull Request로 보내주세요.