본문 바로가기

전략패턴2

전략 패턴과 캡슐화 개념을 이용한 도메인과 검증 로직 최적 분리 과정 💫시작하기 전에 프로젝트에서 스케줄러 기능을 개발하면서 ‘검증 로직을 도메인 클래스에서 분리’한 과정을 기록하고자 합니다. 해결 과정은 아래와 같습니다. 검증 책임을 가진 클래스를 별도 생성하여 분리 JPA 임베디드 타입과 전략 패턴을 이용한 분리(feat. 래퍼 클래스) JPA 임베디트 타입과 스프링 validation 혼합 시스템에서 발생한 에러를 적절히 처리해서 사용자의 불편을 최소화하는 것은 개발의 기본 덕목이지만, 보통 에러는 클라이언트의 잘못된 요청이나 입력에서 비롯되는 경우가 많았습니다. 에러 처리를 위한 코드가 늘어나다 보니 시스템 복잡도가 점점 증가했습니다. 때문에, 이 이상 에러 처리에 고집하기보다 에러 예방을 통해 위험 발생 가능성을 사전에 최대한 배제하는 것이 좋겠다고 생각했습니다... 2022. 12. 2.
전략패턴(Strategy Pattern) 전략패턴(HAS-A의 장점) 알고리즘의 군을 정의하고 캡슐화해주며, 서로 언제든지 바꿀 수 있도록 해줌 느슨한 연결이 가능하고 동적 변화에 유리하게 설계가능 다형성을 보장 추가와 변형에 유리함 HAS-A 와 DIP 의존관계 주입을 이용 객체 생성에 필요한 다양한 알고리즘을 필요할때 실행시간에 바꾸어 사용하고싶다면? 생성을 담당하는 메서드를 캡슐화하고 has-a와 dip를 이용한다. 내부로직을 들어내지 않고 은닉화 할수있으며 동적처리가 가능 아래 코드에서 fly() 기능을 사용하고싶다. interface? 상속? //부모 abstract class Duck{ void quack(){ //공통 사용 메서드 .. } abstract void color(); //자손에게 각자 재정의 위임 } //중간 클래스 c.. 2021. 12. 29.