[자바] Class Loader에서 가시범위 원칙(Visibility Principle)이 존재하는 이유

프로그래밍/자바2021. 1. 13. 12:25

자바 클래스 로더에선 가시범위 원칙이 있습니다.

 

계층 구조로 되어있는 클래스 로더에서 하위 클래스 로더는 상위 클래스 로더가 로드한 클래스를 볼 수 있지만, 상위 클래스 로더는 하위 클래스 로더가 로드한 클래스를 볼 수 없습니다. 이를 가시범위 원칙이라고 합니다.

 

왜 이런게 필요할까요? 궁금해서 찾아봤습니다.

dzone.com/articles/demystify-java-class-loading#:~:text=Visibility%20%E2%80%93%20The%20visibility%20principle%20ensures,everything%20without%20any%20isolation%20level)

 

Visibility – The visibility principle ensures that the child class loader can see all the classes loaded by its parent. But, the inverse of that is not true, the parent can’t see the class loaded by its child (otherwise it’s like a flat class loader, loading everything without any isolation level)

 

이 원칙이 없으면 계층 구조가 없는 클래스로더가 되버리고.. 그러면 격리 레벨 없이 모든 것을 읽어와야해서 그렇다고 하네요.

클래스 로더를 계층 구조로 만들어놨기에 이런 규칙이 없으면 계층 구조가 무의미해집니다.

 

 

작성자

Posted by 드리머즈

관련 글

댓글 영역