IT knowledge/GoF & Architecture

DDD (Domain-Driven Design) - 도메인 주도 설계 내 생각에 모든 아키텍처는 "낮은 결합도와 높은 응집도"라는 과학적 사고에 기초해 나온거라고 생각한다. 최근 많은 IT 기업에서 적용하고 있는 MSA에 관심을 갖던 중 DDD 라는 개념을 알게 되었고 마이크로 서비스의 도출기법으로 활용되는 DDD (Domain-Driven Design)에 대해서 간략히... 포스팅하려고 한다. 이 방법론은 복잡한 도메인 모델을 잘 이해하고, 그것을 구현할 수 있는 소프트웨어 모델을 만드는 것을 목표로 하며 이를 통해 개발자와 도메인 전문가가 협업하여 비즈니스 요구사항을 이해하고, 구현하는 과정에서 발생할 수 있는 문제를 최소화 할 수 있다. 도메인 주도 설계의 목적 도메인 주도 설계의 목적은 소프트웨어..
Layered Architecture - 계층화 아키텍처 ✔️ 아키텍처(Architecture)란? 시스템의 구조, 동작 등을 정의하는 개념적인 모형으로 목적을 달성하기 위해 시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용 하는지, 정보가 어떻게 교환되는지를 설명한다. "하나의 서비스가 어떻게 구성이 되며 어떻게 동작이 된다" - 서비스의 동작 원리 ✔️ 계층화 아키텍처 (Layered Architecture)란? 아키텍처의 컴포넌트들은 각각 어플리케이션의 특정한 역할을 수행하도록 가로로 나누어져 계층을 이룬다. 가장 널리 알려진 아키텍처로 전통적인 IT workflow와 조직 구성이 잘 맞아 떨어져 많은 비즈니스에서 채택된다. 주로 3계층으로 이루어져 있다. 유저 + 브라우저와 상호작용하는 Presen..
[디자인 패턴] 데코레이터 패턴(Decorator Pattern) 개념 정리 Decorator Pattern - 데코레이터 패턴 (구조패턴 분류) 데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 객체에 추가적인 요건을 동적으로 첨가하며, 기능 확장이 필요할 때 서브크래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. 즉, 장식시켜주는 객체들과 장식 받을 객체들을 만든 뒤 이들을 이용하여 장식 받을 객체가 원하는 모양이 되도록 만들어주는 패턴이며 이때, 기존의 객체(장식 받을 객체)를 활용하고 있던 모듈은 장식이 이루어지는 것과 무관하게 작동을 해야 한다. 복잡해 보이는 설명을 풀어서 설명해보겠습니다. 문을 밀고 들어가 카운터에서 점..
1. 싱글톤 패턴(Singleton pattern) 정리 싱글톤 패턴이란? 어플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴이다. 예를들어 레지스트리 같은 설정 파일의 경우 객체가 여러개 생성되면 설정 값이 변경될 위험이 생길 수 있다. 인스턴스가 1개만 생성되는 특징을 가진 싱글턴 패턴을 이용하면, 하나의 인스턴스를 메모리에 등록해서 여러 쓰레드가 동시에 해당 인스턴스를 공유하여 사용할 수 있게끔 할 수 있기 때문에 요청이 많은 곳에서 사용하면 효율을 높일 수 있다. 주의해야 할 점은 싱글턴을 만들 때 동시성(Concurrency) 문제를 고려해서 설계해야 한다. 싱글톤 패턴의 장점 고정된 메모리 영역을 얻으면서 한번..
1.디자인 패턴(Design Pattern)이란? 객체지향적인 소프트웨어를 잘 설계한다는 것은 생각보다 쉬운 일이 아닙니다. 지금 당장 갖고 있는 문제를 해결한다에 그치지 않고 나중에 생길 수 있는 문제나 추가된 요구 사항들도 수용할 수 있도록 일반적이고 포괄적으로 설계해야 합니다. 이를 위해 설계할 때 고려사항으로 SOLID 원칙 등 객체지향적 소프트웨어 설계 방법론이 있고 현업에서는 이에 따라 개발하기 위해 노력하고 있습니다. 자, 우리는 Java로 파일 입출력을 어떻게 구현할까요? import java.io.FileInputStream; import java.io.FileOutputStream; public class File{ // ... FileInputStream is = new FileInp..
[디자인 패턴] 어댑터 패턴(Adapter Pattern) 개념 정리 Adapter Pattern - 어댑터 패턴 (구조 패턴) 이미 만들어진 것을 그대로 사용할 수 없을 때, 필요한 형태로 사용할 수 있게 해주는 패턴. 이미 만들어진 것을 감싸는 형태여서 Wrapper 패턴이라고도 한다. Adapter는 직독하면 "변환기" 정도로 해석됩니다. 핸드폰 충전기 처럼 핸드폰을 콘센트에 직접 접촉시켜 충전하지 않고 충전기라는 어댑터를 통해 핸드폰과 콘센트를 연결하여 충전합니다. 왜 이런 Adapter를 사용하는 것 일까요? 바로 기존에 이미 잘 구축되어 있는 것을 새로운 어떤 것이 사용할 때 양쪽 간의 호환성을 유지해주기 위함입니다. 자바에서도 직접적으로 메서드는 호출하지 않고 중간에 어댑터를 거쳐서 메서드를..
1. 디자인 패턴이란 디자인 패턴은 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론이다. 좋은 코드란 무엇인가? 디자인 패턴에서 좋은 코드란 설계적 관점에서의 좋은 코드를 말한다. 즉, 확장과 유지보수를 하기 용이하게 설계를 하여 이후에도 추가적인 수정 등에 비용이 적게 들어가는 코드를 말한다. 높은 응집도와 낮은 결합도 객체 지향적으로 생각하면 추구해야 할 설계 방향이다. 이러한 좋은 코드를 설계하기 위해서 '객체지향 방법론'에서는 SOLID 원칙이 있다. 2. SOLID 원칙 (객체지향 5대 원칙) 1. SRP (Single Responssiblity Principle, 단일 책임 원칙) - 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만을 가져야 한다. 여..
코딩무니
'IT knowledge/GoF & Architecture' 카테고리의 글 목록