전체 글23 RestClient 외부 API 처리 Spring Boot Application에서 외부 API 호출은 거의 모든 서비스에서 필수적으로 등장하는 요소다. 결제, 인증, 알림, 데이터 수집 등 다양한 비즈니스 요구 사항은 외부 시스템과의 통신을 전제로 한다. Spring Framework 6부터 제공되는 RestClient는 이러한 외부 HTTP 통신을 보다 단순하고 일관된 방식으로 처리할 수 있도록 설계된 동기식 HTTP 클라이언트다.RestClient 개요RestClient는 Spring Boot 3 이상 환경에서 별도의 의존성 추가 없이 바로 사용할 수 있는 동기식 HTTP 클라이언트다. 기존 RestTemplate의 단점을 보완하면서도 학습 비용을 최소화하는 방향으로 설계되었다. 요청 흐름이 메서드 체이닝 형태로 구성되어 있어 코드를 .. 2026. 2. 9. Spring-Event 이벤트 구조 설계 클라이언트의 요구 사항을 비즈니스 로직으로 풀어내다 보면 하나의 요청이 여러 작업으로 연쇄적으로 이어지는 경우가 많다. 대표적인 예가 삭제 시나리오다. 폴더 삭제 요청이 들어오면 하위 파일 삭제, 연관 데이터 정리, 통계 반영 등 여러 로직이 함께 수행된다. 이러한 흐름을 모두 직접 호출로 처리할 경우 서비스 간 의존성이 빠르게 증가하게 된다.Spring-Event 의존성 문제이벤트를 사용하지 않는 구조에서는 상위 서비스가 하위 서비스들을 직접 알고 호출해야 한다. A-Service가 삭제 요청을 받으면 B-Service, C-Service를 직접 호출하여 각각의 삭제 로직을 수행한다. 이때 A-Service는 어떤 서비스들이 존재하는지, 어떤 순서로 호출해야 하는지 모두 알고 있어야 한다.문제는 요구사.. 2026. 2. 8. Spring-Cache 어노테이션 구조 Spring-Cache는 Redis, Caffeine, EHCache 등 다양한 캐시 구현체를 공통된 방식으로 사용할 수 있도록 제공하는 캐시 추상화 계층이다. 애플리케이션 코드는 캐시 구현체에 직접 의존하지 않고, 어노테이션 기반으로 캐싱 로직을 선언적으로 적용할 수 있다. 이로 인해 캐시 교체 비용이 낮아지고, 비즈니스 로직과 캐시 로직의 결합도가 크게 줄어든다.Spring-Cache 어노테이션 개념Spring-Cache에서 가장 핵심이 되는 어노테이션은 @Cacheable, @CachePut, @CacheEvict, @Caching 이다. 이 어노테이션들은 메서드 단위로 캐싱 동작을 정의하며, 메서드 호출 시점에 캐시를 조회하거나 갱신하거나 제거하는 역할을 수행한다. 이때 개발자는 캐시 접근 로직을.. 2026. 2. 8. Cache 전략 완전 정리 Cache는 데이터를 미리 저장해두고 필요할 때 빠르게 접근할 수 있도록 돕는 메커니즘이다. 자주 조회되지만 자주 변경되지 않는 데이터, 한 번 읽은 뒤 여러 번 재사용되는 데이터에 캐시를 적용하면 시스템 전반의 성능을 크게 개선할 수 있다. 데이터베이스 접근, 외부 API 호출은 모두 비용이며, 이 비용을 줄이기 위한 대표적인 수단이 캐시 전략이다.Cache 전략 개념 정리일반적인 서버 구조에서는 애플리케이션 서버가 데이터베이스에 직접 접근하여 읽기와 쓰기 작업을 수행한다. 하지만 같은 데이터를 반복적으로 조회하는 상황에서 매번 데이터베이스를 호출하는 것은 불필요한 리소스 낭비가 된다. 특히 데이터베이스뿐 아니라 외부 API 호출 역시 네트워크 비용과 응답 지연이라는 부담을 가진다. 이러한 문제를 완화.. 2026. 2. 8. Spring Cloud Gateway 필터 실행순서 SpringCloudGateway를 사용하다 보면 필터는 정상적으로 등록했는데 의도한 순서대로 실행되지 않거나, pre 로직과 post 로직의 실행 타이밍이 헷갈리는 경우가 많다. 이는 SpringCloudGateway의 필터 구조가 단순한 체인 구조가 아니라 라우팅 단계와 결합된 실행 흐름을 가지기 때문이다. 이 글에서는 SpringCloudGateway의 요청 흐름을 기준으로 필터가 어떤 순서로 실행되는지 정리한다.SpringCloudGateway 필터 실행흐름SpringCloudGateway의 필터 실행 순서를 이해하려면 요청이 게이트웨이에 들어온 순간부터 다운스트림 서비스로 전달되기까지의 흐름을 먼저 살펴봐야 한다. 클라이언트 요청이 들어오면 가장 먼저 RoutePredicateHandlerMap.. 2026. 2. 7. Spring Cloud Gateway 의 GlobalFilter 와 GatewayFilter 차이 SpringCloudGateway를 사용하다 보면 가장 먼저 헷갈리는 개념 중 하나가 GlobalFilter와 GatewayFilter의 차이다. 둘 다 요청과 응답을 가로채 로직을 수행하는 필터라는 점에서는 같지만, 적용 범위와 실행 목적, 설계 의도가 명확하게 다르다. 이 글에서는 SpringCloudGateway에서 제공하는 두 필터의 차이를 구조 관점에서 정리하고, 어떤 상황에서 어떤 필터를 선택해야 하는지 기준을 잡아본다.SpringCloudGateway GlobalFilter 개념SpringCloudGateway GlobalFilter는 말 그대로 게이트웨이를 통과하는 모든 요청과 응답에 공통적으로 적용되는 필터다. Route 매칭 여부와 상관없이, Gateway를 거치는 순간 GlobalFi.. 2026. 2. 7. 이전 1 2 3 4 다음