Yun Blog

기술 블로그

Spring Cloud Config 살펴보기

스프링 5.0 마스터를보고 정리한 자료 입니다. 전체 코드는 Github에서 확인할 수 있습니다. 스프링 클라우드 컨피그는 중앙 집중식 마이크로서비스 구성을 지원한다. 여기서 두 가지 중요한 구성 요소의 조합이다. 스프링 클라우드 컨피그 서버 : 버전 관리 리포지토리로 백업된 중앙 집중식 구성 노출을 지원한다. 스프링 클라우드 컨피그 클라이언트 ......

Rabbit MQ 기초 사용법

코드는 Github에 공개되어 있습니다. Rabbmit MQ란 ? 래빗MQ는 오픈소스 AMQP 브로커다. AMQP는 유선을 통해 전송되는 메시지 형식을 포함하는 개발형 프로토컬이며, JMS와 같은 다른 메시징 솔루션에 비해 인기가 높다. JMS는 API, AMQP는 프로토콜이다. JMS는 메시지의 형식이 아닌 브로커와 통신하는 방법을 정의한다. ......

Checked Exception을 대하는 자세

코드는 Github에 공개되어 있습니다. Checked Exception을 처리하는 전략과 그것에 유의해야 할 점들에 대해서 포스팅을 진행해보겠습니다. 자바에서는 대표적으로 Checked Exception 과 Unchecked Exception이 있습니다. 먼저 이 둘의 차이를 살펴보겠습니다. Checked,Unchecked Exception 차이......

트랜잭션 잠금

선점 잠금, 비선점 잠금

해당 자료는 DDD Start를 보고 정리한 자료입니다. 정말 추천드리는 책입니다. 트랜잭션 잠금 한 주문 애그리거트에 대해 운영자는 배송 준비 상태로 변경할 때 사용자는 배송지 주소를 변경하면 어떻게 될까? 아래 그림은 운영자와 고객이 동시에 한 주문 애그리거트를 수정하는 과정을 보여준다. (배송 상태로 변경되면 더 이상 배송지 변경은 할 수 없......

Builder 기반으로 객체를 안전하게 생성하는 방법

해당 코드는 Github에 공개되어 있습니다. 실무에서 Lombok 사용법에서 기본적인 Lombk 사용법과 Builder 사용법을 간단하게 정리 한 내용을 먼저 참고하면 좋습니다. JPA를 이용하면 엔티티 객체들을 Builder 기반으로 생성하는 것이 흔한 패턴입니다. 이러한 경우 Builder의 문제점들과 이것을 더욱 안전하게 사용하는 방법에 대해서......

Spring Guide - Service 가이드

서비스의 책임의 크기

도메인 레이어는 모든 레이어에서 사용됩니다. 이 때문에 자기 자신의 책임을 충분히 다하지 않으면 많은 영역에서 그 책임을 넘겨받게 됩니다. 이번에는 이 내용을 중심으로 포스팅을 진행하겠습니다. 서비스 레이어란 ? 이미지 출저 애플리케이션 아키텍처와 객체지향 우리는 Member라는 객체로 회원가입(객체 생성), ......

Spring Custom Validate 어노테이션 만들기

해당 코드는 Github를 확인해주세요. 스프링은 컨트롤러에서 클라이언트에서 넘겨받은 값에 대한 검증을 JSR-303 기반으로 쉽고 강력하게 할 수 있습니다. 또 한 커스텀 한 어노테이션을 확장도 쉽게 구현할 수 있습니다. 아래에서 작성하는 어노테이션은 해당 이메일이 유니크한지 검증을 하고 유니크하지 않은 이메일일 경우 Bad Request를 응답......

Spring Guide - 외부 API 가이드

Exception 전략

해당 코드는 Github를 확인해주세요. 이번 주제는 외부 API 호출 가이드를 진행하겠습니다. 본 포스팅에서는 RestTemplate 기반으로 설명하고 있지만 RestTemplate에 대한 사용법이 초점은 아닙니다. Request, Response에 대한 로킹, Interceptors를 통한 추가 작업, errorHandler을 통한 각 Vend......

Spring Guide - Domain

Domain 작성 가이드

해당 코드는 Github를 확인해주세요. 도메인 객체는 우리가 해결하고자 하는 핵심 비즈니스 로직이 반영되는 곳입니다. 특히 도메인 객체에서 자기 자신의 책임을 충분히 다하지 않으면 그 로직들은 자연스럽게 Service 영역 및 외부 영역에서 해당 책임 넘겨받아 구현하게 됩니다. 본인의 책임을 다하는 도메인 객체를 만들고 다른 레이어와 어떻게 메시......

인텔리제이 특정 Import 제외 하기

IntelliJ Tip

(IntelliJ 사용법 Tip 전체 보기[https://github.com/cheese10yun/IntelliJ] 특정 Import 제외하기 인텔리 제이에서는 자동 Import설정을 지원해주고 있습니다. Import 대상이 여러 개 일 경우에는 개발자가 직접 선택하아합니다. 위 그림처럼 있을 경우 javax.transaction를 Import할......