티스토리 뷰

10.1 라이브러리

  • 라이브러리: 프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것
  • 일반적으로 JAR 압축 파일에 바이트 코드들이 압축되어 있다
  • JAR파일을 classPaht에 추가해서 사용

 

10.2 모듈

  • 모듈: 패키지 관리 기능까지 포함된 라이브러리
  • 일반 라이브러리는 내부에 포함된 모든 패키지에 외부 프로그래의 접근이 가능하지만
  • 모듈은 일부 패키지를 은닉하여 접근할 수 없음
  • 모듈은 의존 모듈을 모듈 기술자에 기술할 수 있기 때문에 모듈 간의 의존 관계를 쉽게 파악 가능
  • JAR파일 형태로 배포 가능
  • 기능별로 모듈화해서 개발 가능 -> 모듈별로 갭ㄹ하고 조립하는 방식을 사용하면 재사용성 및 유지보수 ㅇ리

 

10.3 응용 프로그램 모듈화

  • 기능별로 서브프로젝트(모듈)로 쪼갠 다음 조합해서 개발 가능

 

10.4 모듈 배포용 JAR 파일

10.5 패키지 은닉

  • 모듈은 모듈 기술자에서 exports 키워드를 사요해 내부 패키지 중 외부에서 사용할 패키지를 지정
  • exports 하지 않은 패키지는 자동으로 은닉
  • 은닉하는 이유: 모듈 사용 방법 통일, 쉬운 수정 가능


10.6 전이 의존

  • transtive키워드와 함께 의존 설정

 

10.7 집합 모듈

  • 집합 모듈: 여러 모듈을 모아놓은 모듈로, 자체적인 패키지를 가지지 않고 모듈 기술자에 전이 의존 설정만 한다.

 

10.8 리플렉션 허용

  • 리플렉션: 실행 도중에 타입을 검사하고 구성 멤버를 조사하는 것
  • 경우에 따라서는 은닉된 패키지도 리플렉션을 허용해야할 때가 있음
  • 모듈은 모듈 기술자를 통해 모듈 전체 또는 지정된 패키지에 대한 리플렉션을 허용할 수 있음

 

10.9 자바 표준 모듈

 

  • JDK가 제공하는 표준 라이브러리: 자바 프로그램이 반드시 활용해야 하는 라이브러리
  • java.base: 모든 모듈이 의존하는 기본 모듈로 requires하지 않아도 사요할 수 있음
  • java.se: JDK가 제공하는 모든 모듈을 제공하는 집합 모듈이다. Java8 이전 버전과 같이 자바 표준 라이브러리를 제한 없이 사용하고 싶을 경우에는 이 모듈을 requires하면 된다.
  • 표준 라이브러리를 모듈화한 이유는 응용프로그램을 실행하는데 필요한 모듈만으로 구성된 작은 사이즈의 자바 실행 환경 (JRE)을 만들기 위해서이다. 
  • 작은 사이즈의 자바 실행 환경이 필요한 이유 1) 독립 실행형(응용프로그램+표준 라이브러리)으로 배포할 경우 표준 라이브러리 크기가 작을 수록 배포 사이즈가 줄어들고 2) 제한된 자원만 가지고 있는 소형 기기에는 사이즈가 작은 자바 실행 환경이 필요해서 이다.

 

최근에 올라온 글