본문 바로가기
728x90
반응형

msa7

feign client란? 현재 프로젝트에서 MSA 도메인 간 통신으로 Feign Client 를 사용하고 있다. HTTP Client Java Library 의 종류는- HttpURLConnection- Apache Commons HttpClient- Apache HttpComponents- Retrofit- RestTemplate   Synchronous, Blocking 방식- feign client        Synchronous, Blocking 방식- WebClient         Asynchronous, NonBlocking 방식 등등 여러가지가 있는데스프링으로 개발 시에 RestTemplate을 가장 많이 사용한다고 한다. 하지만 Spring 5.0 이후 RestTemplate는 더 이상 사용되지 않는다고 한다... 2022. 12. 6.
MSA 프로젝트 중 MVP를 만들었던 이유(feat. 일정 딜레이) MVP 란?• Minimum Viable Product의 약자로 최소 실행 가능 제품이란 뜻입니다.  MVP는 왜 만들까?• 보통 아이디어가 실제 시장에서도 유효한지 검증하기 위해 최소한의 핵심기능만 구현해서 확인하기 위해 만드는 것이 MVP입니다. 하지만 현재 프로젝트의 경우에는 설계 컨셉에 대해 합의점 도출이 되지 않고, 각 주장하는 설계 방안에 대한 장단점이 추상화된 사항으로 의사결정이 되지 않았기 때문에 진행하게 되었습니다. 장점 : 추상적으로 생각했던 것을 확인하고 최적안을 도출 할 수 있습니다.단점 : 설계기간이 길어지기 때문에 전체적인 프로젝트 기간이 길어지거나 타이트해집니다..   MSA 프로젝트 중 MVP를 만들었던 이유• 설계기간을 진행하면서 Event Storming 을 통해 도메인을.. 2022. 11. 23.
CQRS 구현 - Redis, Kafka 적용 CQRS란?https://orange-makiyato.tistory.com/56  MSA, Database Architecture - Querying : API Composition, CQRS 패턴● API Composition 패턴 • API Composition은 클라이언트에서 하나의 API만을 호출해서 잘게 쪼개진 API들의 응답을 모아서 보내주는 것이다. • 클라이언트에서 API Composer(조합기)로 요청을 하면 API Composorange-makiyato.tistory.com    현재 프로젝트 구조  Read 요청이 오면 마이크로서비스에서 먼저 Redis Cache를 확인하고없으면 DB에서 데이터를 가져온다. Create, Update, Delete 요청이 오면 Pub/Sub(게시/구독.. 2022. 11. 23.
MSA, Database Architecture - Querying : API Composition, CQRS 패턴 ● API Composition 패턴 • API Composition은 클라이언트에서 하나의 API만을 호출해서 잘게 쪼개진 API들의 응답을 모아서 보내주는 것이다.• 클라이언트에서 API Composer(조합기)로 요청을 하면 API Composer에서 각각의 마이크로 서비스에 필요한 요청을 보내고, 응답값을 메모리에서 조인해 클라이언트에 반환한다.• 장점 : 클라이언트 입장에서 간단하게 필요한 데이터를 쿼리 할 수 있다• 단점 : 인메모리 조인이기 때문에 대용량 데이터 조회 시 비효율적일 수 있다.• 보통 대용량 데이터 조회 시에는 API Composition보다는 CQRS Pattern을 사용하는 것 같다. • API조합기는 Client단에 만들 수 있다. ajax()로 화면 partial ref.. 2022. 10. 31.
MSA, Software Architecture : Layered Architecture MSA에서 Software Architecture로 사용하는 것은 Hexagonal Architecture와  Layered Architecture 등이 있는데 그 중에서 Layered Architecture에 대해 알아보자     Layered architecture란?layered architecture란 말 그대로 계층이 나뉘어져 있는 아키텍쳐를 뜻한다. layered architecture의 주된 목표는 어플리케이션을 여러 개의 굵직한 횡단 관심사(cross-cutting concern)로 분리해, 각각의 layer는 하나의 관심사에만 집중할 수 있도록 하는 것이다. 각각의 layer에 대한 명칭은 출처마다 조금씩 다르지만 근본적인 역할과 목적은 같으며, 대표적으로 DDD(Domain Driven.. 2022. 10. 19.
728x90
반응형