[Spring] 스프링부트와 스프링, War 와 Jar의 차이

이력서나 프로젝트 기술스택 등 적을 때 스프링/ 스프링부트/ 스프링 프레임워크  세 개의 선택지가 제시되곤 한다. 

 

스프링과 스프링 부트는 새로운 기술이라기 보다는 스프링 프레임워크를 개선한 것이다. 

대표적인 개선 사항은 다음과 같다.

 

스프링 부트

1. 개발 환경 설정을 최소화

스프링은 버전에 따라 동작하는 외부 라이브러리를 일일이 찾아 연동해야한다. 하지만 스프링 부트는 미리 설정된 스타터 프로젝트로 외부 라이브러리를 최적화해 제공하므로 사용자가 직접 연동할 필요가 없다. 

 

 

2. 웹 애플리케이션 서버를 내장

스프링 부트는 내부에 웹 어플리케이션 서버  (WAS, Web Application Server)인 톰캣을 가지고 있다. 따라서 웹 서비를 jar 파일로 간편하게 배포할 수 있다. 

 

결론적으로 스프링부트는 개발자가 개발에만 더 집중할 수 있게 돕는다. 

 

 

 

* Jar / War

Spring Initializr 에 보면 packaging 항목에 Jar, War 옵션이 있다.

 

 

 

Jar 과 War을 집합관계로 표시하면 다음과 같다

Spring boot packaging

 

 

Jar

JAR 은 Java Archive 를 의미하며 가장 낮은 수준의 패키징이다.

  • Java 프로그램이나 라이브러리를 묶어놓은 파일.
  • Jar는 Jar파일 자체로 실행 / 배포 가능
  • 주로 일반 Java 애플리케이션이나 라이브러리 배포에 사용.

 

War

  • War는 컨테이너에 올려서 사용 
  • 웹 애플리케이션 배포에 사용. 웹 서버에 올려서 웹 사이트나 웹 애플리케이션을 배포할 때 실행될 수 있는 형식.

 

 

JAR은 일반적인 Java 프로그램, WAR은 웹사이트나 웹서비스용 프로그램이라고 생각하면 쉽게 이해할 수 있다.

 

 


https://www.geeksforgeeks.org/spring-boot-packaging/

 

Spring Boot - Packaging - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

'Web > TIL' 카테고리의 다른 글

자바 접근 제어자  (0) 2024.09.01
Redis와 캐시의 이해  (0) 2024.08.18
캐시 무효화와 캐시 무효화 전략  (1) 2024.08.11
캐시와 설계 시스템 전략  (0) 2024.08.11
Flyway 데이터베이스 마이그레이션  (0) 2024.08.11