[Spring Boot] 스프링 부트 기초 개념
by 무작정 개발이번에는 스프링 부트(SpringBoot)가 무엇인지, Springboot와 Spring의 차이점은 알아보겠습니다.
이전에 국비 교육을 수강하며 작성했던 글의 내용이 부실해서 수정하게 되었습니다.
작성일 : 2022년 3월 30일
수정일 : 2022년 11월 17일
카테고리위치 변경 : 국비 관련 -> Backend로 변경
1. 스프링 프레임워크(Spring Framework)란?
스프링 부트(SpringBoot)를 알아보기 전에 먼저 Spring. Framework에 대해 간략하게 정리해보겠습니다.
스프링 프레임워크(Spring Framework)는 Java 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로, 간단하게 스프링(Spring)이라고 불립니다.
기존 개발의 복잡성을 해결하기 위해 만들어졌고, POJO 프레임워크(비 침투적 프레임워크)입니다. -> 순수 Java로 프로그래밍 가능
대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크(eGovFrame)의 기반 기술로 쓰이고 있습니다.
[ 스프링의 주요 핵심 ]
- 경량 컨테이너
- IOC (Invertion of Control) : 제어의 역전
- DI (Dependency Injection) : 의존성 주입
- AOP (Aspect-Oriented Programming) : 관점 지향 프로그래밍
2. 스프링부트(SpringBoot)란?
Spring Framework는 수많은 기능이 있는 만큼 환경설정 또한 매우 복잡합니다.
저 또한 스프링을 처음 접할 때 XML 작성을 하고, DI 등 귀찮고 어려움을 느꼈던 경험이 있습니다.
이에 어려움을 해결하기 위해 나온 것이 스프링 부트(SpringBoot)입니다.
스프링 부트는 먼저 Spring based Applications(스프링 기반 애플리케이션)입니다.
스프링 부트는 스프링 프레임워크를 사용하기 위한 수많은 설정 부분을 자동화하여(스프링 부트가 대신해줌) 개발자가 환경설정보다
개발에 좀 더 집중할 수 있게 도와줍니다. 또한 내장 서버를 가지고 있어 귀찮게 따로 톰캣(TomCat) 등을 설치할 필요가 없습니다.
[ 스프링 부트의 주요 핵심 ]
- Spring Boot starter를 통한 dependency 자동화
Spring Boot starter란
특정 목적을 달성하기 위한 의존성(dependency) 그룹이라고 쉽게 말할 수 있습니다.
starter는 npm 혹은 yaml처럼 간편하게 dependency를 제공해주는데, 만약 JPA 혹은 Mybatis가 필요하다면
pom.xml(Maven 사용할 때), build.gradle(Gradle 사용할 때)에 "spring-boot-start-data-jpa"만 추가해주면 스프링 부트가
그에 필요한 라이브러리(lib)를 가져오고 버전을 자동으로 관리해줍니다.
추가로 스프링 부트(SpringBoot)는 JSP 사용을 지양하고, HTML 방식을 지향합니다.
그래서 만약 스프링 부트에 JSP를 사용하려면 프로젝트 구조가 조금 달라지고, lib를 추가해야 합니다.
[Spring Boot] 스프링 부트에서 JSP 사용하기(JSP파싱)
3. 그렇다면 스프링 부트와 스프링의 차이점은?
필자는 처음 스프링과 스프링 부트를 접할 때는 이 두 개가 정말 다르다고 생각했었습니다.
하지만 스프링의 철학을 스프링 부트가 대부분 가져가고, 쉽게 말하면 스프링에서 귀찮은 환경 세팅이 사라진 것이 스프링 부트라고 말할 수 있습니다.
결론은 스프링과 스프링 부트는 몇 가지를 제외하면 크게 다른 점이 없습니다.
[ SpringBoot와 Spring Framework의 차이점 ]
- SpringBoot는 Embed Server(내장 서버)를 사용해서 스프링 부트 내부에 Tomcat이 포함되어 있습니다. 따라서 Spring과 다르게 따로 Tomcat을 설치하거나 버전 관리를 할 필요가 없습니다.
- Spring Boot starter를 통한 dependency 자동화
- XML 설정을 하지 않아도 됩니다. (이 부분이 매우 만족)
- jar 파일을 이용해 쉽게 배포가 가능합니다. -> Spring은 war 파일을 사용해서 배포할 때 따로 톰켓도 세팅하고 귀찮은 점이 많았습니다. SpringBoot는 손쉽게 jar 파일만 배포하면 끝!
4. 추가 자료
Spring과 Spring Boot의 차이점을 좀 더 알고 싶다면 하단 10분 tech톡 참고~
https://www.youtube.com/watch?v=6h9qmKWK6Io
'Back-End > SpringBoot' 카테고리의 다른 글
@Controller와 @RestController 차이점 (2) | 2022.11.03 |
---|---|
@Autowired vs @RequiredArgsConstructor vs @Resource 차이점 (3) | 2022.10.14 |
[Spring boot] 프로젝트 패키지 구조 (0) | 2022.09.15 |
[Spring Boot] 스프링 부트에서 JSP 사용하기(JSP파싱) (1) | 2022.04.01 |
[Spring Boot] 스프링 부트 + MyBatis 게시판 (1) | 2022.03.30 |
블로그의 정보
무작정 개발
무작정 개발