Lobste.rs 의견들
  • 글 자체도 흥미롭고, 잘 맞는 도구를 잘 맞는 작업에 적용해 한 자릿수 규모 개선을 얻는 모습이 좋았지만, 본문보다 마지막 각주가 더 인상적이었음
    지금 만드는 도구가 이미 30~40년 전에 누군가 더 잘 구현해 둔 것일지 모른다는 죄책감 때문에 멈춰 서는 고민을 정확히 짚고 있음. 하지만 그건 함정이고, 바퀴를 몇 개는 다시 만들어 봐야 바퀴 만들기의 경계까지 갈 수 있다는 말이 와닿음. 대부분의 분야에서는 네다섯 개면 충분하고, 수학이나 컴퓨터과학처럼 엄밀한 분야도 스무세 개 정도면 될 수 있으며, 그렇게 직접 다시 만들며 던지는 질문이 단순한 공부보다 훨씬 빨리 진짜 최전선으로 데려다준다는 주장임

    • 본문에서 중요한 관련 포인트는 SQLite DB로 만든 비효율적 무차별 대입 구현도 기준 구현으로서 가치가 있었다는 점임
      일단 무언가가 동작하는 참조 구현이 있었기 때문에, 그것을 대체할 효율적인 구현을 만들기 쉬워졌음
    • 지금 겪는 문제와 딱 맞음. 내 문제 공간에 최적화된 걸 만들고 싶지만, 일반화된 문제는 이미 풀렸다는 걸 알아서 멈춰 있었음
      그런데 기존 해법들을 보면 내가 필요 없는 짐이 많이 붙어 있음. 경험상 내 아이디어를 밀어붙일 가치가 있다는 걸 알면서도 뭔가 놓치고 있는 게 아닐까 계속 생각했는데, 이걸 읽고 그냥 해보기로 함. 실패해도 그 과정에서 배울 게 있음
  • 아주 멋짐. Compressing Icelandic name declension patterns into a 3.27 kB trie가 떠올랐음

  • Scrabble 봇을 구현하다가 DAWG(Directed Acyclic Word Graph) 라는 관련 자료구조를 알게 됐고, 그 용도로는 꽤 흔한 듯함
    fst 크레이트와의 주된 차이는 각 단어를 고유한 정수에 매핑하지 않는다는 점으로 보임. 비슷하게 크기가 크게 줄고 성능도 엄청나게 좋아졌음. Scrabble 봇은 기본적으로 ..cat.. 같은 간단한 정규식에 맞는 단어로 전체 사전을 걸러야 하는데, 실제로는 현재 보드에서 가능한 모든 간단한 정규식을 처리해야 함. 1분쯤 기다리던 작업이 체감 불가능한 지연으로 줄었음

  • 링크된 글도 읽을 만함: https://burntsushi.net/transducers/

  • fstsrgn의 독일어 지원에도 결국 쓰게 된 도구이고, Andrew가 직접 추천해 준 뒤였음
    공통 접두사와 접미사를 압축하는 같은 문제 공간이고, 정말 잘 동작함. 또 CLI 도구라 시작 비용 최소화도 필요했는데, fst 크레이트는 제로카피 로딩을 지원해서 런타임 오버헤드가 없음. FST는 컴파일 시점에 만들어짐

  • 정말 멋지고, 독일어와 영어에도 이런 게 있으면 좋겠음. 독일어 합성어는 아직도 나를 자주 헷갈리게 함