JAVA · 기초 문법
모듈 시스템(JPMS) 심화
Java 9+의 모듈 시스템으로 패키지를 캡슐화하고 의존성을 명시합니다.
기초 문법중급moduleJPMSexportsrequires
핵심 설명
Java 9+의 모듈 시스템으로 패키지를 캡슐화하고 의존성을 명시합니다.
Java code
// module-info.java (com.example.core 모듈)
// module com.example.core {
// exports com.example.core.api; // 공개 패키지
// exports com.example.core.model;
// // com.example.core.internal은 비공개
//
// requires java.logging; // 의존 모듈
// requires transitive java.sql; // 전이적 의존
//
// provides com.example.core.api.Service
// with com.example.core.internal.ServiceImpl;
// }
// 공개 API
package com.example.core.api;
public interface Service {
String process(String input);
}
// 내부 구현 (외부 접근 불가)
package com.example.core.internal;
import com.example.core.api.Service;
public class ServiceImpl implements Service {
@Override
public String process(String input) {
return input.toUpperCase();
}
}학습 팁
requires transitive는 의존하는 모듈을 자동으로 읽기 가능하게 합니다. 라이브러리 모듈에서 유용합니다.
주의할 점
exports하지 않은 패키지는 다른 모듈에서 접근할 수 없습니다. 리플렉션도 opens 없이는 차단됩니다.
자주 묻는 질문
모듈 시스템(JPMS) 심화란 무엇인가요?
Java 9+의 모듈 시스템으로 패키지를 캡슐화하고 의존성을 명시합니다.
모듈 시스템(JPMS) 심화 학습 시 주의할 점은 무엇인가요?
exports 하지 않은 패키지는 다른 모듈에서 접근할 수 없습니다. 리플렉션도 opens 없이는 차단됩니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.