eclipse modulepath vs classpath

c4fiber·2022년 3월 8일
0

결론부터 말하자면

classpath에 있는 코드들은 모두 "unnamed" 모듈에 속해있다.

modulepath에 있는 코드들은 각자 "name"을 가지고 있다.


Module vs Package

module은 최상위 패키지라고 생각하면 된다.

module 또한 package들의 모음이며 packages의 top에 설치된다.

module have encapsulation & contract

  • 모듈은 내부가 숨겨져 있음(캡슐화)
  • 모듈은 계약관계를 가진다 (코드가 예상대로 작동할 것이라는 보증이 있다)

(두번째 계약관계가 좀 애매모호 한데, package를 가져다 쓸 경우 해당 패키지에 개발자가 관여할 수 있어서 보증(guarantee)할 수 없다고 이해했다)

마치 method를 호출하는것 처럼 모듈을 만들어 호출하여 사용한다. (나는 일종의 interface를 통해 접근하는것과 유사하다고 생각했다.)

출처:
https://softwareengineering.stackexchange.com/questions/311280/why-are-packages-and-modules-separate-concepts-in-java-9

https://stackoverflow.com/questions/50321602/in-eclipse-what-is-the-difference-between-modulepath-and-classpath


사실 결론을 내기에는 애매모호한 부분이 많고, 이해하기 어려웠지만 단순하게 생각하자면
module은 "필요한 패키지들만 모아, 캡슐화하여 정상적인 작동을 보증한다"를 목표로 설계한 것으로 해석했다.

모듈에 대해 자세한 내용은 좋은 블로그를 찾아 링크한다.
https://daily-life-of-bsh.tistory.com/129

profile
amazing idiot

0개의 댓글