seunggyu.kim.log
로그인
seunggyu.kim.log
로그인
Spring Boot
김승규
·
2024년 3월 4일
팔로우
0
스프링부트
Spring Boot Release
Spring Boot 2.0.X
Java Base line : java 8 ( java 7 이하를 지원하지 않음 )
Spring Framework 5.0
Default Datasource : HikariCP
네트워크가 안정적인 상황에선 Apache commons dbcp보다 성능이 좋다.
Spring Boot 2.3.X.RELEASE(2020.05)
java 14 지원
graceful shutdown
서버를 종료시켜도 이미 받은 요청에 대해서는 처리를 하고 종료시키는 기능
spring-boot-starter-validation 이 spring-boot-starter-web 에서 제외됨
Spring Boot 2.4(2020.11)
java 15 지원
새로운 버전 스킴 적용 ( 2.3.5.RELEASE -->2.4.0 )
Docker Image Building 지원(jar)
도커 이미지 쉽게 만드는 기능 지원
Spring Boot 2.5(2021.05)
java 16 지원
환경변수 Prefix
Docker Image Building 지원(war)
war 지원
Spring Boot 2.6(2021.11
java 16의 record 를 @ConfigurationProperties 로 사용가능
@ConfigurationProperties는 .properties보다 type safe하게 쓸 수 있는 방법
중요) 순환참조 빈은 금지가 기본 (spring.main.allow-circular-references)
정 필요하면 spring.main.allow-circular-references 설정 값을 변경해야 한다.
Spring Boot 2.7(2022.05)
auto configuration 파일 위치 변경
Spring Boot 3.0.0(2022.11)
java 17 지원 ( java 17 이상부터 사용가능)
Spring Framework 6
스프링 부트의 Major 버전이 변경될때, Spring Framework, Java 버전이 변경됩니다.
Spring Boot Release
spring boot 는 Release에 따라 지원기간 정책을 제공합니다.
OSS support
보안 업데이트와 버그수정을 무료로 지원합니다.
Commercial support
스프링 전문가로부터 OSS 타임라인동안 지원을 받고, OSS EOL 이후에도 지원을 받을 수 있습니다.
https://spring.io/projects/spring-boot/#support
Spring Boot 목표-1
Java –jar 로 실행이 가능
$ java -help 사용법:
java [-options] class [args...] (클래스 실행)
java [-options] -jar jarfile [args...]
Spring Boot 목표-2
빠르고 광범위한 getting-started 경험
별도의 설정 없이 바로 사용 (out-of-box)
예를 들어 여러개의 DB를 사용한다면, 각각을 적절하게 연결해준다.
비기능 요구사항 기본제공
코드 생성이나 XML 설정이 필요 없음
Spring Boot의 기능
단독으로 실행가능한 애플리케이션 생성
실행형 jar, 실행형 war
내장형 웹 애플리케이션 서버 지원
Tomcat, Jetty, Undertow, Netty for WebFlux
Embedded Tomcat, ...
기본 설정된 Starter 모듈
거대한 기능별로 여러 라이브러리들이 하나의 Starter 모듈로 패키징화 되어 있다.
의존성 (library dependency)
버전 호환성 보장 (dependencyManagement)
자동 설정(Auto Configuration)
상용화에 필요한 통계, 상태점검 외부설정 지원
Actuator (Health, metrics)
Actuator라는 기능을 사용하여 Application의 상태(동작 중, 오류..), 통계(스레드 몇개..)를 다 제공
외부 설정
과거: 외부 설정에 필요한 값을 .properties로 관리하고, @Value로 가져와서 썼음
-> 결국 패키징을 해서 배포하므로 코드와 다를바가 없음.
스프링 부트: 외부 변수를 환경변수, 옵션 등을 이용하여 내부로 넣어줄 수 있다.
Spring Framework과의 비교(1/2)
라이브러리 의존성을 pom.xml 직접 설정해야 한다.
spring boot 에서는 spring-boot-starter-{module} 만 설정하면 필요한 라이브러리 설정 완료
버전 정보를 직접 설정하고 테스트 해야 한다.
spring-boot-starter-parent 에서 spring 모듈의 버전 및 3rd Party 라이브러리 버전도 제공
런타임에만 확인 가능한 성가신 작업!
Web Application Server 에 배포해야 한다.
spring boot 에서는 내장형 Web Application Server를 제공하기 때문에 서버를 구매하거나 설정할 필요가 없다.
JEUS 같은 공공에서 쓰고있는 WAS는 구매가 필요하다
김승규
꿈꾸는 리얼리스트 개발자 김승규입니다.
팔로우
이전 포스트
ThreadLocalRandom
다음 포스트
application.properties, YAML
0개의 댓글
댓글 작성