전략 패턴
-
전략 패턴을 이용해서 요구사항 대응하기(feat. Enum)Project Trouble Shooting/[EATceed] 몸무게 증량 어플 2024. 6. 1. 22:24
프로젝트를 진행하던 중 식사 등록 시 사용하는 단위에 대한 요구사항이 추가되었습니다.기존에는 한 식사에 대해 ‘인분(multiple)’ 단위만 사용할 수 있었지만, 추가된 요구사항에서는 각 음식마다 ‘g’ 또는 ‘인분’ 단위를 선택할 수 있도록 수정해야 했습니다. 이로 인해 먹은 음식의 영양소를 측정하는 기존 로직도 함께 변경해야 했습니다.하지만, 이렇게 변경할 경우 OCP(Open Closed Principle, 개방-폐쇄 원칙)에 위배가 됩니다.이를 해결하기 위해 전략 패턴(Strategy Pattern)을 적용하여 단위 변경 혹은 단위 추가가 발생하더라도 기존의 코드에 수정 없이 대응할 수 있도록 개선했습니다. 왜 전략 패턴을 사용할 수 있었을까?전략 패턴(Strategy Pattern)은 런타임 ..