Sun's Blog
[10분 테코톡] Spring vs SpringBoot 본문
Spring 생태계
- 스프링이란 정확히는 스프링 프로젝트들의 모음
스프링 프레임워크를 사용하면
- 자바 기반의 어플리케이션을 만들 수 있다.
- 개발자들은 비즈니스 로직에 집중할 수 있다.
스프링 이전에 EJB라는 프레임워크가 있었다.
- 2000년대 초반 등장. 스프링 같은 프레임워크
- 목적: 비즈니스 로직과 앤터프라이즈 기술의 분리 => 편리한 애플리케이션 개발
- 취지, 이론 GOOD
- 현실
- 너무 비싸다
- 비즈니스 로직보다 EJB를 사용하기 위한 코드가 너무 많다.
- EJB에 너무 의존적이고 종속적인 개발 => 기존 JAVA의 장점 객체지향을 못 살림
Spring 등장
- 이름이 Spring인 이유는 봄이 왔다는 뜻
- 허나 점점 커져만 가는 생태계와 프레임워크의 기능들 그리고 다양한 오픈소스의 등장으로 외부 라이브러리들
스프링으로 개발을 시작할 때 직접해야 하는 설정이 너무 많아지고 복잡해졌다.
Spring Boot 등장
- 스프링 부트를 사용하면 스프링 기반의 어플리케이션을 쉽게 만들 수 있다.
- 스프링을 이용한 개발에 필요한 복잡한 설정은 Spring Boot가 해줘 즉시 어플리케이션 개발 즉시 시작 가능
- Spring Boot 또한 Spring안에 존재하는 하위 프레임워크다.
내장 서버
스프링으로 웹 애플리케이션을 배포하려면
- WAS 설치
- 개발한 웹 애플리케이션 코드를 WAR로 빌드
- 빌드한 WAR 파일을 WAS 폴더 하위에 넣는다.
- WAS를 실행한다.
위와 같은 귀찮은 작업을 할 필요없이 톰캣을 라이브러리로 포함하는 내장 톰캣 기능 제공하며 war가 아닌 jar파일로 패키징할 수 있다,
편리한 의존성 & 권장 버전 관리
- 어떤 라이브러리들을 사용할지 고른다.
- 각 라이브러리의 버전도 고른다.
위와 같이 할 필요 없이 Spring Boot에서 io.spring.dependency-management를 통해 버전을 생략할 수 있다. spring-boot-starter를 통해 기본 라이브러리 묶음을 제공해서 깔끔하게 의존 파일을 구성할 수 있다.
자동구성
- 일반적으로 자주 사용하는 수 많은 빈들을 자동으로 등록해주는 기능
- spring-boot-autoconfigure 라는 모듈을 통해 수 많은 자동 구성을 제공한다.
- @SpringBootApplication => @EnableAutoConfiguration을 보면 @Import(AutoConfigurationImportSelector.class)가 있다.
- importSelector.class: 설정 정보 대상을 동적으로 선택
- AutoConfigurationImportSelector: 자동 설정에 대한 동적 import 실행(모든 라이브러리를 확인해서 설정 정보 세팅)
- 해당 파일의 설정 정보가 스프링 컨테이너에 자동으로 등록
후기
- Spring Boot의 Health Check가 없어서 아쉽다.
- 자동구성에서 factory 파일 읽는 부분이 궁금했는데 없어서 아쉽다.
- 역시 Spring Boot가 편해서 좋기는 한데 결국 어떻게 구성되는지 알아야 하기 때문에 자동 구성 같은 경우는 독이 될 수 있다.
참고영상
[10분 테코톡 오잉의 Spring vs Spring Boot]: https://www.youtube.com/watch?v=YdE4krx0dsM
'ETC' 카테고리의 다른 글
Git 명령어 (0) | 2023.07.07 |
---|---|
Ubuntu Gitlab 설치 (0) | 2023.07.07 |
[10분 테코톡] 전략 패턴 (0) | 2023.07.01 |
[10분 테코톡] 단위테스트 (0) | 2023.06.15 |
JWT (1) | 2023.05.15 |