springboot(5)
-
spring boot 와 Opentelemetry
Spring Boot 4.0.1 OpenTelemetry Integration Guide개요 (Overview)이 글은 Spring Boot 4.0.1 환경에서 OpenTelemetry (OTel) 를 활용하여 Observability(가시성)를 확보하기 위한 아키텍처 및 구현 가이드를 다루려고 합니다.Spring Boot 4.0부터는 spring-boot-starter-opentelemetry가 공식 도입되어, 기존 Spring Boot 3.x에서 여러 의존성(micrometer-tracing-bridge-otel, opentelemetry-exporter-otlp 등)을 조합하던 방식이 단일 Starter 의존성으로 대폭 간소화되었습니다. 특히 4.0.1 버전에서는 OTLP 로그 내보내기(Log Ex..
2026.01.12 -
[Java/Spring] 인터페이스/추상클래스 JSON 변환이 안될 때? Jackson 다형성(Polymorphism) 완벽 해결법
API 개발을 하다 보면 추상 클래스나 인터페이스를 상속받은 여러 하위 클래스를 하나의 리스트로 주고받아야 할 때가 있습니다. 하지만 이를 아무 설정 없이 JSON으로 변환하고 다시 객체로 받으려 하면, Jackson 라이브러리는 하위 클래스 중 어떤 것으로 변환해야 할지 몰라 에러를 발생시킵니다. 오늘은 실무에서 반드시 마주하게 되는 Jackson의 다형성 처리 방법을 정리해 보겠습니다. 왜 에러가 발생할까? 자바에서는 상속 관계가 명확하지만, JSON은 단순한 텍스트 구조입니다. 예를 들어, 알림(Notification)이라는 추상 클래스를 이메일과 SMS 알림이 상속받고 있다고 가정해 봅시다. 이를 리스트로 만들어 JSON으로 변환하면 다음과 같이 보입니다. \[ ..
2026.01.04 -
MSA가 정답은 아니잖아요? Spring Modulith로 우아한 모놀리스 만들기
안녕하세요!크리스마스가 이틀 앞으로 다가왔네요. 2025년 한 해를 정리하며 개발 트렌드도 한번 되짚어보는 시간을 가져볼까 해요.혹시 여러분의 팀은 "우리는 MSA(Microservices Architecture)를 한다"고 하지만, 실제로는 거대한 '분산된 모놀리스(Distributed Monolith)' 때문에 고통받고 있지 않으신가요? 서비스는 쪼개놨는데 배포는 같이 해야 하고, 트랜잭션 관리는 복잡해지고...오늘은 그런 고민을 가진 분들에게 아주 매력적인 대안, Spring Modulith에 대해 이야기해보려 합니다.(저도 요즘 살짝 해보고 있습니다.)🧩 Spring Modulith가 뭔가요?간단히 말해, Spring Modulith는 '모놀리스(Monolith)를 모듈(Module) 단위로 잘..
2025.12.23 -
@DataJpaTest 할 때의 주의 사항
저는 테스트할때 보통 test/resources 에 application-test.yml 을 따로 설정해두고 테스트를 진행합니다. 그런데 아래와 같은 상황이 생겨서 한참 고민했는데 역시나 사람이 문제였습니다. @DataJpaTest 인데 Unable to start ServletWebServerApplicationContext....가 뜬다! 분명히 JPA 테스트를 위해 @DataJpaTest 를 수행하는데 자꾸 servlet 관련 에러가 발생했고.... 왜 그러지? 뭔가 잘못됐나? 라고 하면서 test 리소스를 계속 찾았지만 이유를 찾지 못하여 급기야..아래처럼 처리하고 테스트를 진행했습니다. @DataJpaTest(properties = "spring.main.web-application-type=n..
2021.02.02 -
Spring Boot 의 properties
개요 properties 는 기본이면서도 설정에 가장 많이 사용하게 되는 요소입니다. 기본적으로는 .properies, .yml 등을 통해 설정할 수 있는데 관련 방법들도 많고 어떻게 써야 효과적인지도 명확하지 않습니다. 가장 많이 이용하게 되고 실제 유용한 방법들을 정리합니다. 외부화 구성(Externalized Configuration) Spring Boot 는 다른 환경에서 동일한 코드로 작업할 수 있도록 구성을 외부화 할 수 있습니다. 환경 변수, command-line arguments, 별도의 외부 파일 등을 이용할 수 있는데, 이 때 properties 의 효과가 발휘됩니다. YAML 파일, properties 파일들을 통해 지정된 속성 값은 @Value 주석을 사용하여 Bean 에 직접 주..
2020.11.16