본문 바로가기

아키텍처5

DDD - Entity 인가 아닌가? 이것은 Entity 인가? 행위인가?일반적으로 유저, Customer, Product 와 같은 것들이 Entity 로 모델링하는 것은 쉬울 수 있다.하지만, 어떨때는 이것을 Entity로 모델링 해야하는 것인지 아닌지 헷갈리는 경우가 있다.아래 포스팅에서 Entity 에 대한 개념에 대해서 알아보았다.이번에는, 이 개념을 기반으로 예시를 들어 Entity 를 식별해보도록 해보자.https://pius712.tistory.com/40 도메인 주도 설계 - entity읽기에 앞서,,Entity 란 무엇인가? 라는 “정의 자체가 중요한 것이 아니다.”요구사항을 모델링할 때, 요구사항의 특정 부분을 개념화하고 분류하는 것이 목적이고, Entity 는 이 모델링을 하기 위pius712.tistory.com 식별할.. 2024. 9. 4.
DDD - Entity의 개념 읽기에 앞서,,Entity 란 무엇인가? 라는 “정의 자체가 중요한 것이 아니다.”요구사항을 모델링할 때, 요구사항의 특정 부분을 개념화하고 분류하는 것이 목적이고, Entity 는 이 모델링을 하기 위한 도구로서 존재한다.우리의 도메인을 개발할 때, 이를 어떻게 식별해내고 사용할 수 있는지 염두하면서 이해하자.정의 Entity 의 핵심은 식별가능성 과 변화가능성 이다.Entity 는 시스템 내에서 고유한 식별성을 가지며, 시간에 지남에 따라 자신의 상태가 변화한다.이는 하나의 서버내에서 국한되는 식별성이 아니라, 여러 서버와 여러 데이터 베이스에 걸쳐서도 식별이 가능해야한다.예를들어, 유저A 가 있다고 할 때 이 유저의 ID 는 메시징 큐를 통해 전달이 되든, api 를 통해 전달이 되든 시스템 내에서.. 2024. 8. 31.
api gateway 란? 1. 외부 api 설계 이슈 마이크로 서비스의 경우, 모노리식과는 다르게 서비스에 직접 접근하여 api 를 호출하는 것은 여러가지 문제가 될 수 있다. 모놀리식인 경우에는 하나의 서비스에 api 를 호출하면 되지만, 마이크로 서비스는 데이터가 여러 서비스에 분산되어있다. 따라서 마이크로 서비스 아키텍처를 채택하는 경우, 기존 모놀리식에서 제공하는 데이터를 제공하기 위해 여러 서비스가 사용된다. 하지만 마이크로 서비스 아키텍처가 장점만 있는 것은 아니다. 아래와 같은 문제점들이 있을 수 있다. 인터넷은 느리다. 인터넷은 느리기 때문에, 직렬로 api 를 호출할 수 밖에 없으면 여러 서비스를 호출시 더 오랜 시간이 걸릴 수 있다. 클라이언트 마다 다르지만, 일부 클라이언트에 따라 변경이 어렵다. 모바일 애플.. 2023. 12. 30.
설계 원칙 소프트웨어 아키텍처의 목표는 무엇인가? 생산성을 극대화하기 위함이다. 그렇다면 생산성을 극대화 한다는 것은 무엇을 의미하는가? 변경에 유연하고, 기능을 확장할 수 있어야한다. 그렇다면 어떤 코드가 변경에 유연해야하고, 어떤 코드가 확장되어야할 코드일까? 그러니까 어떤 영역을 우리는 지켜야 할까? 바로 우리의 도메인 영역이다. 도메인 영역을 잘 지키기 위해서는 어떻게 해야할까? OCP OCP 는 이런 관점에서 중요한 설계 원칙이다. 기존 코드의 변경없이, 기능을 확장할 수 있어야한다. 그렇다면 이것은 어떻게 가능할까? OCP는 단순히 다형성만으로 설명할 수 있는 개념은 아니다. 아키텍처 관점으로 볼때, OCP가 잘 이루어지기 위해서는, 컴포넌트와 모듈은 응집력있고, 컴포넌트와 모듈의 결합은 낮아야한다. 이.. 2023. 9. 3.
Yagni (You aren’t gonna need it) (feat. 클린 아키텍처) https://martinfowler.com/bliki/Yagni.html 2023. 7. 2.