ORM을 사용하여 개발을 진행할 시, 반복되는 데이터베이스 연결 중복을 방지하기 위한 프로젝트 패키지 생성

ORM을 사용하여 개발을 진행할 시, 데이터베이스 연결이 필요한 함수마다 연결을 해줘야 한다는점에서 코드에서 비 효율적인 중복이 발생하게 됩니다.

이러한 방법을 해결하기 위해 데이터베이스에 대한 연결 정보를 가진 패키지를 생성하여 필요시마다 호출하여 사용하는 방법이 필요합니다.

예를 들어, 다음 코드와 같이 db 패키지를 생성하게 되면 각각 필요시마다 import “path/db”로 호출하여 해당 패키지의 변수에 저장되어있는 연결 되어 있는 gorm 변수를 가져와 db.Conn.REFERENCE’형식으로 사용이 가능합니다.

package db // 전역 호출을 위한 패키지

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres"
)

var (
    Conn *gorm.DB
)

func Connect(dbConn, dbConnString string) (*gorm.DB, error) {
    db, err := gorm.Open(dbConn, dbConnString)
    if err != nil {
        fmt.Println("DB Connection Fail")
        fmt.Println(err)
    } else {
        fmt.Println("DB(gorm) Connect Success")
        Conn = db
    }
    return db, err
}

func DisConnect() {
    Conn.Close()
}