[java] Jigsaw 모듈의 자동화 테스트와 CI/CD 연동 방법

Jigsaw는 Java 9부터 도입된 모듈 시스템으로, 애플리케이션을 더 작은 단위로 분리하여 유지보수와 확장성을 향상시킬 수 있습니다. 이는 개발자에게 많은 이점을 제공하지만, 모듈화된 애플리케이션의 자동화 테스트와 CI/CD 연동을 구축하는 것은 새로운 도전이 될 수 있습니다.

이 글에서는 Jigsaw 모듈을 자동화 테스트하기 위한 일반적인 아키텍처와 CI/CD 연동 방법을 알아보겠습니다.

JUnit과 같은 테스트 프레임워크를 활용

Jigsaw 모듈을 테스트하기 위해서는 JUnit과 같은 테스트 프레임워크를 활용하는 것이 좋습니다. JUnit은 Java의 표준 테스트 프레임워크로서, 모듈 간의 의존성을 관리하여 테스트를 실행할 수 있습니다.

module com.example.module {
    requires org.junit.jupiter.api;
    requires com.example.anothermodule;

    exports com.example.module;
}

위의 코드에서는 com.example.module 모듈에서 org.junit.jupiter.apicom.example.anothermodule 모듈을 사용하고 있음을 선언하고 있습니다. 이렇게 선언된 모듈들은 테스트를 실행할 때 필요한 모듈들입니다.

테스트 자동화 스크립트 작성

테스트 자동화 스크립트를 작성하여 모듈을 테스트하는 것은 매우 중요합니다. 자동화된 테스트는 개발자와 QA 팀이 손쉽게 테스트를 실행하고 결과를 확인할 수 있도록 도와줍니다.

스크립트 예시를 살펴보면 다음과 같습니다.

#!/bin/bash

# 모듈 빌드
javac --module-source-path src -d out $(find src -name "*.java")

# 테스트 실행
java --module-path out -m com.example.module/com.example.module.ModuleTest

위의 스크립트는 src 폴더에 있는 소스 코드를 사용하여 com.example.module 모듈을 빌드하고, com.example.module.ModuleTest를 실행합니다. 테스트 결과는 콘솔에 표시됩니다.

CI/CD 연동 방법

CI/CD(Continuous Integration / Continuous Deployment)는 애플리케이션의 지속적인 통합과 배포를 가능케 하는 방법입니다. Jigsaw 모듈의 CI/CD 연동은 일반적인 Java 프로젝트와 유사하게 설정할 수 있습니다.

  1. CI 도구를 선택하고 애플리케이션의 소스 코드를 저장소에 연동합니다. 예를 들어, GitHub을 사용한다면 GitHub Actions을 이용할 수 있습니다.
  2. CI 스크립트를 작성하여 소스 코드를 빌드하고 테스트를 실행하는 작업을 자동화합니다. 이때 이전에 작성한 테스트 자동화 스크립트를 활용할 수 있습니다.
  3. CI 도구를 구성하여 테스트 결과의 통과 여부에 따라 빌드 품질을 판단하고, 필요에 따라 팀 멤버에게 알림을 보냅니다.
  4. CD 도구를 선택하고 작성한 코드를 배포하기 위한 설정을 구성합니다. 예를 들어, Docker와 Kubernetes를 사용하여 컨테이너 기반의 배포를 구성할 수 있습니다.

결론

Jigsaw 모듈은 애플리케이션의 모듈화를 통해 개발자에게 많은 장점을 제공합니다. 테스트 자동화와 CI/CD 연동을 통해 개발 프로세스를 더욱 효율적으로 만들 수 있습니다. 위에서 소개한 방법을 활용하여 Jigsaw 모듈의 자동화 테스트와 CI/CD 연동을 구축해 보세요.


참고문헌: