작성
·
112
0
안녕하세요, 토비님 강의 정말 잘 보고 있습니다.
하나 궁금한 점이 있어서 질문드립니다.
헥사고날 아키텍처(Hexagonal Architecture)를 도입할 때, Specification 패턴
과 Strategy 패턴
을 함께 사용하는 것에 대해 어떻게 생각하시나요?
좋은 선택이 될 수 있을지, 아니면 둘 중 하나만 선택해서 사용하는 것이 더 나은 접근일지 고민하고 있습니다.두 패턴을 함께 사용하는 사례나 장단점에 대해 조언해주시면 감사하겠습니다.
답변 2
1
질문하시는 배경을 제가 잘 알지 못해서 어떤 설명을 해드려야할지 모르겠습니다.
DDD에서 이 두 가지 패턴에 대한 일반적인 설명을 원하시는 것인가요?
어떤 케이스에서 어떤 이유로 둘 중의 하나만 선택하거나 같이 써야할지 고민을 하고 계신지 궁금합니다. 이 두 패턴은 배타적인 게 아닙니다. 각각 패턴을 적용해야 하는 특정 상황이 있을 수 있고, 이걸 보편 언어로 표현해서 도메인의 개념을 더 이해하고 응용할 수 있다면 사용하시면 됩니다. 헥사고날 아키텍처와는 별 관련이 없습니다.
전략 패턴은 규칙을 담은 알고리즘의 교체가 필요한 경우에 사용하고, 명세 패턴은 규칙을 명시적으로 표현하고 유연한 조합이 필요할 때 사용합니다. 각각 필요한 경우에 사용하면 되지, 같이 사용해야 할지를 굳이 따져야 할 이유는 잘 모르겠습니다.
클린 스프링 시리즈가 이어지면서 좀 더 복잡한 도메인 로직을 다루는 케이스가 나올텐데, 그때 이 두 가지 패턴을 사용하는 예를 보여드릴 계획이 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 황준하님께서 헥사고날 아키텍처에서 Specification 패턴과 Strategy 패턴의 사용에 대해 질문해 주셨습니다.
Specification 패턴과 Strategy 패턴은 모두 객체 지향 설계에서 유연성과 재사용성을 높이기 위한 디자인 패턴이지만, 사용 목적과 방식이 다릅니다.
Specification 패턴:
Strategy 패턴:
두 패턴을 함께 사용하는 것은 목표를 명확히 하고, 시스템의 요구 사항을 고려하여 결정하는 것이 중요합니다. 두 패턴이 도메인 모델 내의 각기 다른 목적을 위해 사용된다면, 함께 사용하는 것이 좋은 선택이 될 수 있습니다. 그러나, 코드 복잡성이나 유지보수성을 저해할 가능성이 있다고 판단되면 단일 패턴으로 시작해도 좋습니다.
이와 유사한 주제로 다른 개발자들과 전문가들이 논의한 내용을 참고하면 더욱 도움이 될 수 있습니다:
- 패턴을 활용한 애플리케이션 디자인
- DDD와 헥사고날 아키텍처에서의 패턴 사용
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
복잡한 도메인 로직을 다룰 때 어떤 패턴이 더 나을까 하는 단순한 고민이었는데, 설명을 듣고 보니 결국 상황에 맞게 적절하게 사용하는 게 중요하겠다는 생각이 드네요. 꼭 둘 중 하나를 선택해야 하는 건 아니고, 각 패턴이 필요한 맥락에서 유연하게 적용하면 되겠네요. 좋은 설명 감사합니다!