꾸준한 개발일기

스프링(Spring)과 스프링 부트(Spring Boot)의 차이 본문

Programing/스프링

스프링(Spring)과 스프링 부트(Spring Boot)의 차이

꾸개일 2025. 3. 22. 08:24
반응형

 

🛠 1️⃣ 스프링(Spring)

  • 스프링 프레임워크(Spring Framework) 의 핵심 기능을 제공하는 프레임워크
  • DI(의존성 주입), AOP(관점 지향 프로그래밍), 트랜잭션 관리 등을 지원
  • 웹 애플리케이션 개발 시 Spring MVC 를 이용하여 개발 가능
  • 설정이 복잡하며, XML 설정 또는 JavaConfig(@Configuration)을 직접 관리해야 함

예시: 스프링에서 수동 설정

@Configuration
public class AppConfig {
    @Bean
    public MemberService memberService() {
        return new MemberServiceImpl(memberRepository());
    }

    @Bean
    public MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }
}

2️⃣ 스프링 부트(Spring Boot)

  • 스프링 프레임워크를 기반으로 개발을 쉽게 할 수 있도록 도와주는 확장 프레임워크
  • 자동 설정(Auto Configuration) 기능 제공 → @SpringBootApplication 한 줄이면 끝!
  • spring-boot-starter-* 로 의존성을 자동 관리하여, 직접 라이브러리를 설정할 필요 없음
  • 내장 웹 서버(Embedded Tomcat, Jetty 등) 포함 → 별도 서버 설정 없이 실행 가능
  • jar 파일 하나로 실행 가능하여 배포가 간편

예시: 스프링 부트에서 자동 설정 사용

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

내장 Tomcat 자동 실행 + 스프링 빈 자동 설정


🔍 스프링(Spring)과 스프링 부트(Spring Boot)의 차이점

비교 항목 스프링(Spring) 스프링 부트(Spring Boot)
설정 방식 수동 설정 (XML, JavaConfig) 필요 자동 설정 (Auto Configuration) 지원
내장 서버 없음 (Tomcat 등 별도 설정 필요) 내장 웹 서버 (Tomcat, Jetty 등 포함)
의존성 관리 개발자가 직접 의존성 설정 `spring-boot-starter-*` 로 간편 관리
빌드 및 실행 목적 `war` 파일 생성 후 별도 서버 배포 `jar` 파일 실행으로 독립적 실행 가능
목적 다양한 프로젝트에서 스프링 기반 개발 가능 빠른 개발을 위한 "의존성 관리 + 설정 자동화"

🎯 결론: 언제 사용하면 좋을까?

  • 스프링(Spring)
    • 기존 대규모 프로젝트에서 커스텀 설정이 필요한 경우
    • 세밀한 제어가 필요한 애플리케이션
  • 스프링 부트(Spring Boot)
    • 빠르게 개발하고 싶을 때
    • 설정을 최소화하고 단순한 웹 애플리케이션을 만들 때
    • 마이크로서비스(MSA) 를 구축할 때

💡 즉, 스프링 부트는 스프링을 더 쉽게 사용할 수 있도록 만든 확장 프레임워크! 🚀

 

반응형
Comments