Spring Framework란?
- 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크
- 동적인 웹 개발하기 위한 여러 가지 서비스 제공
Spring Framework의 장점은?
1. 라이브러리 관리 자동화
기존 스프링 자바 프로젝트는 maven 또는 gradle을 이용해서 라이브러리 의존성을 관리한다. 하지만 Spring Boot는 spring-boot-starter을 이용해 특정 기능에 필요한 라이브러리 의존성을 더욱 간단히 처리할 수 있다.
spring-boot-starter의 역할이 뭐지?
- Spring Boot를 사용하면서 자주 사용하게 되는 라이브러리간의 의존성, 버전 조합을 제공한다.
- 예를들어, 기존에 aspectJ를 이용한 AOP를 이용하고 싶으면 org.springframework:spring-aop 의존성 org.aspectj:aspectjweaver 의존성을 추가해서 사용했었지만 Spring Boot에서는 spring-boot-starter-aop 의존성만 추가하면 aspectJ를 사용하기 위한 모든 의존성 조합이 추가된다.
2. 설정의 자동화
@EnableAutoConfiguration 어노테이션을 선언해서 스프링에서 자주 사용했던 설정 알아서 등록해준다.
3. 라이브러리 버전 자동 관리
라이브러리 버전이 달라 정상적으로 동작하지 않는 상황을 겪을 필요 없고, XML 설정을 이용해서 라이브러리를 매번 설정하는 과정을 줄이고 개발에만 집중할 수 있는 환경을 제공한다.
4. 테스트 환경과 내장 Tomcat
- JUnit을 포함한 테스트 관련 라이브러리들이 기본적으로 포함되어 있기 때문에 컨트롤러를 포함함 다양한 계층의 클래스들에 대해 테스트 케이스를 쉽게 작성할 수 있다.
- Tomcat 서버를 내장하고 있기 때문에 main() 메소드를 가진 클래스를 실행하는 방식으로 서버를 구동하기 때문에 실행 결과를 빠르게 확인 할 수 있다.
5. 독립적으로 실행 가능한 JAR
- 애플리케이션을 개발하고 테스트까지 마쳤다면 애플리케이션을 실제 운영 서버에 배포하기 위해서 패키징을 해야하는데, 프로젝트가 일반 자바 프로젝트라면 간단하게 JAR파일로 패키징하면 되지만 웹 프로젝트라면 WAR 파일로 패키징 해야 한다.
- Spring. Boot는 독립적으로 실행 가능한 애플리케이션을 빠르게 개발하는 것이 목표로 하기 때문에 웹 애플리케이션도 WAR가 아닌 JAR 파일로 패키징 하여 사용할 수 있다.
'Interview' 카테고리의 다른 글
IoC Container의 기능, 장점 설명해주세요. (0) | 2022.03.24 |
---|