디자인 패턴
학습 목표
- 디자인 패턴의 목적과 가치를 이해한다
- Strategy 패턴으로 알고리즘을 교체 가능하게 설계할 수 있다
- Factory 패턴으로 객체 생성을 유연하게 관리할 수 있다
- Observer 패턴으로 이벤트 기반 시스템을 구현할 수 있다
왜 중요한가
디자인 패턴은 반복적으로 발생하는 설계 문제에 대한 검증된 해법입니다. ML/DL 프레임워크는 이 패턴들을 적극 활용합니다. 패턴을 알면 프레임워크 코드를 이해하고, 자신의 코드를 더 유연하게 설계할 수 있습니다.Strategy 패턴
알고리즘을 캡슐화하여 실행 시점에 교체할 수 있게 합니다.Factory 패턴
객체 생성 로직을 분리하여 유연한 인스턴스 생성을 지원합니다.Observer 패턴
객체의 상태 변화를 관찰자에게 자동으로 알립니다.Singleton 패턴
인스턴스를 하나만 생성하도록 보장합니다.디자인 패턴을 언제 적용해야 하나요?
디자인 패턴을 언제 적용해야 하나요?
처음부터 패턴을 적용하기보다, 코드가 복잡해지는 시점에 리팩토링으로 도입하세요. “같은 종류의 객체를 조건문으로 분기” -> Factory, “알고리즘 교체 필요” -> Strategy, “상태 변화 알림 필요” -> Observer를 고려합니다.
Python에서 Singleton이 꼭 필요한가요?
Python에서 Singleton이 꼭 필요한가요?
Python에서는 모듈 자체가 싱글톤으로 동작합니다. 모듈 수준 변수로 충분한 경우가 많습니다. 클래스 기반 싱글톤은 상속이나 lazy initialization이 필요할 때만 사용합니다.
체크리스트
- Strategy 패턴으로 알고리즘을 교체 가능하게 설계할 수 있다
- Factory 패턴으로 객체 생성을 유연하게 관리할 수 있다
- Observer/Callback 패턴으로 이벤트 기반 확장을 구현할 수 있다

