본문 바로가기

개발47

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.
Golang Gin Framework 시작 / golang, go, 고랭, 고, 언어, 진, 프레임워크 Golang에 대해 공부를 좀 해야하는데, 시작하기에 Gin Framework를 통해 서버를 만드는게 좋을 것 같아서 Gin으로 찾아봤다. Golang Gin Framework Init % mkdir golang-gin-study % cd golang-gin-study % go mod init github.com/dev-chicken/study-golang/gin/golang-gin-study go: creating new go.mod: module github.com/dev-chicken/study-golang/gin/golang-gin-study % go get -u github.com/gin-gonic/gin go: downloading github.com/gin-gonic/gin v1.8.2 go.. 2023. 2. 3.
Midjourney 인공지능 그림그리기 / 미드저니, AI 그림, 인공지능 Midjourney https://www.midjourney.com/home/ Midjourney An independent research lab exploring new mediums of thought and expanding the imaginative powers of the human species. www.midjourney.com 이제 인공지능이 그림도 그려주고 심지어 미술대회에서 우승까지 한 적이 있다는걸 아십니까..? 무료로 제공해주고 무제한으로도 사용할 수 있는 AI그림이 있어서 한번 찾아보고 직접 사용해봤습니다. 근데 진짜 ChatGPT도 그렇고 Midjourney도 그렇고 이런 양질의 AI기능? 을 무료로 제공한다는 것이 참 신기한 것 같습니다. 사용 방법, 예시 앞서 보이는 홈페.. 2023. 1. 30.
Kubernetes DaemonSet / 쿠버네티스, 데몬셋, 서비스, Pattern, 패턴 Kubernetes DaemonSet DaemonSet을 이용하여 모든 노드 혹은 특정 노드에 동일한 Pod들을 실행가능 노드가 클러스터에 추가되면 해당 노드에도 자동으로 추가 노드 제거되면 Pod가 garbage로 수거가 됨 여기서 잠깐 확인해봐야할 것 Background process와 DaemonSet의 차이가 무엇인지 아십니까? - Background process: 유저와 상호작용을 함, Parent process가 존재 - DaemonSet: 유저와 별도로 동작, process동작 Parent process와 연결을 해제 아무튼 그래서 모든 노드에서 log를 수집해야한다거나, 노드 정보를 따로 수집해야한다거나 할때 DaemonSet을 활용하면 됨 apiVersion: apps/v1 kind: .. 2023. 1. 28.
반응형