디자인 패턴 ( Design Pattern )
프로그램 제작에 있어서 기존의 코드를 재사용하거나 수정해야 하는 경우가 발생할 수 있다.
하지만 대상이 되는 코드의 길이가 너무 길거나 작성한지 오래되어 레거스 코드가 되어버린 경우
코드의 의도를 알아보기 힘들고 섣불리 수정할 수 없는 경우도 있다.
또는 기존의 코드를 수정하지 않으면서 객체지향의 다형성을 응용해야 하는 경우도 있을 수 있다.
디자인 패턴이란 자주 등장하는 문제를 효율적으로 해결하기 위한 , 재사용이 가능한 설계 템플릿이다.
프로그래밍 중 반복적으로 등장하는 구조적 / 행동적 문제를 미리 검증된 형태로 해결하는 설계 방법이다.
유니티에서는 객체 생성 , 관리 , 상호작용 구조를 체계적으로 짜기 위해 디자인 패턴을 자주 활용한다.
▼ 유니티에서 디자인 패턴을 사용해야 하는 이유
| 목적 | 설명 |
| 재사용성 향상 | 같은 문제를 반복 작성할 필요 없이 패턴으로 해결 가능하다 |
| 유지보수 용이 | 코드 구조가 일관되면 수정 시 영향 범위를 쉽게 파악할 수 있다 |
| 협업 효율 증가 | 다른 개발자들도 익숙한 패턴이라 의사소통이 쉽다 |
| 확장성 확보 | 새로운 기능을 추가할 때 기존 구조를 건드리지 않고 확장 가능하다 |
| 의존성 감수 | 코드 간 결합도를 낮춰 버그 발생 확률을 감소시킨다 |
| 사고의 표준화 | 복잡한 시스템을 구조적으로 사고하게 도와준다 |
▼ 유니티에서 자주 사용하는 주요 디자인 패턴
| 패턴 | 예시 | 특징 |
| 싱글톤 ( Singleton ) | GameManager , AudioManager | 전역에서 하나만 존재하는 객체를 관리한다 |
| 팩토리 ( Factory ) | EnemySpawner , BulletFactory | 객체 생성 로직을 분리하여 코드 복잡도를 감소시킨다 |
| 옵저버 ( Observer ) | 이벤트 시스템 , UI 갱신 | 특정 이벤트 발생 시 자동으로 다른 객체를 갱신한다 |
| 커맨드 ( Command ) | 입력 처리 , Undo / Redo | 명령을 객체로 캡슐화해 실행과 취소를 관리한다 |
| 상태 ( State ) | AI 행동 전환 , Player 상태 관리 | 조건에 따라 행동을 전환하는 구조이다 |
| 전략 ( Strategy ) | 이동 AI , 공격 방식 | 알고리즘을 쉽게 교체 가능하게 분리한다 |
| 어댑터 ( Adapter ) | 외부 API 연결 , 입력 방식 변환 | 서로 다른 인터페이스를 연결한다 |
정리
- 디자인 패턴은 문제 해결용 설계 공식이다
- 유니티에서는 객체 간의 복잡한 관계를 단순화하고 , 유지보수와 확장성을 높이기 위해 필수적으로 사용한다
- 초반에는 코드가 복잡해 보일 수 있지만 , 프로젝트가 커질수록 그 가치가 커진다
'🧊Unity Basic > 디자인패턴' 카테고리의 다른 글
| Adapter Pattern 핵심 코드 (0) | 2025.10.24 |
|---|---|
| Observer Pattern (0) | 2025.10.21 |
| Singleton 과 Generic (0) | 2025.10.21 |
| Singleton Pattern (0) | 2025.10.20 |
| Adapter Pattern (0) | 2025.10.19 |