C10

0

이것이 자바다

목록 보기
8/18
post-thumbnail

라이브러리

프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것을 말한다. JAR파일 안에는 클래스와 인터페이스의 바이트코드 파일들이 압축되어 있다.

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

모듈

Java9부터 지원하는 모듈은 패키지 관리 기능까지 포함된 라이브러리이다. 일반 라이브러리는 내부에 포함된 모든 패키지에 외부 프로그램에서의 접근이 가능하지만, 모듈은 일부 패키지를 은닉하여 접근할 수 없게끔 할 수 있다.

대규모 응용프로그램은 기능별로 모듈화해서 개발할 수도 있다. 모듈별로 조립하는 방식을 사용하면 재사용성 및 유지보수에 유리하기 때문이다.

패키지 은닉

모듈은 모듈 기술자(module-info.java)에서 exports 키워드를 사용해 내부 패키지 중 외부에서 사용할 패키지를 지정한다. exports되지 않은 패키지는 자동적으로 은닉된다.

전이 의존

my_application_2 프로젝트와 my_module_a, my_module_b 모듈의 의존 관계는 아래와 같다. my_application_2는 직접적으로 두 모듈을 requires하고 있기 때문이다.

집합 모듈

집합 모듈은 여러 모듈을 모아놓은 모듈을 말하며 자주 사용되는 모듈들을 일일이 requires하는 번거로움을 피하고 싶을 때 집합 모듈을 생성하면 편리하다. 집합 모듈은 자체적인 패키지를 가지지않고 , 모듈 기술자에 전이 의존 설정만 한다.

리플렉션 허용

은닉된 패키지는 기본적으로 다른 모듈에 의해 리플렉션을 허용하지 않는다. 리플렉션이란 실행 도중에 타입을 검사하고 구성 멤버를 조사하는 것을 말한다. 경우에 따라서는 은닉된 패키지라도 리플렉션을 허용해야 할 때가 있는데, 모듈은 모듈 기술자를 통해 모듈 전체 또는 지정된 패키지에 대해 리플렉션을 허용할 수 있고, 특정 외부 모듈에서만 리플렉션을 허용할 수도 있다.

open module 모듈명{ 
...
} //모듈 전체를 리플렉션 허용

module 모듈명 { 
...
	opens 패키지1;
    opens 패키지2;
} //지정된 패키지에 대해 리플렉션 허용

module 모듈명 {
...
	opens 패키지1 to 외부모듈명, 외부모듈명, ...;
    opens 패키지2 to 외부모듈명;
} // 지정된 패키지에 대해 특정 외부 모듈에서만 리플렉션 허용

export된 패키지는 언제든지 리플렉션이 가능하므로 opens로 지정할 필요가 없다. opens로 지정할 필요가 없다. opens는 은닉된 패키지 중에서 특정 패키지에 대한 리플렉션을 허용한다.

자바 표준 모듈

자바 프로그램이라면 반드시 활용해야 하는 라이브러리가 있다. 바로 JDK가 제공하는 표준 라이브러리이다.

확인문제

1. 2

2. 3

3. 3

4. 4

5. 2

0개의 댓글

관련 채용 정보