본문 바로가기
반응형

go22

Golang mysql 사용/연동 하기 Golang에서 mysql과 연동하기 위해 "database/sql"과 "github.com/go-sql-driver/mysql" 패키지를 import 해야한다. "database/sql"은 golang의 데이터베이스 관련 인터페이스를 제공하고, DB연결, 쿼리 실행, 트랜잭션 등을 처리할 수 있다. "github.com/go-sql-driver/mysql"은 mysql DB 드라이버를 구현한 패키지다. 사용 방법 터미널에서 다음의 명령어를 사용하여 패키지를 다운로드 한다. (이미 설치가 되어 있다면 생략) go get github.com/go-sql-driver/mysql 예제 코드) DB가 이미 생성되어 있다는 가정하에 진행 package main import ( "database/sql" "fmt".. 2023. 8. 8.
Golang http package http 패키지는 golang에서 HTTP 클라이언트 및 서버를 작성하기 위해 제공되는 표준 패키지다. 이 패키지는 HTTP 요청을 보내고 응답을 받는 클라이언트와, HTTP 요청을 처리하고 응답을 보내는 서버를 구현할 수 있는 기능을 제공한다. http 패키지를 사용하여 간단한 HTTP 클라이언트나 서버를 구현할 수 있으며, 이를 통해 웹 애플리케이션을 만들 수 있다. 그렇다면 http 패키지의 주요 기능을 살펴보자. HTTP 클라이언트(Client): http 패키지는 HTTP 클라이언트를 생성하고, GET, POST, PUT, DELETE 등의 HTTP 요청을 생성하고 보낼 수 있다. 또한, 클라이언트는 응답을 받아서 처리할 수 있다. 클라이언트는 네트워크 요청과 응답을 처리하는데 유용한 기능들을 .. 2023. 8. 8.
Golang 난수 생성(math/rand) Go를 사용하여 난수를 발생하기 위해서는 `math/rand` 패키지와 `time` 패키지를 사용한다. `time` 패키지를 사용하는 이유는 `time.Now().UnixNano()` 함수를 사용하여 현재 시간을 기반으로 난수 시드를 생성할 수 있다. 이를 통해서 매번 다른 시드 값으로 난수를 생성할 수 있다. 다음의 예제는 1부터 10까지 숫자 중 난수를 생성하는 예제이다. package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) randomNumber := rand.Intn(10) + 1 fmt.Println(randomNumber) } `rand.Seed()` 함수를 사용하여 현재 시간.. 2023. 6. 30.
디스코드가 Go 대신 Rust로 전환하는 이유 요약: Go GC 성능 이슈 출처: https://discord.com/blog/why-discord-is-switching-from-go-to-rust Why Discord is switching from Go to Rust discord.com Go gc가 디스코드에서 많은 부하를 유발하는 요소 중 하나인데, gc가 자동으로 메모리를 관리하지만, 디스코드에서는 큰 메모리 할당과 수백만 개의 작은 객체가 동시에 발생하는 경우에 문제가 발생하였음. 이거 때문에 일시적인 렉이나 성능 저하가 발생함. 약 3년전 글이지만(뒷북) `rust가 go보다 더 좋다`는 것은 아니며(언어는 목적과 장점에 따라 선택하는 것이 좋음), 주의 깊게 살펴볼 필요가 있어서 블로그에 글을 작성함. 2023. 6. 14.
반응형