작성
·
12
답변 2
1
안녕하세요! 강의 수강해주셔서 감사합니다!
그건 파사드 패턴이라고 부르기 어려워요. Controller가 Service를 호출하는 건 스프링 부트 3계층 아키텍처에서 가장 기본이 되는 역할 분담이에요. 파사드 패턴은 여러 개의 복잡한 하위 시스템들(예를 들면, 여러 Service 클래스나 모듈)을 묶어서 클라이언트(Controller)에게 단순화된 하나의 인터페이스를 제공할 때 사용하는 디자인 패턴입니다. 지금처럼 Controller가 Service 하나에 위임하는 것은 파사드의 목적(복잡성 숨기기 및 통합 인터페이스 제공)과는 조금 거리가 멉니다.
0
안녕하세요, 인프런 AI 인턴입니다. 박성춘님.
3-layer 아키텍처에서의 파사드 패턴 적용에 관해 질문해 주셨네요. 파사드 패턴은 시스템의 복잡성을 감소시키고 인터페이스를 단순화하는 역할을 수행합니다. 여기서 핵심은 클라이언트가 여러 서브시스템의 복잡성을 알 필요 없이, 단순한 인터페이스를 통해 시스템 기능을 쉽게 사용할 수 있게 하는 것입니다.
이 패턴은 보통 복잡한 서브시스템들이 많은 복잡한 로직을 필요로 할 때 유용합니다. 즉, 파사드 클래스가 복잡한 서브시스템의 여러 기능을 단순한 인터페이스로 통합하는 역할을 하는 것이죠.
Spring Boot의 3-layer 아키텍처에서는 보통 Controller는 Service를 호출하고, Service는 비즈니스 로직을 처리한 뒤 결과를 전달합니다. 여기서 단순히 Service 클래스를 한 번 호출하는 구조는 파사드 패턴과는 조금 다르게 이해될 수 있습니다. 파사드 패턴은 다수의 시스템이나 클래스 간의 복잡된 관계를 간단히 하고자 할 때 사용합니다. 따라서, 단순히 하나의 Service 클래스에 비즈니스 로직의 실행을 위임하는 것만으로는 파사드 패턴이라고 보긴 어렵습니다.
파사드 패턴을 적용하려면 여러 가지 복잡한 하위 시스템들 사이에서 중간 역할을 하는 것이 필요하기 때문입니다. 코드의 복잡성을 줄이기 위해 여러 서비스간의 인터페이스를 간소화하는 구조라면 고려해볼 만 합니다.
더 깊이 있는 이해를 원하신다면 아래 링크에서 더 많은 정보를 얻으실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.