홈

자바 백엔드 입문자를 위한 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, JPQL

  • Spring 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로 보내주세요.

마지막 수정 2026년 10월 23일