MSA 환경에서 Springboot를 지원하는 여러 툴들이 있습니다.Spring Cloud마이크로 서비스를 쉽게 개발하고 관리할 수 있도록 도와준다.로드 밸런싱, 서킷 브레이커 등을 지원한다.Spring Cloud GatewayAPI Gateway 역할을 수행한다.요청
앞 내용을 보고 오는 것을 추천합니다. MSA Phase 1. Springboot(1) Client가 Request를 날려준다.Gateway에서 Eureka에 등록된 서비스인지 확인한다.매번 Request 때 마다 확인하는 것이 아니라 30초(default)에 한번
MSA가 추구하는 방향성에는 밑과 같다.Strong Module Boundaries (명확한 모듈 경계)DDD(Domain Driven Design) 패턴에 바운디드 컨텍스트(Bounded Context)을 이용하여 서비스간 결합도를 낮출수 있다.Independent
MSA에서는 대게 도메인 서비스 별로 서비스가 나눠져있다.예를 들어 유저, 주문, 배송, 상품에 대한 서비스가 나눠져있다고 생각해보자해당 서비스에는 공통적으로 몇가지가 사용된다.예를 들어 유틸리티(util), 예외 처리, 인증 및 인가에 대해서 공통적으로 사용된다.이런
해당 링크에는 선택과정과 큰 틀에 대한 이론이 정립되어 있다. 한번 보고 오면 도움이 될 것이다.https://velog.io/@devty/엉금엉금-Kafka-도입기앞으로는 공부할 때 해당 라이브러리, 플랫폼, 툴 등에 대한 아키텍처를 먼저 확인 후에 전체적인
Transaction은 일련의 작업 단위를 의미한다.데이터베이스 관리 시스템(DBMS)에서 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야할 일련의 연산들을 의미한다.원자성(Atomicity)트랜잭션이 데이터베이스에 모두 반영
사실 이 부분은 MSA가 아니고 Monolithic Arch에서도 많이 사용하는 기법이다.처음 도입을 생각했던 건 그 전에 했던 프로젝트에서는 모놀로식 아키텍처를 사용하였는데, 그 프로젝트가 커져가는 과정중에 운영서버에 배포 후 테스트하는 것이 매우 어려웠다.배후 후에
통합 테스트(Integration Test)는 소프트웨어 개발 과정에서 여러 시스템이 서로 상호작용하며 원활하게 작동하는지 확인하는 테스트 방법이다.이는 단위 테스트(Unit Test)가 개별 컴포넌트의 기능을 테스트하는 것과는 달리, 통합 테스트는 여러 컴포넌트가 함
여태 앞서 우리는 테스트 코드(단위, 통합)를 짰다.그럼 우리는 이제 테스트 코드가 어디까지 본 코드에 대한 테스트를 진행했는지 파악해야하지 않은가?중간중간 놓치는 부분이 있을 수도 있다. → 사람이 하는 일이라 어쩔수 없음그래서 우리는 테스트 코드에 대한 테스트 커버
기존에는 Spring Swagger를 사용하여 개발을 하였는데, 프로덕션 코드에 직접적인 영향을 미치기에 코드가 너무나도 지저분해지는 걸 느낄수 있었다.위와 같이 간단한 회원가입 로직인데 스웨거에 대한 코드가 많은 비중을 차지하고 있다.그리고 Swagger는 Postm
이전 블로그에서 우린 Spring Rest Docs는 도입하였다. 아래는 해당 블로그이다.https://velog.io/@devty/MSA-Phase-7.-API-Document1-Spring-Rest-DocsSpring Rest Docs을 도입해보니 경험에서
MSA의 태생적인 한계모든 서비스는 각 프로덕트로서 도메인을 책임진다.서비스/도메인 간 협럽과 디펜던시가 지양된다.또한 각 서비스의 DB는 각 서비스를 통해서 접근해야한다. (데이터 오너쉽)지금까지의 쿼리는 각 서비스내에서 모두 처리가 가능한 정도의 쿼리였다.하지만 프
일단 제목을 해석하면 트랙잭션 복잡도이다.제목을 이렇게 지은 이유는 트랙잭션 처리에 대한 고찰(?)을 하고 난 뒤 나의 경험을 기반으로 한 내용들을 정리하기 위함이다.MSA Phase 5. Transaction 내가 쓴 블로그이다. 한번 읽고 시작하는게 편할 것 이다.
MSA가 파생되기 전에는 주로 사용하던 아키텍처는 Monolithic(모놀로식) Architecture 입니다.Monolithic Architecture는 모든 애플리케이션의 컴포넌트들이 하나의 단일 패키지로 통합되어 있는 구조를 의미합니다.이러한 구조에서는 화면, 데