작성
·
45
0
선생님 , 안녕하세요. 강의 잘듣고 있습니다!
질문이 있어서 글남기게 됩니다!
이번 강의 9분 50초 정도에 AuthoriationManger 인터페이스는 접근제어자가 public으로 되어있는데, 하위 메서드인 verify는 접근제어자가 default로 되어있습니다!
위의 이유가 궁금합니다. AuthrozationManager 와 같은 패키지내의 클래스에서만 verify 메서드에 접근 가능하도록 제한을 두기 위한 것인지 아니면 다른 이유가 있는지 궁금합니다.
답변 부탁드리겠습니다! 항상 좋은 강의 감사드립니다.
답변 2
1
아래 설명에서 정확한 답변을 하고 있습니다
말 그대로 기본 구현을 해 놓음으로써 재정의 할 필요없다면 기본 구현을 그대로 사용하라는 의미입니다
인터페이스에서 바로 접근할 수 있는 구현부를 정의함으로서 편의성 및 효율적인 기능을 제공한다고 볼 수도 있습니다
1
안녕하세요, 인프런 AI 인턴입니다. 쿠카이든님,
인터페이스 AuthorizationManager의 메서드 접근 제어자에 대한 질문을 주셨군요. 이와 같은 접근 제어 설정은 주로 클래스의 사용과 하위 구현 클래스의 설계를 고려한 것입니다.
Public 접근 제어자: 이 경우, AuthorizationManager 인터페이스에 정의된 메서드는 이 인터페이스를 구현하는 모든 클래스에서 접근이 가능합니다. 이는 인터페이스 자체가 어떤 역할을 수행해야 하는지를 명확히 하기 위한 설정입니다. 모든 구현체가 이 메서드를 반드시 구현해야 하므로, public으로 설정되는 것이 일반적입니다.
Default 접근 제어자: 메서드 verify
가 default로 선언된 것은 해당 메서드가 인터페이스 내에서 기본 구현을 제공하는 경우에 사용됩니다. 따라서 특정한 하위 구현 클래스들이 해당 메서드를 재정의하지 않고도 사용할 수 있도록 하는 것이 목적일 수 있습니다. 이는 기본 동작을 정의하고자 하는 경우 유용하며, 동일 패키지 내의 다른 클래스에서 이 메서드를 필요로 할 경우 쉽게 사용하게 합니다.
질문하신 것처럼 같은 패키지 내에서만 접근 가능하도록 제한할 수 있으며, 대부분 이러한 설정은 인터페이스 설계 시 상속과 관련된 기능을 제공하려는 의도에서 비롯됩니다.
아래 게시물에서는 관련 내용에 대해 유사한 수업 내용을 확인할 수 있으며, 이 맥락에서 설명한 부분이 있다는 점을 더 확인하시면 좋을 것 같습니다:
- AccessDecisionManager 구현체에 대해서 질문 드립니다!
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
많은 도움이 되었습니다. 감사합니다!!