10 라이브러리와 모듈

winA·2025년 7월 1일

BE/Java

목록 보기
12/16

💛 라이브러리

프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것

일반적으로 .jar 형태로 존재하고, JAR 파일에는 클래스와 인터페이스의 바이트코드 파일(.class)들이 압축돼있다.

특정 클래스와 인터페이스가 여러 응용프로그램을 개발할 때 공통으로 자주 사용된다면 JAR파일로 압축해서 라이브러리로 관리하는 것이 좋다.

💛 모듈

패키지 관리 기능까지 포함된 라이브러리는 Java9부터 지원한다. 모듈은 일부 패키지를 은닉하여 접근할 수 없게끔 할 수 있다.

의존 모듈을 모듈 기술자(module-info.java)에 기술할 수 있어 모듈 간 의존 관계를 파악하기 쉽다.

대규모 응용 프로그램은 기능별로 모듈화해서 개발, 재사용성 및 유지보수에 유리하다.

💛 응용프로그램 모듈화

모듈화

응용프로그램을 기능별로 서브 프로젝트(모듈)로 쪼갠 다음 조합해서 개발

응용프로그램의 규모가 클수록 협업과 유지보수 측면에서 모듈화에 유리하다. 다른 응용프로그램에서도 재사용이 가능하다.

💛 모듈 배포용 JAR 파일 생성

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

💛 패키지 은닉

모듈은 모듈 기술자에서 exports 키워드를 사용해 내부 패키지 중 외부에서 사용할 패키지를 지정한다.

exports되지 않은 패키지는 자동적으로 은닉한다.

한 가지 패키지로 모듈 사용 방법을 통일한다. 다른 패키지를 수정하더라도 모듈 사용 방법이 바뀌지 않아 외부에 영향을 주지 않는다.

💛 전이 의존

💛 집합 모듈

여러 모듈을 모아놓은 모듈

자주 사용되는 모듈들을 일일이 requires하지 않아 편리하다. 집합 모듈은 자체적인 패키지를 가지지 않고, 모듈 기술자에 전이 의존 설정만 한다.

💛 리플렉션 허용

리플렉션

실행 도중에 타입(클래스, 인터페이스 등)을 검사하고 구성 멤버를 조사하는 것

은닉된 패키지는 기본적으로 다른 모듈에 의해 리플렉션을 허용하지 않는다. 모듈은 모듈 기술자를 통해 모듈 전체 또는 지정된 패키지에 대해 리플렉션을 허용할 수 있고, 특정 외부 모듈에서만 리플렉션을 허용할 수 있다.

💛 자바 표준 라이브러리

JDK가 제공하는 표준 라이브러리는 Java9부터 모듈화 됐다.

응용프로그램을 실행하는데 필요한 모듈만으로 구성된 작은 사이즈의 자바 실행 환경이다.

0개의 댓글