diff --git a/.gitignore b/.gitignore index c426c32..5ded82a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.env + .gradle build/ !gradle/wrapper/gradle-wrapper.jar diff --git a/build.gradle.kts b/build.gradle.kts index 7777f1f..77bf063 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -43,6 +43,9 @@ dependencies { // HikariCP (커넥션 풀) implementation("com.zaxxer:HikariCP:5.0.1") + // env + implementation("io.github.cdimascio:dotenv-kotlin:6.4.0") + implementation("com.h2database:h2:$h2_version") implementation("io.ktor:ktor-server-openapi") implementation("io.ktor:ktor-server-auth-jvm") diff --git a/src/main/kotlin/example/com/Application.kt b/src/main/kotlin/example/com/Application.kt index d545f1e..37cc46e 100644 --- a/src/main/kotlin/example/com/Application.kt +++ b/src/main/kotlin/example/com/Application.kt @@ -2,15 +2,49 @@ package example.com import example.com.plugins.* import io.ktor.server.application.* +import io.ktor.server.netty.* +import com.zaxxer.hikari.HikariConfig +import com.zaxxer.hikari.HikariDataSource +import io.github.cdimascio.dotenv.dotenv +import org.jetbrains.exposed.sql.Database fun main(args: Array) { - io.ktor.server.netty.EngineMain.main(args) + EngineMain.main(args) } fun Application.module() { + // 데이터베이스 설정을 여기서 초기화 + configureDatabase() + + // 다른 설정들 configureSerialization() - configureDatabases() configureHTTP() configureSecurity() configureRouting() } + +fun Application.configureDatabase() { + val dotenv = dotenv() + + val dbUrl = dotenv["DB_URL"] ?: "jdbc:postgresql://localhost:5432/defaultdb" + val dbUser = dotenv["DB_USER"] ?: "defaultuser" + val dbPassword = dotenv["DB_PASSWORD"] ?: "defaultpassword" + + val hikariConfig = HikariConfig().apply { + jdbcUrl = dbUrl + driverClassName = "org.postgresql.Driver" + username = dbUser + password = dbPassword + maximumPoolSize = 10 + } + + try { + val dataSource = HikariDataSource(hikariConfig) + Database.connect(dataSource) + // 연결 성공 시 로그 출력 + environment.log.info("Database connected successfully! : $dbUrl") + } catch (e: Exception) { + // 연결 실패 시 오류 로그 출력 + environment.log.error("Database connection failed: ${e.message}") + } +}