Programing Language/Java

[Java] 자바의 라이브러리와 모듈(Java Library & Module)

vinedpillar 2022. 7. 18. 01:21

자바의 라이브러리(Library)

  • 라이브러리는 프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것을 뜻합니다.

  • 일반적으로 JAR 압축 파일로 존재하며, 클래스, 인터페이스, 바이트코드 파일 들이 압축되어 있습니다.

  • 특정 클래스와 인터페이스가 여러 응용프로그램을 개발할 때 공통으로 자주 사용된다면 JAR 파일로 압축하여 라이브러리로 관리하는 것이 좋습니다.
    (해당 기능은 IDE에서 지원하기도 함)

  • 프로그램 개발 시 라이브러리를 이용하려면 JAR 파일을 ClassPath에 추가해야 합니다.

  • ClassPath란 클래스를 찾기 위한 경로를 뜻하며, ClassPath에 라이브러리를 추가할 수 있는 방법은 3가지가 있습니다.
    • 콘솔에서 java 명령어 실행 중 -classpath 옵션을 통해 추가
    • CLASSPATH 환경변수에 경로를 추가
    • IDE에서 프로젝트의 Build Path에 추가

 

 

 

자바의 모듈(Module)

  • 자바 9부터 지원하는 모듈은 패키지 관리 기능까지 포함된 라이브러리입니다.

  • 일반 라이브러리는 외부 프로그램에서 내부에 포함된 모든 패키지로의 접근이 가능합니다.

  • 또한 모듈은 패키지를 은닉하여 접근할 수 없도록 제어할 수 있습니다.

  • 모듈은 자신이 실행 할 때 필요로 하는 의존 모듈을 모듈 기술자(module-info)에 기술 할 수 있어 의존 관계를 쉽게 파악할 수 있습니다.

  • 모듈도 라이브러리이기 때문에 JAR파일로 배포할 수 있습니다.

  • 응용 프로그램은 하나의 모듈의 집합이기 때문에, 일정 단위로 나누거나 조합하여 완성할 수 있습니다.

  • 응용 프로그램의 규모가 커질수록 서브 모듈로 쪼개어서 개발하는 것이 유지 보수나 재사용성에서 유리합니다.

 

 

 

배포용 모듈 파일 생성

  • 모듈을 다른 모듈에서 쉽게 사용할 수 있도록 바이트코드(.class)로 구성된 배포용 JAR 파일을 생성할 수 있습니다.

  • 이 경우 의존 관계에 있는 모듈을 모듈 기술자에서 설정해줄 필요가 있습니다.

  • 파일 생성은 CLI이나 IDE를 통해 생성할 수 있습니다.