Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- https://eo-oe.tistory.com/
- https://mynameiskgws.tistory.com/
- https://hjmag1120.tistory.com/
- 태어난김에 보스까지
- https://vetenir.tistory.com/
- 이리5조
- https://ji-han.tistory.com/
- 스파르타코딩클럽
Archives
- Today
- Total
info8995 님의 블로그
파사드 패턴 (Facade Pattern) 본문
1. 개요
파사드 패턴은 여러 개의 복잡한 서브시스템의 인터페이스를 하나의 간결한 인터페이스로 통합하여 제공하는 구조적 디자인 패턴입니다.
"파사드(Facade)"라는 단어는 건물의 정면을 의미하며, 클라이언트가 내부 시스템의 복잡한 구조를 직접 다루지 않고, 단순한 인터페이스를 통해 쉽게 기능을 사용할 수 있도록 도와줍니다.
즉, 캡슐화를 통해 추상화를 실현하는 디자인 패턴입니다.
2. 파사드 패턴이 필요한 이유
1️⃣ 복잡한 시스템을 단순화
- 현대 소프트웨어 시스템은 수많은 클래스, 메서드, 라이브러리, API 등으로 구성되어 복잡합니다.
- 클라이언트가 모든 세부 사항을 직접 다루면 효율성이 떨어지고 유지보수가 어려워집니다.
- 파사드 패턴을 사용하면 복잡한 서브시스템의 인터페이스를 하나의 단순한 인터페이스로 제공할 수 있습니다.
2️⃣ 결합도 감소 (Low Coupling)
- 클라이언트와 서브시스템 간의 직접적인 결합도를 낮출 수 있습니다.
- 서브시스템이 변경되더라도 클라이언트 코드에 미치는 영향을 최소화할 수 있습니다.
3️⃣ 가독성과 유지보수성 향상
- 복잡한 기능을 단일 인터페이스로 제공하여 클라이언트 코드가 간결해지고 사용법이 단순해집니다.
- 유지보수가 쉬워지고, 코드 수정 및 확장이 용이해집니다.
3. 예제 코드 (C++)


📌 설명
- SubsystemA, SubsystemB는 개별적인 기능을 제공하는 서브시스템입니다.
- Facade 클래스는 서브시스템들을 캡슐화하여 단일 인터페이스를 제공합니다.
- 클라이언트(main)는 Facade를 사용하여 복잡한 서브시스템을 쉽게 호출할 수 있습니다.
4. 결론
✅ 파사드 패턴은 복잡한 시스템을 단순화하고 유지보수를 쉽게 하며, 결합도를 낮추는 데 유용한 패턴입니다.
✅ 서브시스템의 세부 사항을 감추고, 클라이언트에게 명확한 인터페이스를 제공하는 것이 핵심입니다.
✅ 대규모 프로젝트나 라이브러리에서 특히 효과적이며, 유지보수성을 높이는 데 기여할 수 있습니다.
'TIL(Today I Learned)' 카테고리의 다른 글
| XR(VR·AR 포함) 콘텐츠 이용자 만족 요인 및 재사용 의도 (0) | 2025.05.19 |
|---|---|
| 플레이어 & AI 시스템 완성 (0) | 2025.05.16 |
| 언리얼 RepNotify, Actor Replication, RPCs (0) | 2025.03.19 |
| 디자인 패턴 (0) | 2025.03.14 |
| 어댑터(Adapter) 패턴 정리 (0) | 2025.03.13 |