HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/강의 내용 정리/
[6.29] Josh Long Spring Boot

[6.29] Josh Long Spring Boot

youtube.com/@coffeesoftware
 

Spring Boot3 변경점

Oracle이 대응을 멈춰버리면서 open source에 commit 을 할 수가 없어짐. JCP
openSource로 바꾸기로 했지만 수정사항이 생기면 다른 패키지로 만들어야 한다고 함; Oracle에서
그래서 Spring Boot2에서 Spring Boot3 로 바뀌면서 패키지가 javax.servllet 에서 jarkarta.servlet으로 바뀜
Java EE ⇒ Jarkarta EE
 
spring boot-dev-tools
  • 새로운기능 : TestContainers
SpringBoot 3.1 에서 지원되는 기능으로, 컨테이너를 코드를 띄울 수 있음
notion image
  • @RestartScope 를 붙이면 매번 새로 끄고 키지를 않음
 

ErrorHandling

ProblemDetail API Error 를 보여주는 standrad. RFC 7807
 

Metrics

micrometer.io (많은 기술들에 대해 추상화를 진행해 놓음, metrics, distributed tracing)
spring-boot-starter-actuator
  • heapdump, threaddump, metrics, mappings 등 유용한 기본 api 를 지원해줌
    • 이거 통해서 운영중인 애플리케이션의 로그 레벨도 바꿀 수 있음
Observation.createNotStarted(

docker 지원

buildpacks.io 에서 코드로 짠 프로그램을 docker image로 만들어줌(Dockerfile 작성할 필요가 없다)
./gradelw buildBootImage
 

JIT vs AOT

JIT(Just In Time), AOT(Ahead of Time)
JIT에서는
  • reflection, serialization, jni, proxies(InvoacationHandler), resource loading 등을 동적으로 함
AOT 엔진에서는 compile time에 모든 것들을 다 해줌
./gradlew nativeCompile (좀 오래 걸림)
graalVM 의 기능 사용하면 사용하는 ram 도 100MB밖에 안됨. 많이 적음
 

Lambda 같은 곳에서 Spring 사용하기 위해서

promising for the immediate startup of Spring applications on the JVM
  • Spring Cloud Function
  • CRaC - Instantly start Java apps at optimal speed.
 

Spring CloudGateway

[Spring Cloud Gateway] 프로젝트 생성 및 라우팅 기능
@Configuration public class RouteLocatorConfig { @Bean public RouteLocator routeLocator(RouteLocatorBuilder builder) { return builder .routes() .route("devsky-api-01", p -> p.path("/api01/**") .uri("http://localhost:8081")) .route("devsky-api-02", p -> p.path("/api02/**") .uri("http://localhost:8082")) .build(); } }
  • gateway를 통해 retry, circuitBreaker, jsonToGrpc, rateLimit등을 지정할 수 있음
  • security, load balancing, routing, 등의 작업을 추가해줄 수 있음
 

HttpInterface in SpringBoot 3

[ Baeldung ] Http Interface in Spring 6
 

GraphQL

@SchemaMapping 참고 링크

Reactor

Mono, Flux
  • Grral VM 을 이용해서 더 가볍게 띄울 수 있음
  • Project CRaC
  • Virtual Thread 지원
  • GraphQL