2023. 2. 5. 20:02ㆍ카테고리 없음
Spring Boot
스프링 기반으로 실무 환경에 사용 가능한 수준의 독립실행형 애플리케이션을 복잡한 고민 없이 빠르게 작성할 수 있게 도와주는 여러가지 도구의 모음이다.
스프링 부트의 핵심 목표
- 매우 빠르고 광범위한 영역의 스프링 개발 경험을 제공
- 강한 주장을 가지고 즉시 적용 가능한 기술 조합을 제공하면서, 필요에 따라 원하는 방식으로 손쉽게 변형 가능
- 프로젝트에서 필요로 하는 다양한 비기능적인 기술(내장형 서버, 보안, 메트릭, 상태 체크, 외부 설정 방식 등) 제공
- 코드 생성이나 XML 설정을 필요로 하지 않음
스프링 부트 특징
- Containerless (= Serverless)
Servlet Container를 거쳐 Spring Container가 실행되던 것을 Spring Container만을 통해 이어준다.
= 독립 실행형 어플리케이션
- Opinionated
스프링 프레임워크의 설계 철학(극단적 유연함, 다양한 관점 수용, Not opinionated, 수많은 선택지 다 포용 등)
스프링 부트의 설계 철학(Opinionnated, 일단 빠르게 개발하고 고민은 나중에, 스프링을 잘 활용하는 방법 제공)
- 사용 기술과 의존 라이브러리 결정
업계에서 검증된 스프링 생태계 프로젝트, 표준 자바 기술, 오픈소스 기술의 종류와 의존관계, 사용 버전을 정해줌
각 기술을 스프링에 적용하는 방식(DI 구성)과 디폴트 설정 값 제공
- 유연한 확장
스프링 부트에 내장된 디폴트 구성을 커스터마이징하는 방법 제공
스프링 부트가 스프링을 사용하는 방식을 이해한다면 스프링 부트를 제거하고 원하는 방식으로 제구성 가능
스프링 부트처럼 기술과 구성을 간편하게 제공하는 나만의 모듈 작성
스프링 부트의 이해
스프링 부트를 이용한 개발 방법
- 부트가 결정한 기술과 구성, 디폴트 설정을 수용
- 외부 설정 파일을 이용한 설정 변경 방법을 활용
- 아주 빠르게 개발을 시작할 수 있다.
스프링 부트를 이용한 개발의 오해와 한계
- 애플리케이션 기능 코드만 잘 작성하면 된다.
- 스프링을 몰라도 개발을 잘 할 수 있다.
- 스프링 부트가 직접적으로 부여주지 않는 것은 몰라도 된다.
- 뭔가 기술적인 필요가 생기면 검색을 해서 해결한다.
* 프레임워크를 효과적으로 재사용하기 위해서는 프레임워크의 최종 모습뿐만 아니라 현재의 모습을 띠게 되기까지 진화한 과정을 살펴보는 것이 가장 효과적이다. 프레이워크의 진화 과정 속에는 프레임워크의 구성 원리 및 설계 원칙, 재사용 가능한 컨텍스트와 변경 가능성에 관련된 다양한 정보가 들어 있기 때문이다.