Spring Boot 에서 HTTP Status Code 반환 방법

클라이언트가 서버에 특정 HTTP 요청을 보내면 서버는 HTTP Status Code를 반환한다.
클라이언트는 응답 코드를 통해서 서버가 요청 처리를 실패했는지, 거부했는지,성공했는지 알 수 있다.
Spring Boot기반 애플리케이션에서 기본 프레임워크는 서버가 반환하는 모든 응답에 적절한 HTTP Status Code를 자동으로 추가한다. 또한 Spring Boot은 컨트롤러의 HTTP 응답 상태를 사용자 정의하는 방법도 제공한다.

[Spring Boot 시작 과정] 3. Bean Initialization과 Event System

bean initialization과 event system banner

우리가 작성한 수많은 서비스 객체들이 어느 시점에 생성되고 어떤 과정을 거쳐 완성되며 어떻게 서로 소통하는지를 아는 것은 프레임워크를 사용하는 단계에서 제어하는 단계로 넘어가는 핵심 역할을 할 수 있도록 한다. 이번 포스팅에서는 Bean의 생성 후 초기 작업(Bean Initialization)과 Bean 생성 시점에 틈새를 공략하는 확장 기법 그리고 부트스트래핑 과정에서 발생하는 이벤트와 이벤트 시스템(Event System)에 대해서 정리해 보고자 한다.

[Spring Boot 시작 과정] 2. Application Bootstraping을 위한 13단계

application bootstraping banner

SpringApplication 인스턴스가 생성된 후 인스턴스의 run() 호출시(정적 메서드 run()이 아니다) Application Bootstraping을 위한 13단계를 거치는데 어떤 과정들을 수행하는지 알아보자. SpringApplication 클래스 코드는 Spring Boot 3.2.1 버전을 사용하였다.

[Spring Boot 시작과정] 1. SpringApplication 생성과 자동 감지

SpringApplication 생성 배너

Spring Boot 애플리케이션을 개발할 때 우리가 가장 먼저 마주하는 코드는 @SpringBootApplication 어노테이션이 붙은 클래스와 그 안의 main 메서드일 것이다.
몇 줄 안되는 매우 간단한 코드지만 SpringApplication.run() 호출 뒤에는 수십 개의 클래스가 협력하여 복잡한 초기화 과정을 수행한다. Spring Boot는 이러한 복잡성을 숨기고 개발자에게 단순한 인터페이스를 제공하지만 내부 동작을 이해 하면 더 효과적으로 Spring Boot를 활용할 수 있다. 이번 포스팅에서는 SpringApplication 객체가 생성될 때 내부적으로 어떤 동작들이 이루어지는지 정리해 보고자 한다.

Spring Boot + MongoDB 대용량 트래픽 처리: Bulk Insert 성능 최적화 (ft. bson4jackson)

bson4jackson bulk insert 성능개선 banner

Spring Data MongoDB 변환 방식에 따라서 대량의 bulk insert를 수행할 때 성능상의 병목이 발생할 수 있다. 우리는 이런 문제를 bson4jackson과 RawBsonDocument를 이용하여 대량의 bulk insert를 처리할 때 성능의 극대화를 이룰 수 있다.

Spring 7.X (Spring Boot 4.X) gRPC 1.0.0 정식 릴리즈 그리고 gRPC 사용법

spring grpc 1.0.0 GA banner

Spring gRPC 1.0.0 버전이 정식 릴리즈 됐다. 이를 통해 이제 Spring 공식 지원을 통해 안정적인 고성능 RPC(Remote Procedure Call) 환경을 쉽게 구축할 수 있다. 이번 포스팅에서는 gRCP 1.0.0 정식 릴리즈가 되면서 기존의 gRPC 0.X 버전을 사용하던 기존 프로젝트에서 gRPC 1.0.0 버전을 적용하기 위해서 고려해야 할 사항과 적용 방법, 그리고 gRPC 사용법에 대해서 간단히 정리해 보고자 한다.

Spring Boot GraalVM Native Image 빌드 하기

spring boot graalvm banner

기존 JVM 배포 방식 보다 훨씬 빠른 구동 속도와 적은 메모리 사용량을 자랑하는 GraalVM Native Image는 클라우드 네이티브 환경에서 선택이 아닌 필수가 되어 가고 있다. Spring AOT의 사전 처리 과정과 Buildpacks와 Native Build Tools 두 가지 방식을 통해 spring boot graalvm native image를 빌드하는 방법을 정리하였다.