Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- node.js
- web
- 자바
- oracle
- MySQL
- 백엔드
- Next.js
- 미니정리
- 쿼리
- BACK-END
- java
- JavaScript
- 스프링부트
- 프로그래머스
- 프론트엔드
- 자바스크립트
- 스프링
- spring
- 오라클
- 프런트엔드
- 코드 테스트
- 데이터베이스
- 코드테스트
- 디자인 패턴
- 정리
- 서버
- SQL
- jpa
- jsp
- 알고리즘
Archives
- Today
- Total
참치코더의 꿈 메모장
전략패턴(Strategy Pattern) 이란? 본문
728x90
전략패턴은 객체의 행위(알고리즘, 동작)을 캡슐화해서, 런타임에 행위를 바꿀 수 있도록 하는 디자인 패턴이다.
-> 알고리즘 군을 정의하고, 각각을 독립적으로 캡슐화하여 교체 가능하게 만드는 전략
핵심 의도
- if-else나 switch문으로 분기 처리하지 않고, 알고리즘을 별도로 분리해 둬서 갈아끼우기 쉽게 함
구조
1. Stratege (전략 인터페이스)
- 알고리즘이 수행해야 하는 공통 인터페이스 정의
2. ConcreteStrategy (구체적인 전략 클래스)
- Strategy를 구현한 실제 알고리즘들
3. Context (문맥/환경 클래스)
- Strategy를 사용하며, 어떤 Strategy를 사용할지는 런타임에 결정됨
장점
- 코드의 유연성과 확장성이 좋아짐
- OCP (개방-폐쇄 원칙) 준수 -> 새로운 전략을 추가할 때 기존 코드를 건드리지 않아도 됨
단점
- 전략 클래스가 많아질 수 있음
- Context와 Strategy가 분리돼 있어서 구조가 다소 복잡해질 수 있음

728x90
'디자인 패턴' 카테고리의 다른 글
| 디자인 패턴 / 커맨드 패턴 정리 (0) | 2025.09.28 |
|---|---|
| 디자인 패턴 / 싱글톤 디자인 패턴 정리 (0) | 2025.09.24 |
| 디자인 패턴 / 팩토리 패턴(Factory Pattren) (0) | 2025.09.19 |
| 디자인 패턴 / 데코레이터 패턴 (포장지 패턴) (0) | 2025.09.07 |
| 디자인 패턴 / 옵저버 패턴 정리 (0) | 2025.08.28 |
Comments