Inflearn Community Q&A
MemberService의 인터페이스를 왜 사용하는지 궁금합니다.
Written on
·
31
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
서비스는 복잡한 규칙(비즈니스 로직)을 계산하고 판단 한다고 생각되는데 왜 이건 역할과 구현체를 나눌까요?
지금까지 설명으로 봤을때 다형성의 의미는 사실 저장소에 국한되서 설명이되고 있는것 같아서요.
저장소 자체는 외부랑 소통하는 통로로써 db일지 다른 외부 시스템 연동일지에 따라 어떤 구현체를 사용할지 모르니 사용한다고 쳐도
서비스 비즈니스 계층에서는 로직을 변경하는거지 어떤 다른 구현체가 있지는 않아서 굳이 분리하는 이유가 궁금합니다.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. 조성경님.
서비스 계층에서 인터페이스를 사용하는 이유는 주로 확장성과 유연성에 있습니다. 다음은 그 이유에 대한 몇 가지 설명입니다:
확장성: 서비스를 인터페이스로 구현하면 새로운 비즈니스 로직이 필요할 때 기존 코드를 수정하지 않고 새로운 구현체만 추가하면 됩니다. 이는 시스템을 확장할 때 유리합니다.
유연성 및 테스트 용이성: 다른 구현체를 적용할 수도 있으며, 이를 통해 테스트 시에 모의 객체(Mock Object)를 사용할 수 있습니다. 즉, 테스트 용이성이 증가합니다.
역할과 구현의 분리: 이는 디자인 패턴의 일환으로 서비스의 역할과 구현을 분리하게 되면 서비스는 그 역할에 집중하게 되고, 구현체는 다양한 구현을 가능하게 합니다. 즉, 비즈니스 로직이 변하지 않는 역할이 있다면 이를 인터페이스로 정의하고, 다양한 구현이 가능하도록 하는 것입니다.
유지보수의 편리함: 비즈니스 로직이 변경되면 기존의 인터페이스를 유지한 채로 새로운 규칙만 구현체에 추가하면 되므로 코드를 유지보수하기가 수월합니다.
유사한 질문들에 대한 답변을 통해 더 많은 힌트를 얻으실 수 있습니다:
이 외에도 더 깊이 이해하고 싶으신 경우 아래의 관련 질문 링크들을 참고해주세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





