Spring(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 -
MSA가 정답은 아니잖아요? Spring Modulith로 우아한 모놀리스 만들기
안녕하세요!크리스마스가 이틀 앞으로 다가왔네요. 2025년 한 해를 정리하며 개발 트렌드도 한번 되짚어보는 시간을 가져볼까 해요.혹시 여러분의 팀은 "우리는 MSA(Microservices Architecture)를 한다"고 하지만, 실제로는 거대한 '분산된 모놀리스(Distributed Monolith)' 때문에 고통받고 있지 않으신가요? 서비스는 쪼개놨는데 배포는 같이 해야 하고, 트랜잭션 관리는 복잡해지고...오늘은 그런 고민을 가진 분들에게 아주 매력적인 대안, Spring Modulith에 대해 이야기해보려 합니다.(저도 요즘 살짝 해보고 있습니다.)🧩 Spring Modulith가 뭔가요?간단히 말해, Spring Modulith는 '모놀리스(Monolith)를 모듈(Module) 단위로 잘..
2025.12.23 -
logback 에서의 rolling 정책 사용시 주의사항
logback 사용시 일반적으로 특정 시간이나 용량에 따라 파일을 이동하고 압축하는 정책을 적용해서 사용한다. 이 경우 몇 가지 case 를 통해 유의해서 사용해야 할 사항에 대한 기록이다. Appender 사용 Appender 는 위임받은 이벤트에 대해 log 가 발생하면 출력스트림(console/file) 에 write 하는 역할을 한다. package ch.qos.logback.core; import ch.qos.logback.core.spi.ContextAware; import ch.qos.logback.core.spi.FilterAttachable; import ch.qos.logback.core.spi.LifeCycle; public interface Appender extends LifeCy..
2021.01.07 -
Spring Cloud OpenFeign, 그리고 SSL
OpenFeign (github.com/OpenFeign/feign) Feign 은 선언적 Web Service Client 인 오픈소스이다. 이를 이용해 우리가 Spring 에서 Service 를 DI 를 통해 호출하여 사용하는 것처럼 웹서비스 Client 를 사용할 수 있게 도와준다. Feign 은 Interface 를 만들고 annotation 을 추가하는것으로 쉽게 사용할 수 있고, encoder, decoder 를 플러그형으로 지원한다. Spring Cloud OpenFeign Spring Cloud는 Spring MVC annotation 및 Spring Web에서 기본적으로 사용되는 동일한 HttpMessageConverters를 사용하기위한 지원을 추가하고 Eureka, Spring Clo..
2020.12.29 -
Spring Boot 분석(구동 원리)
Spring Application 실행 아래의 모든 설명은 spring-boot 2.3.5 기준으로 설명합니다. 얼마전(2020/11월기준) GA 된 2.4 는 변경사항이 있습니다. 아래의 코드를 실행하면 Spring Application 이 수행된다. 나머지 정보들은 전혀 노출되지 않는데 어떻게 그 많은 정보들을 처리하게 되는지에 대한 내용을 정리한 글이다. package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SampleApplication ..
2020.11.14