spring boot18 Spring Boot JSON 처리를 위한 자동 구성 및 설정 Spring Boot에서 JSON 데이터 처리는 RESTful API를 구축하거나 데이터 전송을 수행할 때 필수적인 요소라고 할 수 있다.Spring Boot는 기본적으로 Jackson 라이브러리를 사용하여 JSON 직렬화 및 역직렬화를 자동으로 처리한다. 따라서 개발자는 복잡한 설정 없이도 객체를 JSON으로 변환하고, JSON 데이터를 객체로 손쉽게 맵핑할 수 있다.이번 포스팅에서는 Spring Boot의 JSON Auto Configuration 방식과 주요 설정 방법에 대해서 정리하고자 한다. DependencyJSON 처리를 위한 디펜던시는 다음과 같다.'org.springframework.boot:spring-boot-starter-json'위 디펜던시를 통해서 jackson-databind,.. 스프링부트 2025. 1. 4. Spring에서 특정 HTTP 응답 상태 반환하기 클라이언트가 서버에 특정 HTTP 요청을 보내면 서버는 HTTP 응답 상태를 반환한다. 클라이언트는 응답 코드를 통해서 서버가 요청 처리를 실패했는지, 거부했는지, 성공했는지 알 수 있다. Spring 기반 애플리케이션에서 기본 프레임워크는 서버가 반환하는 모든 응답에 적절한 HTTP 응답 상태 코드를 자동으로 추가한다. 또한 Spring은 컨트롤러의 HTTP 응답 상태를 사용자 정의하는 방법도 제공한다. HTTP Response Status Code 1xx : 1로 시작하는 모든 상태 코드는 정보 코드이다. 2xx : 요청이 성공적으로 완료되었음을 나타낸다. 3xx : 리다이렉션을 나타낸다. 요청을 처리하기 위해 추가 조치가 필요하다. 4xx : 요청이 유효하지 않거나 완료할 수 없어 요청에 실패했다... 스프링부트 2023. 10. 28. spring boot 3.1 docker compose support spring boot 3.1부터 docker compose를 지원한다. docker compose를 수행하기 위한 yaml 정의 파일이 있다면 spring boot에서 docker compose를 자동으로 실행하여 container를 실행시키고 ConnectionDetails 추상화를 통해서 자동으로 연결을 설정한다. 이를 통해서 로컬 환경에서 애플리케이션 구동을 위해서 수동으로 docker container를 실행시키고 애플리케이션 설정에서 외부 서비스 연결에 대한 설정을 따로 지정하지 않아도 된다. 이번 포스팅에서는 spring boot docker compose에 대해서 기록한다. ConnectionDetails 추상화에 대한 설명은 Spring Boot 3.1's ConnectionDetails .. 스프링부트 2023. 10. 22. spring boot container 기반 테스트 spring boot application 테스트를 위해서 혹은 로컬에 개발 테스트 환경을 구축하기 위해서 3rd party 서비스를 로컬 환경에 설치하거나 embedded 서비스를 사용하여 테스트를 하는 경우가 많다. 이러한 작업은 꽤 번거로운 일이 될 수 있는데 TestContainers를 이용하여 손쉽게 container 기반의 테스트를 수행할 수 있다. 이번 포스팅에서는 샘플 코드를 기반으로 spring boot에서 TestContainers를 이용하는 방법에 대해서 기록한다. spring boot 3.1.4 버전에서 샘플코드를 작성하였다. spring boot 3.1 버전 부터 ConnectionDetails 추상화 기능이 추가되어 TestContainers에 대한 몇 가지 개선사항이 있는데 해.. 스프링부트 2023. 10. 19. spring boot 로그백 (logback) 설정 방법 logback은 log4j 프로젝트의 후속 버전으로 log4j 1.x가 중단된 이후 버전을 이어받아 발전시켜 왔다. spring boot는 기본적으로 logback 로깅 시스템을 채택하여 제공한다. logback-spring.xml 작성을 통해서 logback에 대한 확장 설정을 통해서 로그를 커스텀하게 기록할 수 있다. 이번 포스팅에서는 logback에 대한 몇 가지 중요한 내용에 대한 설명과 이를 활용하여 logback 확장설정(logback-spring.xml) 하는 방법에 대해서 기록한다. sprng boot dependency org.springframework.boot:spring-boot-starter-logging 종속성에 logback에 대한 종속성이 포함되어 있다. org.springf.. 스프링부트 2023. 10. 14. STOMP와 ACTIVEMQ를 이용한 메시지 broadcasting STOMP(Simple Text Oriented Messaging Protocol)은 중개 서버를 통해 클라이언트 간에 비동기 메시지를 전달하기 위해서 설계된 간단한 상호 운용 프로토콜이다. 이 프로토콜은 클라이언트와 서버 간에 전달되는 메시지에 대한 텍스트 기반 형식을 정의한다. STOMP는 활발히 사용되어 왔으며 많은 메시지 브로커와 클라이언트 라이브러리에서 지원되고 있다. STOMP는 TCP 및 웹소켓과 같은 신뢰할 수 있는 양방향 스트리밍 네트워크 프로토콜을 통해서 사용할 수 있다. ActiveMQ는 대표적인 메시지 브로커이고 STOMP를 지원한다. 이번 포스팅에서는 spring boot에서 STOMP와 ActiveMQ를 이용하여 메시지 broadcasting 하는 방법에 대해서 기록한다. Act.. 스프링부트 2023. 10. 11. spring boot scheduler basic Spring은 주기적인 작업을 자동으로 수행할 수 있도록 하는 scheduler를 제공하여 이를 간소화할 수 있다.Spring framework는 메서드 scheduling에 대한 지원을 제공한다. @Scheduled annotation을 사용하여 메서드를 예약된 메서드로 손쉽게 변환할 수 있다.@Scheduled annotation은 메서드 수준 annotation이며 Spring Bean 클래스의 메서드에 추가해야 한다.@Scheduled annotation 매개 변수를 제공하여 고정된 주기로 실행할지 또는 특정 시간 및 날짜에 실행할지 지정할 수 있다.이번 포스팅에서는 spring boot의 scheduler를 사용하는 방법과 properties에 대해서 기록한다. spring boot schedu.. 스프링부트 2023. 10. 9. spring boot kafka 연동하기 Spring에서 kafka 연동은 Apache kafka의 spring-kafka 프로젝트의 auto configuration 제공을 통해서 지원된다. kafka 설정은 spring.kafka.*의 외부 구성 속성에 의해서 설정할 수 있다. 이번 포스팅에서는 kafka messeage 송수신을 위한 auto configuration에 대해서 기록한다. dependencyspring boot에서 kafka를 사용하기 위해서 필요한 dependency는 아래와 같다. org.springframework.boot spring-boot-starter-parent 3.1.4 ... org.springframework.boot spring-boot-starter .. 스프링부트 2023. 10. 8. spring boot JMS activemq connection factory Spring Boot 에서 제공하는 JMS activemq의 autoconfiguration에 의해서 사용되는 ConnectionFactory의 유형과 설정에 대해서 기록한다. JmsPoolConnectionFactory connection pool을 지원하는 connection factory 이다. JmsPoolConnectionFactory를 사용하기 위해서는 아래 조건이 충족되어야 한다. org.messaginghub:pooled-jms 디펜던시 추가가 필요하다. 해당 아티팩트에 JmsPoolConnectionFactory 구현체가 있다. spring.activemq.pool.enabled: true 가 설정되어야 한다. CachingConnectionFactory SingleConnectionFa.. 스프링부트 2023. 9. 28. Spring Boot AutoConfiguration 간단 모듈 만들어보기 Spring Boot AutoConfiguration은 여러 디펜던시 들의 Configuration을 자동으로 수행하여 복잡한 Configuration 구성 없이 필요한 빈을 자동으로 주입 받을 수 있도록 도와주는 기능이다. 이번 포스팅에서는 Spring Boot AutoConfiguration이 동작하는 간단한 예제 코드를 작성해 보겠다. AutoConfiguration class AutoConfiguration을 구현하는 클래스는 @AutoConfiguration 어노테이션이 지정 된다. 또한 여러 @Conditional 어노테이션을 통해서 AutoConfiguration이 적용되어야 하는 필터를 설정할 수 있다. 일반적으로 AutoConfiguration 클래스는 @ConditionalOnClass.. 스프링부트 2023. 9. 24. spring boot actuator health endpoints delay check spring boot actuator의 health check는 해당 서비스의 라이브 상태만을 체크 하는 것이 아니라 해당 서비스가 사용하고 있는 각종 endpoint들의 라이브 상태도 체크를 한다. 여기서 endpoint라는 것은 해당 서비스가 사용하고 있는 DB, Kafka, Redis, JMS와 같은 외부 인프라 서비스를 의미한다. 간혹 health check 수행 시간에 지연이 발생 하는 경우 어떤 endpoint에서 지연이 발생 하는지 확인이 필요한 경우가 있다. 이번 포스팅에서는 health check 대상 endpoint의 health check 수행 시간을 로그에 기록하도록 설정하는 방법에 대해서 기록한다. HealthContributer (HealthIndicator) spring boo.. 스프링부트 2023. 9. 22. spring boot websocket (웹소켓) websocket 프로토콜인 RFC 6455는 단일 TCP 연결을 통해 클라이언트와 서버 간에 양방향 통신 채널을 구축하는 표준화된 방법을 제공한다. websocket 프로토콜은 HTTP와는 다른 TCP 프로토콜이지만 포트 80과 443을 사용하고 기존 방화벽 규칙을 재사용할 수 있도록 설계되어 HTTP에서 작동하도록 설계 되었다. 가장 대표적인 사용은 웹채팅으로써 HTTP 상에서 상호 데이터를 주고 받는데 사용된다. 이번 포스팅 에서는 spring framework 공식 문서의 websocket 관련 내용을 정리하고 spring boot에서 websocket을 사용하기 위한 구성 및 방법을 기록한다. Upgrade Header websocket 상호작용은 HTTP 요청에 업그레이드 헤더를 사용하여 We.. 스프링부트 2023. 9. 20. 이전 1 2 다음 💲 추천 글