본문 바로가기
반응형

분류 전체보기52

Spring Cloud Contract를 이용한 Test 코드 작성 1. CDC(Consumer-Driven Contract) CDC(Consumer-Driven Contract) 정의 소비자(Consumer)의 요구사항 중심으로 제공자(Producer) 서비스를 진화시키기 위한 협업 패턴입니다 Producer: API를 제공해주는 제공자 Consumer: Producer가 제공한 API를 사용하는 소비자 스펙 정의, 문서화, 테스트, 스펙과 일치하는 테스트코드 유지, 모니터링/제어, Gateway 드과 같이 여러 제약 사항이 존재하지만 유연한 커뮤니케이션이 부족하기 마련 입니다 그러므로 CDC를 유연하게 하기 위해서 Spring Cloud Contract 라는 오픈 소스가 개발 되었습니다 과거 CDC Test 방법 E2E 테스트를 진행과 정에서는 주로 WiredMock.. 2022. 9. 17.
SpEL(Spring Expression Language) SpEL 1. 개념 정의 Spring Expression Language(SpEL)로 불립니다 run time에 객체 그래프의 쿼리하고를 지원하고, 객체를 조작할 수 있는 강력한 표현식 언어 입니다 cf) 파라미터 참조 와 같이 그래프화 한것들 jpa에 Entity graph와 비슷하다고 생각하면 됩니다 문자열 template과 같은 곳에 주로 많이 사용됩니다 Spring 내부에 프로젝트로도 존재하지만, 필요하다면 parser와 같은 여러 클래스를 생성하거나 infra 설정을 통해서 SpEL을 독립적인 표현 언어 처럼 사용할 수 있습니다 제공 기능들 리터럴 표현식 (Literal Expression) Boolean과 관계형 Operator (Boolean and Relational Operator) 정규.. 2022. 9. 7.
Spring Batch Chunk와 Transaction 설정 필자는 chunk 방식에서 transaction이 언제 설정이 되고 사용되는지 확인하고 싶어서 학습을 시작하게 되었습니다 조사하다 보니 chunk 관련 글로 변경이 되었습니다 일부 코드를 생략을 했지만 필요한 코드는 주석으로 추가 설명을 작성하였습니다. Spring Batch Chunk TaskletStep 정의 transactional 관리하는 객체와 실제 개발자가 작성한 item reader, processor, writer를 호출 하는 ChunkOrientedTasklet를 관리하는 객체 AbstractStep을 상속받은 구현체(전체 flow가 들어있는 Template Callback 패턴 abstract class) Flow public class TaskletStep extends Abstrac.. 2022. 8. 9.
Resilience4J 필자는 Resilience 4J에 대한 공부를 진행중 궁금하거나 내부적으로 어떻게 돌아가는지 확인해보고자 학습을 시작했습니다 잘못된 부분이 있을 경우 언제나 댓글을 남겨주시고 수정 요청 주세요! 정의 Netflix에서 개발하고 제공해줬던 Hystrix에서 염감을 받아서 Java8의 함수형 문법을 기반으로 제작한 fault tolerance 라이브러리 입니다 Hystrix 와 Resilience4J 외부 라이브러리 참조 차이 Hystrix는 외부 라이브러인 Guava 와 Apache Commons Configuration을 종속하고 있는 Archaius를 의존하고 있습니다 하지만 Resilience4J는 외부 라이브러리 종속 없는 Vavr라는 것을 사용고 있습니다 cf) vavr: java를 위한 func.. 2022. 7. 30.
반응형