[go] Go 언어에서 데이터베이스 연동 테스트 작성 방법
Go 언어는 간단하면서도 효율적인 프로그래밍을 지원하는 언어로, 데이터베이스와의 연동도 간단합니다. 이번 포스트에서는 Go 언어에서 데이터베이스(MySQL)와의 연동 및 테스트를 작성하는 방법을 알아보겠습니다.
필요한 패키지 설치
먼저 Go 언어에서 MySQL과의 연동을 위해 database/sql
과 github.com/go-sql-driver/mysql
패키지를 설치해야 합니다. 아래 명령어로 패키지를 설치합니다.
go get -u github.com/go-sql-driver/mysql
데이터베이스 연결 및 쿼리 실행
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 데이터베이스 연결
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
panic(err.Error())
}
defer db.Close()
// 쿼리 실행
rows, err := db.Query("SELECT * FROM users")
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 결과 출력
for rows.Next() {
var id int
var name string
err = rows.Scan(&id, &name)
if err != nil {
panic(err.Error())
}
fmt.Println(id, name)
}
}
위의 예시 코드는 Go 언어에서 MySQL과의 연결 및 간단한 조회 쿼리를 실행하는 방법을 보여줍니다.
테스트 작성
테스트 코드를 작성할 때는 testing
패키지를 사용하여 단위테스트 또는 통합테스트를 작성할 수 있습니다.
package main
import (
"database/sql"
"testing"
_ "github.com/go-sql-driver/mysql"
)
func TestDBConnection(t *testing.T) {
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
t.Fatalf("Error connecting to database: %s", err)
}
defer db.Close()
err = db.Ping()
if err != nil {
t.Fatalf("Error pinging database: %s", err)
}
}
위의 코드는 데이터베이스 연결을 테스트하는 예시 코드입니다.
이제, Go 언어에서 MySQL과의 데이터베이스 연동 및 테스트 작성에 대한 기본적인 내용을 살펴봤습니다. 추가적으로, ORM(Object-Relational Mapping) 라이브러리를 사용하여 더 쉽고 편리하게 데이터베이스와 연동하는 방법도 찾아보시길 권장드립니다.