Spring

스프링 부트 3 및 스프링 배치 5의 새로운 기능과 변경사항을 알아보자 1. 공식에 따른 SpringBoot 3에서 스프링 배치의 변경된 점 스프링 부트 3과 함께 출시된 스프링 배치 5는 많은 중요한 인프라 변경사항을 포함하고 있다. 이러한 변경사항은 스프링 배치를 사용하는 개발자들에게 더 나은 데이터 관리, 효율적인 트랜잭션 처리, 그리고 유연한 배치 작업 구성을 가능하게 한다. 1-1. 데이터 소스 및 트랜잭션 매니저 업데이트 이전 스프링 배치 버전에서는 인메모리 작업 저장소가 사용되었다. 인메모리 작업 저장소는 데이터를 임시 메모리에 저장하는 방식으로, 애플리케이션을 재시작하면 데이터가 사라지는 단점이 있었다. 스프링 배치 5에서는 이 인메모리 작업 저장소 구현을 제거하고, 대신 JDBC(Java..
분산 시스템에서의 SNS/SQS 메시지 처리: 단일 책임 원칙과 Zipkin의 Trace ID 에러 핸들링을 중심으로 이번 글에서는 단일 책임 원칙에 따라 메소드를 분리하고, SNS 발행 메소드와 SQS 메소드에서 메시지 에러 핸들링 내용을 다뤄보자. 프로젝트를 진행하면서 이제 모든 정상 프로세스가 완료되었고, 배치 작업을 시작하려고 했을때 갑자기 팀원이 근데, 만약에 메세지에 traceId가 없을 때 SQS Listener에서 에러 핸들링은 어떻게 하지? 라는 질문을 했다. 그래서 SNS 메세지에 traceId가 없을 때 발생할 수 있는 에러를 핸들링하는 과정을 소개하겠다. 1. 기존 프로세스 간략 설명 기존에 어떤 프로세스로 진행되었는지 전부 설명하기에는 너무 오래 걸릴것같아서, 아래 글을 통해 확인..
Zipkin에서 URL 추적 설정: Sampler와 Sleuth를 활용한 스프링 부트 적용 이전 글에서 ALB에서 상태 검사를 요청하는 간격을 5분으로 늘리고, 상태 검사용 컨트롤러를 생성해 상태 검사에 더 적합하게 코드를 수정했었다. 그런데 결국 Zipkin UI에 5분마다 테스트 요청이 누적되는 건 마찬가지라 이 헬스 체크 요청까지 Zipkin에 추적하는 게 필요할까?라는 생각이 들었다. (이전 내용이 궁금하다면 아래 링크에서 확인할 수 있다.) [AWS] AWS ALB 헬스 체크(상태 검사) 간격 및 경로 수정을 통한 서비스 최적화 [AWS] AWS ALB 헬스 체크(상태 검사) 간격 및 경로 수정을 통한 서비스 최적화 AWS ALB 헬스 체크(상태 검사) 간격 및 경로 수정을 통한 서비스 최적화 ..
AWS 분산 시스템에서 Zipkin으로 로그 추적하기: SNS/SQS 통합 실전 적용 이번 글에서는 서버 간 연동 과정을 한눈에 파악할 수 있는 방법에 대해 탐구해보려 한다. AWS에서는 SNS, SQS, 그리고 각각의 Spring Boot 서비스들을 CloudWatch를 통해 볼 수 있다. 그러나 이러한 서비스들이 서로 어떻게 연동되고 있는지, SNS 메시지가 올바르게 전송되고 SQS에 의해 제대로 처리되는지, 또한 Feign 요청이 성공적으로 수행되는지 등의 상세한 통신 과정을 한눈에 파악하는 것은 쉽지 않다. 이러한 문제의 해결책으로 Zipkin의 도입을 결정했다. Zipkin은 분산 시스템에서 서버 간의 상호작용을 시각화하여 표시한다. 이를 통해, SNS 메시지의 발송부터 SQS에 의한 처리, 그..
스프링 부트에서 Feign 클라이언트 사용하기: 파라미터 처리 방식 이해하기 이전 글에서 Feign 클라이언트를 사용하면서 컨트롤러에서 파라미터가 계속 null로 전달되어 어려움을 겪었다. 이부분에 대해서 정리를 좀 해야겠다. 스프링 부트에서 Feign 클라이언트를 사용할 때, 다양한 유형의 파라미터들을 전달하는 방법에 대해 알아보자. 주로 다룰 파라미터 유형에는 @RequestParam과 @RequestBody 등이 있다. 어노테이션은 Feign 클라이언트에서 HTTP 요청을 구성하는 데 중요한 역할을 한다. 1. Feign 클라이언트에서 @RequestParam 어노테이션 생략 시 발생 가능한 문제 1-1. 매핑 문제 설명 @RequestParam 없이 Long memberId와 같이 파라미터를 전달..
MSA 환경에서 SNS/SQS 활용하기: 서버간 DB 동기화와 제로 페이로드 방식의 효과적 구현 이번 글은 회원 서버에서 SNS를 발행하면 이를 구독하는 외부 서버의 SQS가 어떻게 동작하는지에 대해 작성해 보겠다. 이번 내용은 이전 포스팅과 이어지는 내용이기 때문에 꼭 아래 글을 읽고 와주길 바란다. [Spring Boot]MSA 환경에서 SNS/SQS를 활용한 이벤트 처리: 이벤트 유실 문제 해결 방안 [Spring Boot]MSA 환경에서 SNS/SQS를 활용한 이벤트 처리: 이벤트 유실 문제 해결 방안 MSA 환경에서 SNS/SQS를 활용한 이벤트 처리: 이벤트 유실 문제 해결 방안 지난 시간에서 설명한 스프링 이벤트를 이제 실제로 프로젝트에 녹이는 과정을 설명하겠다. 이 글에서 다룰 내용은 ..
MSA 환경에서 SNS/SQS를 활용한 이벤트 처리: 이벤트 유실 문제 해결 방안 지난 시간에서 설명한 스프링 이벤트를 이제 실제로 프로젝트에 녹이는 과정을 설명하겠다. 이 글에서 다룰 내용은 해당 YouTube 영상에서 영감을 얻었다. (배달의 민족 - 권용근 연사님 발표 영상) 해당 영상은 MSA 아키텍처에서 하나의 시스템 안에 내부 프로세스가 어떻게 돌아가는지 설명해 준다. 나도 MSA 아키텍처는 처음 진행해 보기 때문에 이 영상에서 정말 많은 도움을 얻었고, 이를 바탕으로 내 프로젝트에 적용해 보기로 했다. (유튜브 링크: https://youtu.be/b65zIH7sDug?si=f5zNCpJbUEZcDPpr) 2022 우아콘 - 권용근 연사님 발표 영상 1. 영상 내용 요약 위 영상은 "회원시스..
Spring Framework 4.2 이후 버전에서 스프링 이벤트 적용하기 Spring Boot 3 버전에서 내부 로직 처리를 위해 Spring event를 사용해야 했다. 찾아보니 Spring Boot 3 버전에서 적용할 Spring event가 이전 버전과 꽤 다르다는 점을 알게 되어서 정리해 봐야겠다. 스프링 프레임워크에서 스프링 이벤트 처리 방식이 업데이트되면서 주요 변경 사항이 몇 가지 있다. 이러한 변경 사항은 개발자가 이벤트를 더 유연하고 효율적으로 다룰 수 있게 해 준다. 아래에서 이러한 차이점과 적용 방법을 자세히 설명하겠다. 4.2 버전 이전, 스프링 이벤트 스프링 프레임워크 4.2 버전에서의 스프링 이벤트 처리는 상당히 기본적이었다. 이때, 개발자들은 ApplicationEvent 클..
평양냉면7
'Spring' 카테고리의 글 목록 (6 Page)