자바 모듈

yanju·2022년 11월 7일
0
post-thumbnail

모듈이란

모듈화는 패키지보다 더 높은 수준의 묶음을 제공한다.

재사용할 수 있는 패키지들을 묶은 것을 말한다.

다음은 모듈 요소이다.

  • 고유한 이름을 가진 재사용 가능한 관련 패키지
  • 리소스 (이미지, XML 파일)
  • 모듈 기술자가 지정하는 내용

모듈 기술자

모듈 기술자는 다음을 설명한다.

  • 해당 모듈의 이름
  • 해당 모듈의 종속성
  • 다른 모듈이 명시적으로 해당 모듈을 사용할 수 있도록 만드는 패키지
  • 해당 모듈이 제공하는 서비스
  • 해당 모듈이 사용하는 서비스
  • 리플렉션을 허용하는 다른 모듈

모듈화가 필요한 이유

  • 신뢰성
    • 모듈화는 컴파일 타임, 런타임 모두에서 모듈 간의 종속성을 인식한다.
    • 시스템은 종속성을 통해 앱에 필요한 모듈을 결정할 수 있다.
  • 강한 캡슐화
    • 모듈 내 패키지는 모듈이 명시적으로 내보내는 경우에만 다른 모듈에서 접근할 수 있다.
    • 이는 공격자가 접근할 수 있는 클래스가 적어져서 보안이 향상된다.
  • 확장성
    • 이전 자바 버전에는 엄청난 수의 패키지로 구성되어서 개발, 유지, 발전에 어려움을 겪었다.
    • 현재는 여러 모듈로 나눠져 있고 원할 경우 모듈을 새로 만들거나 추가할 수 있다.
  • 무결성
    • 자바 9 이전에 앱에서 의도치 않은 많은 클래스를 사용할 수 있었다.
    • 모듈화를 통해 이러한 내부 API는 실제로 캡슐화 되어 앱에서 숨겨진다.
  • 성능
    • JVM은 필요한 필수 유형이 특정 모듈에만 있다는 것을 미리 알고 있을 때 효과적으로 최적화할 수 있다.

참고

https://www.oracle.com/corporate/features/understanding-java-9-modules.html

http://www.soen.kr/book/java/book/14-3.htm

0개의 댓글