[java] Jigsaw 모듈과 데이터베이스 연동 방법

이번 글에서는 Java의 Jigsaw 모듈 시스템과 데이터베이스를 연동하는 방법에 대해 알아보겠습니다.

Jigsaw 모듈 시스템 소개

Jigsaw 모듈 시스템은 Java 9에서 도입된 기능으로, 애플리케이션을 여러 개의 모듈로 나누어 개발하고 관리할 수 있게 해줍니다. 이는 애플리케이션의 소스 코드와 의존 관계를 모듈 단위로 명시하고, 런타임에서 필요한 모듈만 로드하여 메모리와 성능을 최적화할 수 있는 장점이 있습니다.

데이터베이스 연동을 위한 모듈 생성

데이터베이스 연동을 위해 필요한 모듈을 만들어보겠습니다. 먼저, 새로운 디렉토리를 생성하고 해당 디렉토리로 이동합니다.

$ mkdir database
$ cd database

그리고 module-info.java라는 파일을 생성합니다.

module database {
    requires java.sql;
    // 다른 모듈에 의존할 경우 requires 구문을 추가합니다.
}

위와 같이 requires java.sql 구문을 추가하면, 해당 모듈이 Java의 표준 라이브러리인 java.sql 모듈에 의존함을 나타냅니다.

데이터베이스와의 연결 설정

이제 데이터베이스와의 연결 설정을 위한 클래스를 작성해보겠습니다. database 패키지를 생성하고, 그 아래에 DatabaseConnector 클래스를 만듭니다.

package database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnector {
    private final String url;
    private final String username;
    private final String password;

    public DatabaseConnector(String url, String username, String password) {
        this.url = url;
        this.username = username;
        this.password = password;
    }

    public Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, username, password);
    }
}

위의 코드는 DatabaseConnector 클래스를 정의하고, 생성자를 통해 데이터베이스 연결에 필요한 URL, 사용자명, 암호를 전달받습니다. getConnection() 메소드를 호출하면, DriverManager.getConnection() 메소드를 통해 실제로 데이터베이스와의 연결을 수행합니다.

모듈 사용

이제 데이터베이스 모듈을 다른 모듈에서 사용할 수 있도록 설정해보겠습니다. 다른 모듈의 module-info.java 파일에 다음과 같이 requires 구문을 추가합니다.

requires database;
// 다른 모듈에 의존할 경우 requires 구문을 추가합니다.

이제 다른 모듈에서 DatabaseConnector 클래스를 사용할 수 있게 됩니다. 예를 들어, com.example.app 모듈에서 다음과 같이 DatabaseConnector를 이용하여 데이터베이스 연결을 수행할 수 있습니다.

package com.example.app;

import database.DatabaseConnector;

public class App {
    public static void main(String[] args) {
        DatabaseConnector connector = new DatabaseConnector("jdbc:mysql://localhost:3306/mydb", "username", "password");
        try {
            Connection connection = connector.getConnection();
            // 데이터베이스 연결 성공
        } catch (SQLException e) {
            // 데이터베이스 연결 실패
        }
    }
}

위의 예시에서는 DatabaseConnector 클래스를 통해 데이터베이스 연결을 시도하고, 예외 처리를 통해 연결의 성공 또는 실패를 처리합니다.

결론

이번 글에서는 Java의 Jigsaw 모듈 시스템을 사용하여 데이터베이스와 연동하는 방법에 대해 알아보았습니다. Jigsaw 모듈 시스템을 이용하면 애플리케이션의 모듈화가 가능해지고, 필요한 모듈만 로드하여 성능을 향상시킬 수 있습니다. 적절히 모듈을 개발하고 의존성을 설정하여 데이터베이스와의 연결을 간편하게 구현해보세요. ```