[스프링 부트 기초 강의] 10강. 6 ~ 7. 애플리케이션 패키징과 배포 | 빌드 패키징 Jar, War, 프로파일
- 스프링 부트 애플리케이션은 실행 가능한 JAR 파일과 WAR 파일 두 가지 형태로 패키징할 수 있습니다. 📦
- JAR 파일은 내장 톰캣을 포함하여 별도의 WAS 없이
java -jar 명령으로 단독 실행이 가능하며, 새로운 프로젝트에 권장됩니다. 🚀
- WAR 파일은 내장 톰캣을 사용하지 않아 외부 WAS(예: 톰캣, JBoss)가 필요하며, 전통적인 Java EE 스타일로 기존 WAS 인프라에 배포할 때 유용합니다. 🏛️
- 스프링 부트의 프로파일 기능은 배포 환경(개발, 테스트, 운영)에 따라 다른 설정 파일이나 빈 로딩을 지원하여 유연한 환경 관리를 가능하게 합니다. ⚙️
- 설정 파일은
application.properties로 공통 설정을, application-{프로파일명}.properties로 환경별 설정을 분리하여 관리할 수 있습니다. 📄
- 프로파일은
java -jar --spring.profiles.active={프로파일명} 명령줄 옵션이나 SPRING_PROFILES_ACTIVE 환경 변수를 통해 활성화할 수 있습니다. 🎯
- 특정 프로파일에서만 로드될 빈 객체는
@Profile("{프로파일명}") 어노테이션을 사용하여 지정할 수 있으며, 이는 개발 환경 전용 데이터 초기화 빈 등에 활용됩니다. 🧩
- Gradle의
bootJar 태스크로 실행 가능한 JAR 파일을, bootWar 태스크로 WAR 파일을 생성할 수 있으며, 빌드 스크립트에서 프로젝트 이름과 버전을 설정하여 파일명을 제어합니다. 🛠️
- WAR 파일을 외부 톰캣에 배포할 때는
webapps 디렉토리에 복사하며, WAR 파일 이름이 애플리케이션 컨텍스트 루트가 됩니다(예: demo.war -> /demo). 🌐
- 루트 컨텍스트에 배포하려면 WAR 파일 이름을
ROOT.war로 변경하여 webapps에 복사해야 합니다. 🌳
- 외부 WAS에 배포된 WAR 파일도 WAS 시작 전
SPRING_PROFILES_ACTIVE 환경 변수를 설정하여 프로파일을 활성화할 수 있습니다. 🌍