Strategy 패턴이란?Strategy 패턴은 동일한 문제를 해결하는 여러 알고리즘이 있을 때, 이들을 독립된 클래스로 캡슐화하고 런타임에 알고리즘을 교체할 수 있도록 하는 설계 패턴입니다. 이 패턴은 코드 중복을 줄이고 확장성을 높이는 데 매우 유용합니다. 예를 들어, 결제 시스템을 설계한다고 가정해봅시다. 결제 방식은 신용카드, PayPal, 혹은 기타 방식으로 다양할 수 있습니다. 각 결제 방식을 동적으로 변경할 수 있다면 사용자의 요구에 더 잘 대응할 수 있습니다. 하지만 잘못된 설계로 인해 유지보수와 확장성이 떨어질 위험이 있습니다. 다음은 잘못된 설계와 그 문제점을 살펴보고, 이를 Strategy 패턴으로 해결하는 과정을 소개합니다. 이 글의 소스코드 및 설명은 헤드퍼스트 디자인패턴 책을 참..