requires
읽는 module
package의 public만으로는 다른 module에서 읽을 수 있는지와 service provider를 알 수 없습니다.
읽는 module
compile-time public package
runtime reflection package
service consumer
service implementation
핵심: descriptor가 compile·runtime module graph의 허용 관계를 명시합니다.