복잡한 서브시스템을 감추는 외벽, 퍼사드 패턴(Facade Pattern) 이해하기

퍼사드 패턴이란 퍼사드(Façade)는 프랑스어로 ‘건물의 정면’을 의미함. 소프트웨어 공학에서 퍼사드 패턴은 이 개념을 차용해 복잡한 서브시스템의 내부 구현을 숨기고, 클라이언트가 사용하기 쉬운 단일 인터페이스를 제공하는 역할을 함. GoF(Gang of Four)의 디자인 패턴 중 구조 패턴(Structural Pattern)으로 분류됨. 클라이언트는 복잡하게 얽힌 서브시스템에 직접 접근할 필요 없이, 퍼사드 객체가 제공하는 간결한 API를 통해 필요한 기능을 호출할 수 있음. 이를 통해 서브시스템과 클라이언트 간의 결합도(coupling)를 효과적으로 낮출 수 있음. 사용 목적과 장점 퍼사드 패턴의 주요 목적과 장점은 다음과 같음. ...

April 17, 2026

전략 패턴 (Strategy Pattern) - 유연한 코드 만들기

전략 패턴이란? 객체의 특정 행동(알고리즘)을 직접 구현하지 않고, 외부에서 ‘전략’을 주입받아 갈아 끼우는 방식임 쉽게 말해 “본체는 그대로 두고, 부품만 바꿔서 기능을 바꾸는 것"이라 보면 됨 전략 패턴이 적용되지 않은 코드 전략 패턴을 쓰지 않으면 보통 이렇게 구현하게 됨 class Vehicle { constructor(private type: "road" | "rail") {} move() { if (this.type === "road") { console.log("부릉부릉 도로로 감 🚌"); } else if (this.type === "rail") { console.log("칙칙폭폭 선로로 감 🚂"); } } }이 방식이 가지는 문제는 다음과 같음 조건문이 계속 늘어남 새로운 이동 방식이 생길 때마다 move()를 수정해야 함 → OCP(Open-Closed Principle) 위반 ...

December 6, 2025