Yun Blog

기술 블로그

Kotlin 기반 경량 ORM Exposed 추가 정리 part 1

Exposed 포스팅 Kotlin 기반 경량 ORM Exposed Kotlin 기반 경량 ORM Exposed 추가 정리 part 2 Kotlin 기반 경량 ORM Exposed 추가 정리 part 3 실제 자주 사용하는 기능들 위주로 다루어 보겠습니다. Table Object 123456789101112131415object Writers : L......

Sleuth 분산 환경 트래킹 With Fuel

Spring Cloud Sleuth는 분산 환경에서 일련의 Request에 대한 상관관계를 표시하여 서비스 간 호출에 대한 추적을 지원해 주는 모듈입니다. Sleuth는 RestTemplate, Feign, WebClient와 같은 스프링 진형의 HTTP Client 모듈을 사용하는 경우 Sleuth 의존성을 추가하는 것으로도 설정이 자동적으로 동작하......
MSA

Spring Batch HTTP Page Item Reader

Spring Batch로 애플리케이션을 작성하는 경우 내부 데이터가 아니라 외부의 데이터를 가져와서 가공해야 하는 경우 데이터 파이프라인은 어떻게 구축해야 할지 결정해야 합니다. 예를 들어 데이터베이스에 직접 연결해서 필요한 데이터를 쿼리 하여 가져올 것인지, 아니면 csv 등 파일을 주고받는 방식, HTTP API를 통해서 가져오는 방식 등등 여러 ......

Elasticsearch APM 분산 트랜잭션 추적

분산 환경에서는 한 요청이 여러 서비스들의 호출로 이루어집니다. 이런 경우 여러 서비스 사이의 트랜잭션, 로그의 모니터링과 요청에 대한 순차적인 연결이 중요합니다. 분산 트랜잭션 추적 유저의 본인 정보와 본인이 주문한 목록을 조회하는 플로우 입니다. API Gateway -> User Service(유저 정보 조회) -> Order Ser......

HTTP Client 책임 분리하기

해당 코드는 Github 공개되어 있습니다. 일반적으로 특정 요구사항을 만족하기 위해서는 다른 서비스들과의 통신을 통하여 진행합니다. 가장 대표적인 통신은 HTTP으로 쉽고 간결하게 연결이 가능하여 많이 사용합니다. HTTP Client를 개발할 때 적절한 책임과 역할을 부여하는 방법에 대해서 이번 포스팅에서 다루려고 합니다. 보편적으로 이렇게 책......

MSA 환경에서 Error Response 서버로 전달하기

해당 코드는 Github 공개되어 있습니다. Spring Guide - Exception 전략 이전에 API Server에 Exception handling에 대해서 정리한 적 있습니다. 이번 포스팅에서는 여러 서버를 호출해서 예외가 발생하는 경우 Exception handling에 대한 포팅입니다. A API -> B API -> C ......

인텔리제이 플러그인 String Manipulation

String Manipulation Plugin에 사용법에 대한 포스팅입니다. Increment 기능 특정 값에 대해서 자동으로 증가시켜 중복되지 않는 값으로 설정할 수 있습니다. 위 이미지와 같은 FK 참조하는 값에 대한 SQL을 작성하는 경우 매우 효율 적입니다. 이전에 Sql을 통해서 테스트 코드를 쉽게 작성하자 포스팅도 참고하시면 좋을 거 ......

Resilience4j를 이용한 서킷 브레이커 기초

Resilience4j 이론적인 설명은 스프링으로 하는 마이크로 서비스 구축을 참조했습니다. 마이크로 서비스 사이의 통신이 이루어지는 대규모 시스템 환경에서 느리거나 응답하지 않은 다운스트림 서비스가 발생했을 때 그 피해를 최소화시키는 것이 서킷 브레이커의 가장 큰 핵심이라고 할 수 있습니다. 대표적으로 마이크로 서비스의 응답이 늦거나 전혀 응답하......

Sql을 통해서 테스트 코드를 쉽게 작성하자

데이터베이스와 의존성이 있는 테스트를 진행하는 경우 given 절에 해당하는 데이터를 set up 한 이후에 로직에 대한 검증을 진행하는 것이 일반적입니다. 이때 given 절에 대한 데이터 set up을 *.sql 파일 기반으로 작성하는 것입니다. @Sql 사용법 123456789101112131415// /src/test/resources/paym......

Spring Cloud Config & Cloud Bus 정리

카프카를 이용한 Config 변경사항 전파

해당 코드는 Github에서 확인할 수 있으며 Spring Config Server 정리 글과 이어지는 글입니다. Spring Config Server 정리를 통해서 Config Server에 대해서 알아봤습니다. 이번 포스팅에서는 Config Client를 알아보겠습니다. 각 서비스 애플리케이션은 해당 애플리케이션이 구동시 Config Serve......