Go (19) 썸네일형 리스트형 고(golang) Context 겉핥기#3 고 에서 context 패키지는 API 나 느린 동작을 다루는데 좋다. ( 특히 서버 리퀘스트 요청에서 ) context 패키지를 이해하려면 고루틴과 채널에 대한 이해가 선행 되어야 하지만 내가 쓸 예시에서는 필요가 없다. context 를 번역하면 문맥,흐름이라는 걸로 번역이 되는데 쉽게 생각해보면 웹과 서버의 통신을 하는데에 필요한 데이터나 값을 이 context안에 넣고 필요할때 뽑아 쓰는 형식이다. 또한 그 흐름을 컨트롤 해줄수 있는 기능을 한다. 예를들어 3초 이상이 걸리는 http request 가 있다고 가정하자. 하지만 3초이상 걸리는 request 는 무거운 요청에 해당하기에 우리 서버에서는 그걸 허용하지 않고 싶다. 그럴때 고에서는 Context 를 사용한다. context가 없는 코드.. 고(golang) 고루틴에 관하여 #2 예전에 한 면접에서 면접관이 고루틴에 대해 물어봤다. 그 당시에 코인 자동 매매 시스템을 구축하던때라 모든 시스템을 고루틴으로 짯었지만 나는 내가 쓰고 있던 기능이 고루틴이라는 용어라는 걸 알지 못해서 그게 뭔지 모른다고 답변했다. 집에와서 고루틴을 좀 알아봤더니 내가 구축했던 시스템에 고루틴이 안들어가는게 없었다. 왜냐면 메인에서 20개의 고루틴을 돌면서 내코드는 시작했기 때문에.. 당연히 내 깃허브에 올라간 그 코드를 봤는지 안봤는지는 둘째치고 면접관의 입장에서 난 아무것도 모르는 사람이었다. 그리고 그 당시에는 난 용어만 몰랐지 다 안다고 생각했다. (어리석은 녀석) 하지만 용어를 모르는데 어떻게 그 기능을 안다고 할수 있을까. 그때부터 의사소통에 관해 생각해보게 됐고 기본이 안되어있다고 느껴서 많.. 고(golang) 비동기 큐 구현 웹에서 고용량 파일을 다룰때 비동기 시스템은 거의 필수적입니다. 고 언어는 Channel 이라는 기능으로 이를 쉽게 구축할 수 있습니다. 사용한 프레임워크는 Gin 입니다. go get github.com/gin-gonic/gin@master쉘에서 Gin 프레임워크를 가져옵니다. // main.go r := gin.New() srv := &http.Server{ Handler: r, Addr: fmt.Sprintf(":%d", PORT), ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, } r.GET("/file-handler",func(c *gin.Context) { queue.AsyncQueue.Enqueue(queue.FileUploa.. 이전 1 2 3 다음