Spring은 스프링 프레임워크의 핵심 모듈을 모아서 만든 프레임워크입니다.
Spring에서는 개발자가 직접 설정 파일을 작성하여 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고,
빈 객체 간의 의존성을 설정해야 합니다. Spring은 특정한 구성을 위해 추가적인 라이브러리와 설정이 필요합니다.
반면, Spring Boot 는 스프링 프레임워크를 보다 쉽게 사용할 수 있도록 만든 프레임워크 입니다.
Spring Boot에서는 개발자가 설정 파일을 작성할 필요 없이, 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해주는 기능을 제공합니다. 또한, Spring Boot는 실행 가능한 JAR 파일을 만들 수 있습니다.
여기에서 알 수 있는 내용은 Spring과 Spring Boot 둘 다 java 기반의 프레임워크이지만,
한줄로 정리를 하자면
Spring에서는 의존성을 관리, 기능확장, 프로젝트 구성 등등 부수적인 기능들을 사용하려면 수동으로 셋팅해야하지만,
Spring Boot에서는 미리 정의된 기본값을 제공하여 더욱 빠르고 편리하게 개발을 할 수 있다!
여기에서 직관적으로 Spring과 Spring Boot를 알아볼 수 부분은 바로
프로젝트 구성과 설정파일의 관리 방식에서 차이가 있습니다!
Spring 프레임워크는 주로 xml 파일을 사용해서 설정을 하는데,
주로 applicationContext.xml 파일에 기술되고, 웹 애플리케이션의 경우 web.xml 파일도 설정에 사용된다.
각 모듈 및 빈(Bean)의 설정이 xml 파일에 명시되어야 합니다
Spring Boot는 애플리캐이션을 빠르게 실행할 수 있게끔 기본 설정값을 제공하는데,
주로 application.properties 또는 application.yml 파일을 사용합니다.
추가적인 구성이 필요한 경우, Spring Boot는 어노테이션 기반의 설정을 선호합니다.
@Configuration, @ComponentScan 등의 어노테이션을 사용하여 자바 코드에서 설정을 정의할 수 있습다.
Spring Boot는 내장된 서버와 함께 제공되므로, 별도의 web.xml 파일이나 외부 서버 설정이 필요 없이 웹 애플리캐이션을 실행할 수 있습니다.
그리고 Spring과 Spring Boot는 같이 사용할 수 있으므로 서로 상호 보완적으로 사용될 수 있다!
● 참고용 표
특성 | Spring | Spring Boot |
구성 방식 | XML 또는 Java Config | 주로 application.properties 또는 application.yml, 애너테이션 기반의 Java Config |
설정 파일 | applicationContext.xml, web.xml 등 | application.properties 또는 application.yml (기본값 제공), Java Config 클래스 |
내장 서버 지원 | 아니오 (별도의 서버 설정 필요) | 예, 톰캣, 제티 등 내장 서버 기본 제공 |
기본값 제공 | 상대적으로 적음 | 자동 구성 및 기본값이 많이 제공됨 |
프로젝트 구성 | 세부적으로 수동으로 설정해야 함 | 컨벤션을 따라 간단한 구성이 가능 |
의존성 관리 | 수동으로 관리 | 내장된 의존성 관리 도구 제공 |
실행 및 개발 환경 | 복잡함, 서버 구성이 필요 | 간편함, 내장 서버로 빠르게 실행 가능 |
애너테이션 기반 설정 | 일부 기능에만 사용 | 주로 사용됨 |
프로젝트 생성 도구 | 없음 | Spring Initializr 등 사용 가능 |
출처
챗지피티짱 : ChatGPT 3.5
'개발지식' 카테고리의 다른 글
[SPRING] DI(Dependency Injection) 의존관계 주입, DI 컨테이너 (0) | 2024.02.05 |
---|---|
[SPRING] IOC(Inversion of Control) 제어의 역전 (0) | 2024.02.05 |
프록시(Proxy) 서버 (0) | 2024.02.04 |
[Spring] Spring의 삼각관계 IOC와 DI, 그리고 AOP... (0) | 2024.02.04 |
[Spring] AOP(관점 지향 프로그래밍)이란?! (0) | 2024.02.03 |