Strategy

Strategy는 알고리즘군을 같은 인터페이스로 캡슐화해 런타임에 교체한다. if/switch 분기 수정 대신 전략 추가로 확장한다. 일급 함수가 있는 언어에서는 별도 Strategy 클래스가 함수 하나로 흡수된다.

2024년 3월 3일 · 약 3분 읽기

광고 fallback 서버 설계 회고

레거시 광고 서버를 제거하면서 Nest.js 기반 fallback 서버를 새로 설계한 과정. 단일 API에 복잡한 비즈니스 로직이 집중된 구조에서 수평 계층 아키텍처를 선택한 배경과 결과.

2024년 2월 28일 · 약 3분 읽기

Nest.js 기본 — DI와 Module 시스템

Nest.js는 Node.js 생태계에서 DI 컨테이너와 Module 시스템을 프레임워크 수준에서 제공한다. IoC, DI, Module, Provider 등 핵심 설계 원칙을 정리한다.

2024년 2월 26일 · 약 4분 읽기

Facade

Facade는 복잡한 서브시스템에 단순한 진입점을 제공해 클라이언트와 내부 구현의 결합을 끊는다. 서비스 레이어, 라이브러리 SDK가 사실상 Facade다. Adapter는 인터페이스 변환, Mediator는 양방향 조정이라는 점에서 구분된다.

2024년 2월 25일 · 약 3분 읽기

Layered Architecture와 의존성 역전

레이어드 아키텍처는 기술적 책임 기준으로 코드를 수평 계층으로 나눈다. 4계층 구조의 각 역할, 의존성 방향 규칙, DIP로 계층 간 결합을 끊는 방법을 정리한다.

2024년 2월 23일 · 약 3분 읽기

Kafka 기초와 KRaft 모드

Kafka의 핵심 개념(토픽, 파티션, 컨슈머 그룹, 복제)을 정리하고, ZooKeeper 의존성을 제거한 KRaft 모드의 등장 배경을 설명한다.

2024년 2월 22일 · 약 7분 읽기

Go에서 Hexagonal Architecture 구현

Hexagonal Architecture의 핵심 개념과 Go에서의 관용적 구현. 암묵적 인터페이스와 패키지 구조를 활용한 의존성 방향 제어.

2024년 2월 21일 · 약 5분 읽기

Decorator

Decorator는 상속의 조합 폭발을 조합으로 대체한다. 같은 인터페이스를 유지하는 래퍼를 런타임에 겹쳐 기능을 동적으로 더한다. java.io, Python 함수 데코레이터, 웹 미들웨어 체인이 모두 같은 의도의 변주다.

2024년 2월 18일 · 약 3분 읽기

Builder

Builder 는 생성자의 세 가지 한계가 동시에 모일 때의 해결책이다. 매개변수 수가 많고, 일부가 선택적이고, 단계적 검증이 필요한 경우. 셋이 같이 모이지 않으면 다른 도구로 충분하다. 언어가 named/default 매개변수를 제공하면 Builder 의 필요도 자연스럽게 줄어든다.

2024년 2월 11일 · 약 4분 읽기

Factory

Factory 의 공통 의도는 객체 생성과 사용의 분리다. 세 변형 (Factory Method / Abstract Factory / Static Factory Method) 은 분리 방식이 다르고 적합한 상황도 다르다. 실무에서는 Static Factory Method 가 가장 자주 쓰이고, DI 컨테이너가 등장하면 명시적 Factory 의 일부 역할이 컨테이너로 흡수된다.

2024년 2월 4일 · 약 5분 읽기