Spring말고 SpringBoot를 선택한 이유

JaeGu Jeong·2024년 2월 19일
0

개발 도구들

목록 보기
8/12

두 프레임워크 모두 공통된 언어를 사용하고 같은 라인의 프레임워크이지만 SpringBoot를 선택한 이유는 다음과 같습니다.

AOP 프록시 자동 구성

기존 스프링에서도 AOP 기능을 사용할 수 있지만 먼저 애플리케이션에 "@EnableAspectJAutoProxy"를 명시해야 합니다.
반면 스프링 부트는 기본으로 자동 구성됩니다.

@SpringBootApplication
@EnableAspectJAutoProxy                     <<< 이렇게
public class KiwiApplication {

	public static void main(String[] args) {
		SpringApplication.run(KiwiApplication.class, args);
	}

}

최신 의존성 사용

버전을 하나하나 명시해야 하는 Spring과 달리 Boot는 생략 가능합니다.
다만 1.8이하의 Java를 사용해서 라던지 프레임워크와 의존성에 호환성 문제가 발생하는 경우도 있습니다.
이런 경우 직접 호환되는 버전으로 명시하면 해결됩니다.

내장 서버 / Embedded Server

Spring은 톰캣이라던지 서블릿 컨테이너 추가 설치 및 설정이 필요하지만 Boot는 기본 내장 컨테이너로 독립적으로 실행 가능합니다.

Starters 제공

"spring-boot-starter-xxxx"을 통해 주로 사용하는 의존성을 한번에 가져올 수 있습니다.
다만 프레임워크 버전에 따라 호환성 문제가 발생하는 경우가 있는데
Maven의 경우 "<exclusions>"태그를 추가해서 부분 제외도 가능합니다.

	<dependency>
		<groupId>io.opentracing.contrib</groupId>
		<artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
		<version>3.3.1</version>
		<exclusions>
			<exclusion>
				<groupId>org.springframework</groupId>
				<artifactId>spring-websocket</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

SpringBoot 2.7.12 선택 이유

Java 1.8을 지원하는 프레임워크라서 선택하였습니다.
Java 1.8을 기준으로 잡은 이유는 다음과 같습니다.
Java 1.8을 기준으로 가장최신인 2.7.12버전으로 개발했습니다.
Java 1.8은 오라클의 지원기간이 2030년 12월로 11,17보다 장기간 지원합니다.
점유율 8,11,17 순으로 가장 정보가 많습니다.

단점

25년 2월에 Boot2.7.x 지원이 종료됩니다.
26년까지 지원하는 스프링 5.3.x로 넘어가던지 Java17 + SpringBoot3으로 넘어가야 합니다.

profile
BackEnd Developer

0개의 댓글