inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 9부터 자바 21까지

1강. 자바 9와 자바 플랫폼 모듈 시스템

JPMS을 사용하면 빌드 툴 없이 모듈 구성이 가능하다

해결된 질문

301

티벳로보

작성한 질문수 49

0

강사님 안녕하세요 !

자바 9 모듈 학습을 하다가 의문점이 생겨서 질문을 드립니다.

JPMS을 사용하면 빌드 툴 없이 모듈 구성이 가능하다라는 말이 잘 이해가 되지 않습니다.

plugins {
    id 'java-library'
}

group = 'com.example'
version = '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    api(project(":domain"))
    testImplementation platform('org.junit:junit-bom:5.10.0')
    testImplementation 'org.junit.jupiter:junit-jupiter'
}

test {
    useJUnitPlatform()
}


이렇게 build.gradle 파일 내에 추가로 설정을 해야 접근이 가능하게 되는데 이거는 gradle 빌드를 사용한게 아닌건가요 ?

testImplementation platform('org.junit:junit-bom:5.10.0')

이렇게 maven을 통해서 가져오는 게 아니라서 빌드툴을 사용하지 않았다고 이해하면 될까요?

java

답변 1

1

최태현

안녕하세요! kamser님! 🙂

정말 좋은 질문 감사드립니다.

 

결론부터 말씀드리면, build.gradle 를 사용하게 되면 빌드 툴을 사용한게 맞습니다!

제가 말씀드린 "JPMS를 사용하면 빌드 툴 없이 모듈 구성이 가능하다"는 의미는 다음과 같은 의미에 가깝습니다! 🙂

  • 빌드툴을 사용하지 않는다고 가정하면, JPMS가 있기 전에는 두 jar 파일을 classpath에 인식시켜 놓는 것만으로도 서로 클래스를 가져다 사용할 수 있었습니다.

    • (역설적으로 빌드 툴은 각각의 모듈이 서로 인식할 수 있도록 물리적인 위치를 조정해주는 역할을 자동으로 해주죠! 👍)

  • 하지만 빌드툴을 사용하게 되면, JPMS를 이용해 서로 다른 두 jar 간의 다양한 관계를 설정하거나, 하위 jar 안의 어떤 패키지만을 노출할지 정할 수 있습니다.

 

jdk를 예로 보시면 편합니다!

https://github.com/openjdk/jdk

jdk에서는 gradle이나 maven 같은 빌드 툴을 사용하고 있지 않지만, 각각의 모듈을 module-info.java로 설정해준 덕분에 모듈 시스템을 적절히 이용할 수 있게 되었죠.

물론 Makefile이 물리적인 연결을 도와주고는 있습니다. 👍

 

 

물론 현실적으로 애플리케이션 개발자 입장에서는 빌드툴을 사용하지 않을 일이 거의 없다고 보시면 됩니다!

다만 JDK 입장에서는 JPMS의 등장이 조금 더 큰 의미를 갖는다 라는 느낌으로 봐주시면 될 것 같습니다.

 

또 궁금하신 점 생기시면 언제든 편하게 질문 남겨주세요.

감사합니다! 🙏

0

티벳로보

감사합니다 !!

자바 프로젝트를 진행하면서 자바 21까지 자바의 feature에 대해 학습이 필요했었습니다.

너무 좋은 강의 감사합니다.

선생님 안녕하세요.

0

6

0

ttl 산정 기준

0

23

1

정처기 2026-3 실기 문의

0

77

2

정처기 실기 3회 컴싸 사용 여부

0

45

1

자바 킴쌤 클래스 기초part2.pdf파일은 어디서 받을 수 있나요?

0

30

1

오타 제보 드립니다.

0

49

2

모의고사 1 회 2번문제 중

0

63

2

26-2 이론문제 재탕

1

50

1

26-2년도 코드문제

0

35

0

26-2 코드문제

0

41

1

15분 48초 질문

0

51

2

26-1년도 이론문제 재탕

0

60

1

26-1년도 코드문제 재탕

0

43

0

이론재탕만 눈치챘어도

0

71

1

25-3년도 이론문제 재탕

0

54

1

25-3년도 코드문제 재탕

0

39

0

출력값 문의

0

50

2

잘지내시죠?

2

100

1

2강 예제 소스 실행 문의

0

164

3

12강 강의 챕터 제목에 오타가 있네요

1

183

1

14강 Map에 대해서 질문이 있습니다.

0

232

1

12강 AnimalDto에 대해서 질문이 있습니다.

1

226

1

compact constructor 질문이 있습니다.

1

237

1

2강 주요 키워드 정리 질문이 있습니다.

0

214

1