exports와 opens는 접근 시점과 목적이 다르다

reflection 오류를 없애려고 open module로 모든 package를 열면 강한 캡슐화가 사라집니다.

exports api

compile/runtime 일반 public 접근 · 내부 member는 차단

opens model to framework

지정 module의 runtime deep reflection만 허용

핵심: 일반 API는 exports, 특정 framework의 deep reflection은 qualified opens로 최소화합니다.