단계별 예제로 설명하는 Java의 모듈화 [2022]
게시 됨: 2021-01-02Java 프로그래머가 되기 시작하면 많은 기회가 있습니다. 평균적으로 Java 프로그래머는 한 달에 약 $69,722를 벌며 이는 상당한 금액 입니다. 인도의 Java 개발자 급여에 대해 자세히 알아보세요. Java 프로그래밍 분야에서 건전한 경력을 쌓을 계획이라면 먼저 모듈화를 배워야 합니다. 그것은 현대 소프트웨어 프로그래밍의 중요한 부분 중 하나입니다. 그럼 먼저 모듈이 무엇인지 알아볼까요?
Java에서 모듈화란 무엇입니까?
모듈은 인터페이스를 통해 통신되는 소프트웨어의 독립 파티션과 비슷합니다. 모듈성은 단일 레거시 아키텍처와 다른 모듈을 사용하여 프로그램 생성을 탐구합니다. 전체 시스템이 독립 서비스 모음인 MVC 아키텍처의 마이크로서비스와 비슷합니다.
모듈화를 통해 소프트웨어 환경을 서로 다른 모듈로 분할하면 전체 프로세스가 더욱 최적화되고 결합 효과가 감소합니다. Java 개발자는 개발 프로세스가 동시에 진행되는 동안 이동 중에도 기능 테스트를 수행할 수 있습니다.
Java의 모듈화를 통해 즉시 테스트 및 디버깅을 통해 개발 시간을 단축할 수 있습니다.
이제 모듈성에 대해 알았으므로 왜 필요한지 이해해 보겠습니다.
읽기: Java 인터뷰 질문 및 답변

세계 최고의 대학 에서 소프트웨어 엔지니어링 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
Java 모듈화가 필요한 이유는 무엇입니까?
모듈화는 세 가지 방법으로 Java 개발자를 돕습니다.
재사용성: 재사용성은 개발자가 최신 버전의 소프트웨어 또는 앱을 만드는 동안 동일한 코드를 사용하여 시간을 절약하는 데 도움이 됩니다. Java의 모듈화를 통해 처음에 개발된 소프트웨어가 아닌 다른 곳에서 모듈을 재사용할 수 있습니다.
안정성: 모듈화는 코드의 개별 섹션을 변경하는 동안 소프트웨어의 안정성을 유지하는 데 도움이 됩니다. 이는 새로운 수정 사항이 소비자에게 숨겨져 있으며 기존 소프트웨어에 영향을 주지 않고 쉽게 테스트할 수 있음을 의미합니다.
병렬 개발: Java 개발자는 서로 병렬로 모듈을 빠르게 개발할 수 있습니다. 모든 모듈이 개발되면 인터페이스를 통해 결합하여 제품군을 만들 수 있습니다. 병렬 개발을 사용하면 시간을 절약할 수 있습니다.
이제 Java에서 모듈화의 다양한 측면을 살펴보겠습니다.
Java 9에서 모듈화가 도입되었지만 계산기를 만드는 간단한 예제를 통해 Java 11의 개념을 살펴보겠습니다. 소수를 확인하고 숫자가 짝수인지 아닌지에 관계없이 합계를 계산하는 간단하면서도 고급 계산기를 만들 것입니다.
1단계: 모듈 만들기
첫 번째 단계는 모듈을 만드는 것이며 복잡성에 따라 여러 모듈을 만들도록 선택할 수 있습니다. 여기에서 두 개의 고유한 모듈을 만들고 있습니다.
- 수학. 유틸리티 모듈
- 계산기 모듈
첫 번째 모듈에는 수학 계산을 실행하기 위한 API 또는 응용 프로그램 인터페이스가 있습니다. 동시에 두 번째 모듈이 계산기를 시작합니다.
2단계: 모듈 실행
com.upgrad.math.MathUtil 클래스에서 구현하여 브라우저에서 API 모듈을 실행합니다.
공개 정적 부울 isPrime(정수){
if ( 숫자 == 1 ) { 반환 거짓; }
반환 IntStream.range(2,num).noneMatch(i -> num % i == 0 );
}
함수로 모듈을 확인할 수 있습니다.
공개 정적 부울 isEven(정수){
반환 번호 % 2 == 0;
}
숫자가 짝수인지 홀수인지 확인하려는 경우 다른 기능을 실행할 수 있습니다.
공개 정적 정수 sumOfFirstNEvens(정수 개수){
반환 IntStream.iterate(1,i -> i+1)
.filter(j -> isEven(j))
.limit(카운트).sum();
}
public static 정수 sumOfFirstNOdds(정수 개수){ return IntStream.iterate(1,i -> i+1) .filter(j -> !isEven(j)) .limit(count).sum(); }

