본문 바로가기

golang9

Go-git / golang, git client, 깃, github go-git Go를 사용하면서 git-client가 필요할 때 사용하는 라이브러리 https://github.com/go-git/go-git GitHub - go-git/go-git: A highly extensible Git implementation in pure Go. A highly extensible Git implementation in pure Go. - GitHub - go-git/go-git: A highly extensible Git implementation in pure Go. github.com pure Go 로 되어있어서 빠르고, 가벼운 것이 장점그 외에도 Docs, examples가 잘 설명되어있고 go git client중 가장 대중적임근데 아직 다른 언어생태계에 비해 기능지.. 2023. 3. 19.
Golang ORM SQLBoiler / Go, DB, ORM https://dev-chicken.tistory.com/49 Golang ORM library / gorm, xorm, sqlboiler, 비교 백엔드를 개발하다 보면 적절한 ORM library 선정도 중요하다. Golang을 공부하고 있기 때문에, Golang ORM을 선정해야해서 공부를 해봤는데, 각각 장단점이 있는 것 같아서 찾아 정리해봤다. 예전에 gorm dev-chicken.tistory.com 에 이어서 SQLBoiler에 대해 공부를 해봐야겠다는 생각이 확실해져서, 좀 더 탐구해봤다. 사실 golang을 공부하거나 개발하다보면 ORM선택에 있어서 큰 고민이 되는데.. sqlx 또는 SQLBoiler를 쓰는게 대세이고 퍼포먼스, 개발 등에 있어서 기존에 존재하는 타 ORM에 비해 장점이 .. 2023. 3. 3.
Golang ORM library / gorm, xorm, sqlboiler, 비교 백엔드를 개발하다 보면 적절한 ORM library 선정도 중요하다. Golang을 공부하고 있기 때문에, Golang ORM을 선정해야해서 공부를 해봤는데, 각각 장단점이 있는 것 같아서 찾아 정리해봤다. 예전에 gorm을 사용했을 때는, 당시에 가장 많이 쓰여서 사용했었던 기억이 있다. 현재에도 가장 많이 사용하는 듯 찾아보면 장점은 열심히 README에 적어두고 단점은 잘 안적는 듯 그래서 찾아봤다. GORM Star나 Fork의 갯수로 라이브러리를 평가하는 것은 적합한 방식은 아니지만.. 참고용으로 둘러보곤 한다. 다른 라이브러리에 비해 Fork, Star수가 가장 많고 최근까지 꾸준하게 commit이 되는 것 같다. 장점 - preloading, Join, callbacks, plugin, RD.. 2023. 2. 19.
Golang Gin Graceful restart, stop / golang, go, 고랭, 고, 언어 Graceful restart, stop은 gin framework에서만 사용하는 것이 아니라, 모든 프로세스에 적용이 가능한 작업이다. Graceful은 말그대로 우아한 종료, 재시작의 의미인다. 프로그래밍적으로 보자면 Network의 관점에서 보면 될 것 같다. - client에서 server로 요청이 들어와서 server에서 아직 처리 중 일때 - client와 server간 keep-alive나 websocket같은 protocol로 연결이 유지되고 있을 때 앞선 상황에서 서버가 강제로 종료되거나 재시작 된다면 client입장에서는 정상적인 response를 받을 수 없게 된다. 이럴 때 필요한 것이 graceful restart, stop이다. Golang Gin Graceful restart,.. 2023. 2. 16.
Golang Gin Middleware / golang, go, 고랭, 고, 언어, 미들웨어 Golang Router에 이어서 다음으로 살펴볼 예시는 Middleware이다. http request/response 중간에서 매개역할을 해주는 것으로 보면 된다. 중간에서 인증, 트래픽관리, 자동화 등을 통해 full로 받는 서버의 부담을 줄여주는 역할 Golang Gin Middleware 앞선 예시에 이어서 Middleware를 추가해봤다. Latency로 요청에 대한 응답이 얼마나 걸리는지 출력하는 예시이다. package main import ( "github.com/gin-gonic/gin" "net/http" "time" ) func Logger() gin.HandlerFunc { return func(c *gin.Context) { t := time.Now() c.Next() laten.. 2023. 2. 7.
Golang Gin Router / golang, go, 고랭, 고, 언어, 라우터 Golang Gin Router 저번에 이어서 기본적으로 web server를 배울 때 Router가 기본이라고 생각이 들어서, Router에 대해 찾아봤다. Vue / React를 할때도 Router를 기본으로 셋업하긴 했다. 저번에 이어서 바로 Router를 적용하면 package main import ( "github.com/gin-gonic/gin" "net/http" ) func setupRouter() *gin.Engine { r := gin.Default() v1 := r.Group("/api/v1") { v1.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) v1.GET("/hello/:name",.. 2023. 2. 4.
반응형