ACL 패턴
·
BackEnd/Spring
[DDD/MSA] 외부 시스템으로부터 내 도메인을 지키는 법: ACL 패턴 적용기새로운 프로젝트를 진행하며 마이크로서비스(MSA) 간의 통신을 구현할 때 가장 고민했던 지점은 **"외부 서비스의 변경이 우리 서비스의 핵심 로직을 흔들지 않게 만드는 것"**이었습니다. 이를 위해 도입한 ACL(Anti-Corruption Layer, 부패 방지 계층) 패턴에 대해 정리해 봅니다. 1. ACL(Anti-Corruption Layer)이란?ACL은 서로 다른 도메인 모델을 가진 두 시스템이 통신할 때, 외부 시스템의 복잡한 모델이나 기술적 세부사항이 내부 도메인으로 침투(오염)하는 것을 막아주는 보호 계층입니다.핵심 특징: 모델 보호, 상호 운용성 확보, 결합도 낮춤.구현 방법: 주로 Adapter 및 Fa..
벡터 데이터(Vector Data)와 벡터 데이터베이스(Vector DB)
·
BackEnd/Spring
벡터 데이터란 무엇일까?수학에서 **벡터(Vector)**는 여러 개의 숫자로 이루어진 좌표값을 의미한다.대부분 고등학교 수학에서 한 번쯤은 접해본 개념일 것이다.컴퓨터는 텍스트, 이미지, 음성 같은 데이터를 사람이 이해하는 방식 그대로 처리할 수 없다.따라서 이러한 데이터들을 숫자의 형태로 변환하여 저장하고 처리해야 한다.이때 사용하는 방식이 **벡터화(Embedding)**이다.예를 들어 **“강아지”**라는 텍스트 데이터는 다음과 같이 숫자 배열 형태로 표현될 수 있다.[0.23, 0.91, 0.11, 0.55 ...]이처럼 어떤 데이터를 여러 개의 숫자로 이루어진 배열 형태로 표현한 것을 **벡터 데이터(Vector Data)**라고 한다.그렇다면 왜 데이터를 벡터화해야 할까?일반 데이터를 벡터 ..
MSA [2편]
·
BackEnd/Spring
MSA 아키텍처 구조와 Monolithic Architecture 비교이전 글에서는 MSA(Micro Service Architecture)의 개념과 함께 Cloud Native, DevOps, Container, Service Discovery와 같은 핵심 개념들을 정리했다.이번 글에서는 조금 더 구체적으로 들어가서 다음과 같은 내용을 정리해보려고 한다.MSA 시스템의 전체적인 구조실제 요청이 처리되는 흐름기존 Monolithic Architecture와의 차이그리고 MSA가 가지는 단점특히 Monolithic Architecture와 MSA의 차이는 시스템 설계를 이해하는 데 매우 중요한 부분이기 때문에 최대한 자세히 설명해 보려고 한다. MSA 전체 아키텍처 구조일반적으로 MSA 기반 시스템은 하나..
MSA [1편]
·
BackEnd/Spring
MSA(Micro Service Architecture)란?MSA(Micro Service Architecture)는 하나의 거대한 애플리케이션을 작은 단위의 서비스들로 나누어 개발하고 운영하는 아키텍처 스타일을 의미한다.기존의 모놀리식(Monolithic) 구조에서는 하나의 애플리케이션 안에 모든 기능이 들어 있기 때문에, 시스템 규모가 커질수록 유지보수와 배포가 어려워지는 문제가 있었다.MSA에서는 이러한 문제를 해결하기 위해 애플리케이션을 여러 개의 **독립적인 서비스(Micro Service)**로 분리한다. 각 서비스는 독립적으로 배포되고 실행될 수 있으며, 서로 API 통신을 통해 협력하여 하나의 시스템을 구성한다.예를 들어 쇼핑몰 서비스를 생각해 보면 다음과 같이 나눌 수 있다.회원 서비스 ..