그래서 지금까지 API 모델에 대해 두 가지 기능을 실행하고 다음과 같은 관찰을 했습니다.
- 숫자 1부터 시작하는 무한 수열이 있습니다.
- 숫자 필터링이 반복됩니다.
- 숫자의 흐름은 제한적입니다.
- 숫자의 합 구하기
이러한 관찰을 기반으로 개발자는 API를 리팩토링하고 실행할 수 있습니다.
정수 computeFirstNSum(정수 개수,
IntPredicate 필터){
반환 IntStream.iterate(1,i -> i+1)
.필터(필터)
.limit(카운트).sum();
}
여기에서 개수로 제한되는 숫자의 합을 찾아야 합니다. 합산이 실행될 조건의 숫자에 대한 필터도 찾아야 합니다.
탐색한 새로운 조건을 기반으로 API를 다시 생성해 보겠습니다.
공개 정적 정수 sumOfFirstNPrimes(정수 개수){
return computeFirstNSum(count, (i -> isPrime(i)));
}
공개 정적 정수 sumOfFirstNEvens(정수 개수){ return computeFirstNSum(count, (i -> isEven(i))); }
public static 정수 sumOfFirstNOdds(정수 개수){ return computeFirstNSum(count, (i -> !isEven(i)));
API를 테스트하고 리팩토링했으므로 이제 com.upgrad.math.MathUtil 클래스를 모듈에 배치하겠습니다.
3단계: 모듈에 유틸리티 클래스 삽입
Math라는 모듈에 작은 유틸리티 클래스를 삽입하려면. util, 다음과 같은 몇 가지 규칙을 따라야 합니다.
- API 모듈과 관련된 모든 코드를 같은 이름의 디렉토리에 넣고 루트 디렉토리로 사용합니다.
- 루트 폴더에 module-info.java 삽입
- 모든 패키지와 코드를 루트 디렉터리에 배치합니다.
4단계: 계산기에 대한 모듈 정의 만들기
Math.utl을 필요로 하는 계산기 모듈을 만들 것입니다.
모듈 계산기{
math.util이 필요합니다.
}
다음과 같이 코드를 컴파일할 수 있습니다.
javac -d mods –module-source-path . $(찾기 . -이름 "*.java")
mods 디렉토리에 있는 계산기와 math.utl 모듈에서 코드를 컴파일하면 단일 명령에 이 두 모듈 간의 종속성이 포함되며 이는 컴파일러를 통해 수행됩니다. 계산기와 math.utl 간의 종속성을 만들기 위해 전용 도구를 만들 필요가 없습니다.
5단계: 코드 실행

mods 디렉토리에 모듈과 종속성이 모두 있으면 이제 코드를 실행할 시간입니다. 실행하면 간단하고 고급 계산기가 실행됩니다.
java –module-path mods -mcalculator/com.upgrad.calculator.Calculator
필독: 흥미로운 Java 프로젝트 및 주제
결론
설문 조사에 따르면 Java는 신규 채용 공고에서 두 번째로 선호하는 언어로 초보자에게 좋은 선택입니다.
Java, OOP 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육을 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
