개발자

파사드 패턴 사용에 대한 질문

2024년 11월 07일조회 39

안녕하세요 현재 학부생 3학년으로 spring 사용해서 프로젝트를 진행하다가 질문이 생겨 글 올립니다. 제 프로젝트의 구조 일부를 먼저 설명 드리면 노트 도메인과 멤버 도메인이 존재하고 각 도메인의 레포지토리에 어댑터 패턴을 적용해서 진행하고 있습니다. 그런데 각 서비스에서, 예를 들어 노트 서비스에서 멤버 어뎁터를 참조하고 멤버 서비스에서 노트 어뎁터를 참조하고 있는 상황입니다. 이런 상황이라 역의존성이 존재하는 상황이고 결합도에 문제가 있는것 같아 파사드 패턴을 사용해야 하나 고민중에 있습니다. 그런데 파사드 패턴을 사용하게 될 경우 연관있는 도메인을 묶는 파사드 클래스가 너무 많이 생기게 될 수 있을것 같다는 우려가 있고 결합도 감소에 크게 유의미한가에 대한 고민이 있습니다. 이런 상황에서 아래와 같은 질문이 있습니다. 1. 제가 쳐해있는 상황에서 파사드 패턴이 제 고민의 해결 책이 될 수 있을지 2. 실무에서 도메인과 연관관계를 해결하기 위해 파사드 패탄을 사용하는지 3. 파사드 패턴 말고도 도메인의 역의존성 혹은 복잡한 연관관계를 해결하기 위한 방법이 있는지

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 0

답변이 없을 때 보이는 아이콘

첫 답변을 기다리고 있어요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 11월 07일

안녕하세요, 당신의 질문에 대해 아래와 같이 답변드립니다. 1. 파사드 패턴은 복잡한 서브시스템에 대한 간편하고 제한된 인터페이스를 제공하는 구조적 디자인 패턴입니다. 여러분의 상황에서는 두 도메인 간의 연결을 추상화하여 역의존성 문제를 해결하는데 도움이 될 수 있습니다. 그러나 전체 시스템 복잡성을 고려할 때 이런 접근 방식이 반드시 최선일 필요는 없습니다. 2. 실무에서 파사드 패턴은 흔히 사용됩니다. 각 도메인 로직에 대한 단일 진입점을 제공하여 유지보수, 확장성, 가독성 등에서 이점이 있기 때문입니다. 그러나 이는 평가 기준에 따라 다르며, 모든 상황에 적합하지 않을 수 있습니다. 3. 파사드 패턴 외에도 연관관계 및 역의존성 문제를 해결하기 위한 다양한 방법들이 있습니다: - **적당한 계층화**: 코드를 적절하게 계층화함으로써 의존성과 복잡도를 관리할 수 있습니다. 데이터 접근, 비즈니스 로직, 사용자 인터페이스 등의 별도 계층을 생성하면 각 계층별로 의존성을 관리하는 데 도움이 됩니다. - **DTO(Data Transfer Object)**: 서비스 간 데이터 교환을 위해 DTO를 사용하면 시스템 전반의 결합도를 줄일 수 있습니다. - **Dependency Injection (DI)**: 객체가 필요로 하는 의존성을 외부에서 주입하는 방식으로, 코드의 결합도를 낮추는데 도움이 됩니다. - **Mediator Pattern**: 중개자 패턴은 '객체들 사이의 상호작용을 캡슐화하여 객체들이 직접 참조하지 않도록 함'으로써 복잡한 연관 관계나 역의존성 문제를 해결하는 방법입니다. 상황에 따라 선택해야 하는 패턴과 접근법이 다르므로, 여러분의 프로젝트 요구사항 및 기대 결과에 가장 적합한 방법을 선택하시기 바랍니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!