작성
·
131
0
[질문 내용]
MemoryMemberRepository가 MemberRepository인터페이스를 구현하기 때문에 스피링 빈(객체)는 MemoryMemberRepository클래스의 객체여야한다고 생각하는데
강의안은 이렇게 되어있는데 부모 인터페이스가 자식을 품을수 있기 때문에 그림이 이렇게 된건가요??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
님의 질문은 스프링 프레임워크에서의 빈(bean) 등록 및 컴포넌트간의 의존성 주입 메커니즘에 관련된 것으로 보입니다. 구체적으로는, 인터페이스(MemberRepository
)와 이를 구현한 클래스(MemoryMemberRepository
) 사이의 관계와 스프링 컨테이너 내에서의 객체(빈) 등록에 관한 이해를 요구하는 질문입니다.
이와 관련하여, “MemberRepository가 MemoryMemberRepository 인터페이스를 구현한다는 사실과 스프링 빈으로 MemoryMemberRepository
클래스의 객체가 등록되어야 한다는 가정 아래, 인프런 내에 유사한 상황을 설명하고 관련 개념을 해설하는 답변”을 찾았습니다.
참고할 만한 자료로는, 스프링 빈 문제 가 있습니다. 이 질문에서는 구체적인 구현체(SpringDataJpaMemberRepository
)가 아닌 인터페이스(MemberRepository
)를 스프링 빈으로 등록하는 방식과 구현체가 자동으로 연결되는 과정이 설명되어 있습니다.
강의명: 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이 답변은 스프링 컨테이너에 등록된 빈(객체)가 인터페이스 타입인 경우, 인터페이스를 구현한 실제 객체(구현체)가 어떻게 연결되는지 설명합니다. 스프링에서는 인터페이스를 통한 프로그래밍을 권장하며, 이를 통해 구현체를 변경하더라도 코드의 수정 없이 유연하게 대처할 수 있도록 합니다.
님이 제시한 상황에서, MemberRepository
인터페이스는 MemoryMemberRepository
또는 다른 구현체를 참조할 수 있습니다. 스프링이 관리하는 빈으로 등록될 때, 인터페이스 타입으로 선언함으로써 구현체에 대한 의존성을 낮추고, 필요에 따라 다른 구현체로 교체할 수 있는 유연성을 제공합니다. 이 과정에서 스프링의 의존성 주입(Dependency Injection) 기능이 큰 역할을 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.