MSA

마이크로서비스 아키텍처의 데이터 참조 전략🔍 현재 상황 분석프로젝트 구조CommunicationBoardIdentityRecruitmentScheduleFeedback주요 문제점도메인 간 Entity 직접 참조다중 데이터베이스 조회 제한강결합(Tight Coupling) 발생JPA Entity 매핑 한계1. API 기반 통신 방식구현 예시@Serviceclass JobPostingService( private val webClient: WebClient, private val jobPostingRepository: JobPostingRepository) { fun getJobPostingWithUser(id: Long): JobPostingDetailDto { val pos..
· MSA
CQRS 패턴이란 무엇인가? CQRS(Command Query Responsibility Segregation, 명령 쿼리 책임 분리) 패턴은 소프트웨어 개발에서 사용되는 설계 방식 중 하나입니다. 이 패턴은 시스템을 명령을 처리하는 부분과 정보를 조회하는 부분으로 나누어, 복잡성을 관리하고 확장성 및 성능을 개선하는 데 목적이 있습니다. CQRS 패턴 소개 CQRS의 정의 CQRS는 시스템에서 데이터를 변경하는 작업(명령)과 데이터를 읽는 작업(쿼리)을 분리하여 설계하는 패턴입니다. 이를 통해 각각의 책임을 명확히 하여, 개발 및 유지 보수의 복잡성을 줄이고, 시스템의 성능을 최적화할 수 있습니다. CQRS의 필요성 대규모 시스템에서 데이터를 처리하는 과정은 점점 더 복잡해지고 있습니다. 특히, 동일한..
헥사고날 아키텍처 소개 정의와 기본 개념 헥사고날 아키텍처(육각형 아키텍처)는 소프트웨어 설계에서 '내부와 외부'라는 개념을 중심으로 구성됩니다. 이 아키텍처의 핵심은 비즈니스 로직을 중심으로 외부 요소와의 상호작용을 어댑터와 포트를 통해 관리하는 것입니다. 왜 헥사고날 아키텍처인가? 헥사고날 아키텍처는 비즈니스 로직의 순수성을 유지하며, 외부 요소(데이터베이스, 웹 서비스 등)와의 결합도를 낮추어 유연성과 확장성을 제공합니다. 이로 인해, 시스템의 수정 및 확장이 용이해지며, 독립적인 테스트와 개발이 가능해집니다. 내부와 외부: 기본 구조 내부 로직의 중요성 내부 로직은 애플리케이션의 비즈니스 규칙을 담당합니다. 이는 외부의 변경에 영향을 받지 않으며, 오직 정의된 인터페이스를 통해서만 외부 요소와 통..
계층화 아키텍처는 여러 개의 계층으로 나누어 각 계층에서 하는 일을 한정시켜 계층별로 독립적으로 개발, 배포, 확장이 가능하게 하는 설계 패턴입니다. 계층화 아키텍처 개요: 계층의 구분과 기본 원리에 대한 소개 계층의 구분과 기본 원리: Presentation, Application, Domain, Infrastructure Layer 등으로 구성되며, 각 Layer는 하위 계층으로 의존성이 존재합니다. 계층화 아키텍처의 구성 요소 계층화 아키텍처는 다음과 같은 주요 계층으로 구성됩니다: Presentation Layer: 사용자 인터페이스와 사용자 입력 처리를 담당합니다. Application Layer: 애플리케이션의 핵심 기능과 비즈니스 로직을 구현합니다. Domain Layer: 비즈니스 로직의 ..
MSA 환경에서 소프트웨어 아키텍처의 중요성 현대적인 소프트웨어 개발 환경에서 Micro Service Architecture(MSA)는 빼놓을 수 없는 중요한 개념입니다. MSA는 다양한 서비스가 결합하여 하나의 큰 시스템을 이루는 구조로, 각각의 서비스는 독립적으로 개발되고 배포될 수 있습니다. 이러한 환경에서 소프트웨어 아키텍처의 역할은 매우 중요해지는데, 이는 각 서비스의 설계와 통신, 데이터 관리 방법에 직접적인 영향을 미치기 때문입니다. MSA의 특성과 필요성 MSA는 유연성, 확장성, 낮은 응집도 및 결합도를 특징으로 합니다. 이러한 특성은 서비스를 독립적으로 개발하고, 필요에 따라 시스템을 쉽게 확장하거나 수정할 수 있게 해줍니다. 따라서, MSA 환경에서는 이러한 특성을 지원할 수 있는 ..
· MSA/MSA 란?
모놀리식 아키텍처와 SOA(Service Oriented Architecture), 그리고 이 둘과 MSA(Microservices Architecture)의 관계를 이해하는 것은 현대 소프트웨어 개발의 트렌드와 패턴을 파악하는 데 중요합니다. 아래 내용을 통해 이들 간의 비교와 차이점을 살펴보겠습니다. 모놀리식 아키텍처와 SOA 모놀리식 아키텍처 모놀리식 아키텍처는 소프트웨어의 모든 기능이 하나의 불가분의 단일 애플리케이션 내에서 tightly-coupled(긴밀하게 결합된) 형태로 작동하는 구조를 말합니다. 초기 소프트웨어 아키텍처의 대표적 형태로, 하나의 어플리케이션이 하나의 서버에 배포되며 단일 코드베이스로 관리됩니다. 이 구조는 싱글 또는 멀티 모듈 방식으로 개발이 가능하지만, 근본적으로 하나의..
· MSA/MSA 란?
MSA의 역사와 필요성 MSA(Microservice Architecture)는 새로운 개념이 아닙니다. 과거부터 존재했으며, 많은 사람들이 경험한 불편함에도 불구하고, 마법 같은 해결책이 존재하지 않았습니다. 기존의 개발 환경은 주로 모놀리식 아키텍처에 기반을 두었고, Cloud 컴퓨팅의 개념은 그리 보편화되지 않았습니다. IDC(Internet Data Center) 사용은 당연하게 여겨졌으며, 많은 SI(System Integration) 업체들이 이를 기반으로 서비스를 제공했습니다. 이러한 환경에서는 다양한 서비스를 여러 서버에 배포하는 것이 상당한 리소스를 요구하는 일이었습니다. 클라우드의 등장 AWS(Amazon Web Services)의 등장은 이러한 상황에 변화를 가져왔습니다. AWS는 I..
Kayden.Jung
'MSA' 카테고리의 글 목록