chongkong blog

재미로 만들어보는 Task Local Object

파이썬의 threading 라이브러리에서는 local 이라고불리는, 하나의 객체로 선언되지만 서로 다른 쓰레드에서 서로 다른 객체로서 접근할 수 있는 thread local 객체를 제공한다. 각각의 쓰레드마다 고유한 컨텍스트를 저장할 공간이 필요할 때 참 유용한 객체다.import threading# 1. 직접 threading.local() 호출하기local_obj = threading.local()local_obj.x = 42print...

Jump Consistent Hash

오늘 소개할 내용은 단 코드 10줄에 불과하다!// Hash consistently chooses a hash bucket number// in the range [0, numBuckets) for the given key. // numBuckets must be >= 1.func Hash(key uint64, numBuckets int) int32 { var b int64 = -1 var j int64 for j &...

IIS에서 Reverese Proxy 설정하기

Slack에 interactive button을 추가하기 위해서는 Slack에서 버튼 클릭 이벤트를 전달할 수 있는 endpoint가 필요하다. 이를 request_url이라 하는데 반드시 https url을 주어야 한다.로컬에서 서버를 서빙하며 ssl 인증서를 사용하기 위해서는 apache나 nginx 등의 웹서버를 이용하는 편이 좋은데윈도우에서는 IIS를 이용해서 할 수 있다. 이번 포스트에서는 IIS를 이용하여 SSL 인증서를 서빙하...

Slack RTM 400 Bad Request

slack 봇을 만들던 중 aiohttp 라이브러리에서 제공하는 websocket client가 동작하지 않는 상황이 있었다. 문서에서 알려준 대로 잘 사용했는데 Bad Request 응답이 왔다.async with self.session.ws_connect(url) as ws: async for msg in ws: if msg.type == aiohttp.WSMsgType.TEXT: print('ms...