[java] Jigsaw 모듈과 웹 개발 프레임워크의 통합 방법

개요

Java 9부터 도입된 Jigsaw 모듈 시스템은 애플리케이션을 모듈 단위로 나누어 개발하고 관리할 수 있게 해주는 기능입니다. 이는 애플리케이션의 코드를 더욱 모듈화시켜 유지보수와 테스트를 용이하게 만들어 주는 장점이 있습니다. 그러나 기존의 웹 개발 프레임워크와 Jigsaw 모듈 시스템을 함께 사용하는 경우에는 몇 가지 주의사항이 있습니다. 이번 글에서는 Jigsaw 모듈과 웹 개발 프레임워크의 통합 방법에 대해 알아보겠습니다.

웹 개발 프레임워크와 Jigsaw 모듈 시스템의 충돌 문제

Jigsaw 모듈 시스템은 웹 개발 프레임워크와 같은 기존의 라이브러리와 충돌할 수 있습니다. 웹 개발 프레임워크는 클래스패스를 기반으로 동작하는데 반해 Jigsaw 모듈 시스템은 모듈 경로를 사용합니다. 따라서 기존의 라이브러리를 모듈로 사용하려면 일부 변경이 필요합니다.

웹 개발 프레임워크를 Jigsaw 모듈로 변경하기

기존의 웹 개발 프레임워크를 Jigsaw 모듈로 변경하여 충돌 문제를 해결할 수 있습니다. 이를 위해 다음과 같은 단계를 따릅니다.

  1. 프로젝트를 모듈화하기 위해 module-info.java 파일을 생성합니다.
  2. module-info.java 파일에 requires 문을 사용하여 필요한 모듈을 선언합니다. 웹 개발 프레임워크와 관련된 모듈을 포함해야 합니다.
  3. 웹 개발 프레임워크와 관련된 모든 클래스를 모듈로 옮깁니다.
  4. 컴파일러 옵션에 --add-modules를 사용하여 필요한 모듈을 지정합니다.

Jigsaw 모듈과 웹 개발 프레임워크의 통합 예시 - Spring Boot

Spring Boot는 대표적인 웹 개발 프레임워크 중 하나로 알려져 있습니다. Jigsaw 모듈과 Spring Boot를 통합하는 방법을 살펴보겠습니다.

  1. 모듈화를 위해 module-info.java 파일을 다음과 같이 작성합니다.
    module com.example.myapp {
     requires spring.boot;
     requires spring.boot.autoconfigure;
     requires spring.web;
    }
    
  2. Spring Boot와 관련된 모든 클래스를 com.example.myapp 모듈로 옮깁니다.
  3. 컴파일러 옵션에서 --add-modules를 사용하여 필요한 모듈을 지정합니다.
    javac --add-modules java.se.ee com.example.myapp/module-info.java
    

결론

Jigsaw 모듈 시스템과 웹 개발 프레임워크를 통합하는 것은 일부 변경이 필요하지만, 유지보수와 테스트 등의 장점을 누릴 수 있습니다. Jigsaw 모듈로 웹 개발 프레임워크를 모듈화하고 필요한 모듈을 지정하는 것으로 충돌 문제를 해결할 수 있습니다. 이를 통해 더욱 견고하고 확장 가능한 애플리케이션을 개발할 수 있습니다.

[참고링크]