[go] Go 언어로 데이터베이스와의 연동하기

Introduction

Go (또는 Golang)은 Google이 개발한 오픈 소스 프로그래밍 언어로, 간결하면서도 효율적인 멀티스레드 처리기능을 지원합니다. 이번 글에서는 Go 언어로 데이터베이스에 연결하고 데이터를 읽고 쓰는 방법을 살펴볼 것입니다.

Using Databases in Go

Go에서는 database/sql 패키지를 활용하여 데이터베이스에 접근할 수 있습니다. 이 패키지는 표준 SQL 데이터베이스와 상호작용하기 위한 인터페이스를 제공합니다.

Connecting to a Database

우선, Go 언어에서 데이터베이스에 접속하는 방법을 알아보겠습니다. 아래는 MySQL 데이터베이스에 연결하는 예시 코드입니다.

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer db.Close()

	err = db.Ping()
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println("Connected to the database")
}

여기서 database/sql 패키지를 이용하여 MySQL 데이터베이스에 접속합니다.

Executing Queries

데이터베이스에 접속한 뒤에는 Query 또는 Exec 함수를 사용하여 데이터를 읽거나 쓸 수 있습니다. 아래는 Go에서 데이터를 조회하는 간단한 예시 코드입니다.

rows, err := db.Query("SELECT * FROM table")
if err != nil {
	fmt.Println(err)
	return
}
defer rows.Close()

for rows.Next() {
	var id int
	var name string
	err := rows.Scan(&id, &name)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(id, name)
}

위 코드는 “table” 테이블에서 데이터를 조회하는 예시입니다.

Conclusion

Go 언어를 사용하여 데이터베이스와 상호작용하는 방법에 대해 알아보았습니다. 데이터베이스 연결과 쿼리 수행을 위한 기본적인 방법을 익혔다면, 향후 프로젝트에서 Go를 활용하여 데이터베이스를 효율적으로 다룰 수 있을 것입니다.

References