2장. 버전과 실습 환경을 재현 가능하게 고정한다
예제는 Java 21, Maven 3.9 이상, Spring Boot 3.5.16을 사용한다. Boot parent가 Spring Security 버전을 관리하므로 특별한 이유 없이 개별 Security 의존성 버전을 덮어쓰지 않는다. 버전을 섞으면 컴파일은 되어도 필터 DSL이나 전이 의존성이 어긋날 수 있다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.16</version>
</parent>
<properties><java.version>21</java.version></properties>
책 저장소에서 먼저 정책 엔진을 시험한다.
cd spring-security-boot3
npm test
npm run lab
# http://127.0.0.1:4178
Java 예제는 다음처럼 검증한다.
cd spring-security-boot3/example
mvn -q test
mvn spring-boot:run
빌드 도구가 없거나 사내 저장소가 막히면 버전을 임의로 낮추지 않는다. java -version, mvn -version, Maven settings.xml의 mirror, 프록시, 루트 인증서, 저장소 응답을 순서대로 확인한다. 오류 전문과 실행 환경을 기록해야 동료가 같은 문제를 재현할 수 있다.
운영 업그레이드는 “최신 번호 사용”으로 끝나지 않는다. BOM diff, 릴리스 노트, 보안 권고, 호환 테스트, 롤백 가능 artifact를 함께 승인한다. 이 책의 버전 표는 시작점이지 영구 안전 보증서가 아니다.