목록golang (4)
Hello Ocean! 🌼
서론동시 처리 시스템(Concurrent System)에서 데이터 경합은 매우 흔하고, 디버깅하기 힘든 문제이다.Go에서는 이런 문제 해결을 돕기 위한 built-in Data Race Detector가 존재한다! (야호🎉) 어떻게 쓰나요?사용방법은 매우 단순하다.go command에 -race 플래그를 추가하면 된다!$ go test -race mypkg // to test the package$ go run -race mysrc.go // to run the source file$ go build -race mycmd // to build the command$ go install -race mypkg // to install the packagerace build tag로 효율적으로 사..
문제 gin을 graphql(gqlgen)의 router로 사용하려고 할 때 gin.Context에 담아놓은 값들이, graphql resolver에서 사용할 수 있는 ctx(context.Context)에 담겨있지 않았다. gin.Context에 key-value로 저장한 값을 resolver의 ctx.Value("key")로 접근해서 사용하고 싶은 상황 gqlgen 공식 문서에서 제공하는 example에 gin.Context를 사용하는 방법이 안내되어 있다. 링크 하지만, 이 방법은 context.Context에 gin.Context를 그대로 담기 때문에 각각의 resolver에서 매번 아래의 작업을 해줘야 한다. 1. context.Context에서 gin.Context 꺼내기 2. gin.Cont..
socket.io에서는 redis adapter를 사용할 수 있다.Adapter가 무엇일까?https://socket.io/docs/v4/adapter/정의Adapter는 client의 부분집합 혹은 전체 client에게 event를 broadcast하는 server-side component이다.왜 필요할까?기본적으로 socket.io에서 in-memory adapter가 broadcast를 수행하는데,socket.io 서버가 여러대로 분산되어있을 때, in-memory adapter를 이용하면 문제가 생긴다.아래 그림처럼 두 개의 socket.io 서버가 있을 때, in-memory adapter를 이용하면server A에서 server B에 연결되어있는 client들에게 메세지를 보내줄 수 없기 때..
문제 https://programmers.co.kr/learn/courses/30/lessons/42861?language=go 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 제한사항 섬의 개수 n은 1 이상 100 이..