ㅇ 스프링 부트 2.3
- 자바 14 지원
- 의존성과 프로퍼티 변경
- 효율적인 컨테이너 이미지 생성 방법 제공
- Liveness와 Readiness
> 쿠버네티스에서 잘 작동하기 위해 생김
> actuator에서 지원
- Graceful Shutdown 지원
> 톰캣, undertow 등이 원래 가지고 있는 기능이였으나, 부트에서 적극 지원
- Actuator, configprops 엔드푄트
ㅁ 의존성과 프로퍼티 변경
- spring-boot-stater-web 에서 spring-boot-stater-validation 모듈을 가져오지 않음
> @Notempty, @NotNull 등을 못써서, 쓰기위해서는 디펜던시 따로 추가해줘야함
- jackson 2.11
> 필드 이름 없이 Array 만들지 못하도록 변경됨.
- period 타입 지원
- spring.data.jpa.repositories.bootstrap-mode가 deffered 모드로 바뀜
( 어플리케이션 생성 후, 리포지토리 생성 )
> 조금이라도 빨리 부팅하게 하기 위한 의지
ㅁ 스프링 부트 애플리케이션 도커 이미지 만들기
- 배포 하기 위해
1. jar로 만들기
2. mvn 사용 (maven 이 설치 안되어있으면 mvnw 사용 - maven wrappper )
> 클린 ( 타겟폴더 지움 ) 하고 빌드, 패키징 권장
3. mvn spring-boot:run
- 도커 파일 만들기
- dive를 통해 이미지 분석 가능
> jarlauncher의 main 함수를 통해 어플리케이션 실행됨
ㅁ 보다 효율적인 도커 이미지 만들기
- 레이어 개념으로 만들기
- jdk -> 라이브러리 -> 애플리케이션 코드 순으로 생성 ( 가장 변하지 않을만한 것 위에 변할만한것 올림 )
> 애플리케이션 코드 : BOOT-INF 폴더 > classes 폴더 + application.properties
> 레이어로 하게 되면, 소스코드를 변경하면 애플리케이션 코드 레이어만 변경되고, 나머지는 캐싱하게 됨
ㅁ 스프링 부트로 효율적인 도커 이미지 만들기
- 아래 항목 메이븐 플러그인에 추가
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true<enabled>
</layers>
</configuration>
<executions>
<execution>
<goals>
<goal> build-image </goal>
</goal>
</execution>
</excutions>
</plugin>
- # ./mvnw clean package
> 빌드 할때마다 도커 이미지로 만들어짐 (효율적인 형태로)
ㅁ Gracefull 셧다운
- application.properties 에 server.shutdown=gracefull 추가
- 요청 처리 중인 리퀘스트에 대해 응답을 주고 꺼짐
- 신규 요청은 받지 않음
> 네트워크단에서 거부, undertow는 503 (service unavailable)
- 다른 방식으로 라이브 체크 하는게 좋음 (liveness, readiness)
ㅁ Liveness와 Readiness
- Liveness : 애플리케이션이 살아있는가?
- Readiness : 요청을 받을 준비가 되었는가?
- ApplicationAvailability 라는 bean으로 상태 체크도 가능 ( 자동으로 등록되어 있음 )
- macOS 에서 http pie라는 걸로 명령어로 체크 가능
- applicationContext에 eventpublisher를 통해 상태값 변경 테스트 함
- @async 를 생각해서 잘 써야함 (그렇지않으면 sync 하게 작업되어 원하는결과가 안나옴)
ㅁ Actuator, configprops 엔드포인트 개선
- 2.3 부터는 /acutoator/configprops 에 origin이 나옴
> 프로퍼티 값이 어디서 왔는지 확인 할 수 있다.
ㅁ Properties 파일에 한글을 쓰면 왜 깨질까
- ISO 8859-1로 인코딩 되는데, 이게 한글을 표현할 수 없음 , 표현할 수 없는 문자는 유니코드로 작성해야함
> 유니코드로 컨버팅하여 입력해야함
- IDE에서 도움 받을 수 있음
'Spring' 카테고리의 다른 글
[Spring] 스프링 데이터 JPA - 1 (0) | 2021.07.22 |
---|---|
[Spring] 스프링 부트 업데이트 - 4 (0) | 2021.07.22 |
[Spring] 스프링 부트 업데이트 - 2 (0) | 2021.07.21 |
[Spring] 스프링 부트 업데이트 - 1 (0) | 2021.07.20 |
[Spring] 스프링 부트 개념과 활용 - 4 (0) | 2021.07.19 |