Architecture/DesignPatterns 14

[만들면서 배우는 클린 아키텍처] 01 계층형 아키텍처의 문제는 무엇일까?

'만들면서 배우는 클린 아키텍처' 책을 정리한 내용입니다. 계층형 아키텍처?계층(layer)으로 구성된 (웹) 애플리케이션을 개발해 본 적이 있을 것이다.계층을 이용하는 사고방식은 컴퓨터 과학 수업이나 튜토리얼, 모범사례를 통해 우리에게 주입되어 왔다.위의 그림은 일반적인 3계층 아키텍처는 웹 계층, 도메인 계층, 영속성 계층으로 구성된 전통적인 구조를 갖는다.맨 위의 웹 계층은 요청을 받아 도메인 혹은 비즈니스 계층에 있는 서비스로 요청을 보낸다.서비스에서는 필요한 비즈니스 로직을 수행하고, 도메인 엔티티의 현재 상태를 조회하거나 변경하기 위해 영속성 계층의 컴포넌트를 호출한다. 사실 계층형 아키텍처는 견고한 아키텍처이다. 계층을 잘 이해하고 구성한다면 웹 계층이나 영속성 계층에 독립적으로 도메인 로직..

디자인 패턴의 종류 한눈에 보기

디자인 패턴은 개발자들이 코드를 더 구조적이고 효율적으로 작성하도록 돕는 중요한 개념입니다. 이 글에서는 자주 사용되는 디자인 패턴을 유형별로 정리하여 한눈에 알아볼 수 있도록 준비했습니다. 😊 디자인 패턴이란?디자인 패턴은 소프트웨어 개발에서 반복적으로 나타나는 문제를 해결하기 위한 재사용 가능한 설계 템플릿입니다.이는 **GoF(Gang of Four)**의 책에서 처음 체계적으로 소개되었으며, 크게 세 가지 유형으로 분류됩니다.생성 패턴 (Creational Patterns): 객체 생성과 관련된 문제 해결구조 패턴 (Structural Patterns): 클래스와 객체를 효율적으로 구성행동 패턴 (Behavioral Patterns): 객체 간 상호작용과 역할 분담에 초점생성 패턴 (Creati..

CQRS 패턴: 데이터 읽기와 쓰기를 분리하여 성능과 확장성 극대화하기

복잡한 애플리케이션은 데이터 읽기와 쓰기를 분리해야 하는 경우가 생깁니다. 최근에 수많은 조회와 데이터 변경 요청이 발생하며, 트래픽과 확장성 측면에서 읽기와 쓰기를 분리할 필요가 생기면서 CQRS에 대해 알게 되었는데요! 🫠CQRS는 전통적인 애플리케이션 구조와는 다르게, 명령(Command)과 조회(Query)의 책임을 구분하여 각기 다른 모델로 설계함으로써 성능, 확장성, 보안성을 향상하는 데 초점을 맞추는 디자인 패턴입니다. 이 글에서는 CQRS 패턴에 대해 정리해보겠습니다!👀 CQRS 패턴이란?CQRS는 Command Query Responsibility Segregation의 약자이며 명령과 조회를 분리하여 처리하는 패턴입니다.데이터 읽기와 쓰기를 작업을 분리함으로써 성능, 확장성, 데이터..

[디자인 패턴] 도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

애플리케이션에서 비즈니스 로직을 어떻게 설계하느냐에 따라 성능이나 유지보수성, 확장성에 큰 영향을 줍니다.그중 도메인 모델 패턴(Domain Model Pattern)과 트랜잭션 스크립트 패턴(Transaction Script Pattern)은 비즈니스 로직을 애플리케이션에서 처리하는 두 가지 대표적인 방식입니다. 이 글에서는 두 패턴의 대해서 그리고 각 패턴을 언제 사용하는 것이 좋을지 정리해 보겠습니다.🙂 도메인 모델 패턴이란?도메인 모델 패턴은 도메인 주도 설계(DDD)에서 많이 사용하는 방식입니다.비즈니스 로직을 도메인 객체 안에 포함하여 객체 지향적으로 관리합니다.복잡한 비즈니스 로직이 포함된 시스템에서 코드가 실제 비즈니스 개념에 맞게 동작하도록 설계하는 것이 목표입니다.객체 중심 설계도메인..