Notice
Recent Posts
Recent Comments
Link
꾸준한 개발일기
스프링(Spring)과 스프링 부트(Spring Boot)의 차이 본문
반응형
🛠 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) 를 구축할 때
💡 즉, 스프링 부트는 스프링을 더 쉽게 사용할 수 있도록 만든 확장 프레임워크! 🚀
반응형
'Programing > 스프링' 카테고리의 다른 글
스프링 의존관계 자동 주입 4가지 방법은? (0) | 2025.03.23 |
---|---|
@Service 안 "비즈니스 로직"이란? (0) | 2025.03.22 |
@Configuration이란? (0) | 2025.03.21 |
Thread(스레드)란? (0) | 2025.03.20 |
스프링 컨테이너(ApplicationContext)의 구현체 AnnotationConfigApplicationContext란? (0) | 2025.03.19 |
Comments