목록2022/05 (8)
규도자 개발 블로그
brew install elixir iex IO.puts "hello world" 종료: ctrl + c 두 번.
만약에 어떤 분야에 대한 실력을 차트로 표현할 수 있다면 우리들은 머릿속에서 이런 모습을 상상할 것이다. 이것은 흔한 로그함수의 그래프이다. 만약에 x축을 시간, y축을 실력이라고 생각한다면 "실력을 그래프로 표현"한다고 했을 때 가장 쉽게 연상할 수 있는 모양일 것이다. 하지만 실제로는 이렇게 완만하지 않고 크고 작은 깨달음을 얻어가며 결국 로그함수와 비슷한 모습으로 수렴하는 게 보다 적합하다고 한다. 그리고 이걸 보면 알 수 있듯이 상위권으로 가면 갈 수록 작은 디테일이 실력을 구분한다는 것을 알 수 있다. 그러니까 사람은 크고 작은 돈오의 순간을 겪어가며 점점 실력이 늘게 된다. 하지만 계속 프로그래밍을 하면서 느낀 게 있다. 바로 실제 실력 그래프 말고 자신이 인식하는 실력 그래프라는 것이다. 다..
search safe한 숫자압축 알고리즘 (feat. python) 이런 일이 있었다. 어떤 자료에서 해석한 특정 값을 elasticsearch에 저장하고 그것을 검색을 통해 가져와야 했는데 그 특정 값은 길이가 300자가 넘어가는 숫자였다. 그래서 fuzzy나 more_like_this등을 통해 검색을 구현하려 했으나 길이가 워낙 길어서인지 검색이 잘 되지 않았다. 어차피 이 값을 다시 쓰지 않고 그저 검색용도로만 쓸거라면 압축해서 저장하는 게 훨씬 낫겠다는 생각이 들었다. 그냥 간단하게 0부터 9까지는 냅두고 ASCII를 이용해 10부터 이어지는 숫자들을 알파벳이나 다른 숫자들을 이용해 압축하는 느낌으로 접근했는데 구글이나 네이버같이 검색엔진을 써본 사람들은 알겠지만 검색엔진에서는 특수하게 처리하는 ..
파이썬 함수의 매개변수에 쓰이는 bare asterisk(*)의 의미 def include_router( self, router: routing.APIRouter, *, prefix: str = "", tags: Optional[List[Union[str, Enum]]] = None, dependencies: Optional[Sequence[Depends]] = None, responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, deprecated: Optional[bool] = None, include_in_schema: bool = True, default_response_class: Type[Response] = Default(JSONR..
파이썬의 유닛테스트를 한번에 파악할 수 있는 코드 # unittest_example.py import unittest def add(a, b): return a + b def sub(a, b): return a - b def mul(a, b): return a * b def div(a, b): return a / b class DummyTest(unittest.TestCase): def test_add(self): c = add(10, 20) self.assertEqual(c, 30) def test_sub(self): c = sub(20, 10) self.assertEqual(c, 10) def test_mul(self): c = mul(10, 10) self.assertEqual(c, 100) def..
파이썬의 이스터에그 import this 를 써서 실행해보자. 그러면 이런 글들이 나온다. The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors sh..
닿진 않겠지만 I love you tiangolo. https://this-programmer.tistory.com/469 예전에 이런 글도 썼었다. FastAPI에 총 3개의 PR을 날려놨었는데 그 내용인 즉슨 1. openAPI docs로 endpoint들을 조회할 때 schema형태로 parameter를 등록해놔도 description이 누락되지 않게 하는 PR https://github.com/tiangolo/fastapi/pull/4573 -> 이건 schema를 이용해서 엔드포인트를 만들 때 해당 필드가 갖고 있는 description이라는 클래스 멤버를 누락시켜버려서 openAPI docs에 명세가 되지 않아 불편함을 느껴 제작하였고 2. allow_rough_response_model이라는..
airflow에서 각종 operator로 분기처리하기 (feat. SimpleHttpOperator) airflow의 기본적인 tutorial에서 제공되는 BranchPythonOperator처럼 조건에 따라 여러개의 branch를 태우는 방법에 대해서 고민했다. 나는 당연히 SimpleHttpOperator도, BashOperator도 branch operator가 따로 존재할 줄 알았는데 오직 BranchPythonOperator만 존재했다. 왜 branch operator가 중요하냐, 다른 operator는 True와 False만으로 분기처리를 해야하고, 조건에 따른 다음 task는 triger_rule을 이용해 컨트롤해야 하므로 보다 복잡한 분기처리가 불가능하다는 문제가 있었다. 예를 들어 전 b..