Skip to content

Tools

  • Published on
    그래프 데이터베이스, RDF·온톨로지 스택, 그래프 RAG 프레임워크는 지난 2년 사이 폭발적으로 늘었습니다. 링크 목록은 이미 많으니, 이 글은 대신 정직하게 의견을 담은 지도를 그립니다. 카테고리마다 무엇에 쓰는지, 대표 도구 두세 개, 그리고 "언제 무엇을 고를지"를 분명히 말합니다 — 임베디드(Kùzu) vs 서버(Neo4j), 형식 OWL/RDF vs 실용 프로퍼티 그래프, 직접 짜는 추출 파이프라인 vs Microsoft GraphRAG의 배터리 포함 파이프라인. 그리고 가장 중요한 질문: 애초에 그래프를 쓰지 말아야 할 때(벡터 RAG로 충분한 경우)는 언제인가. 작은 결정 흐름으로 시리즈를 닫습니다. 모든 도구는 실제로 존재하는지 확인했고, 성숙도와 포지셔닝을 부풀리지 않았습니다 — Kùzu가 2025년 아카이브된 사실까지 포함해서.
  • Published on
    Odin 언어를 만든 gingerBill의 글 'Good Tools Are Invisible'을 읽고, 그 논지를 정리한 뒤 현업 관점의 단서를 더한다. 그는 좋은 도구란 마찰 없이 배경으로 사라져야 하며, 결함을 '풀면 재미있는 퍼즐'로 되파는 수사법을 비판한다. 나는 '느끼는 생산성 대 실제 생산성'이라는 구분에는 동의하지만, 인터페이스가 보이지 않는 것과 내부 동작이 불투명한 것은 다르다고 본다. 빌드 시스템과 쿠버네티스 오퍼레이터처럼 너무 조용한 도구는 실패를 숨긴다. 좋은 도구는 쓸 때는 보이지 않되, 고장 나면 크게 보여야 한다.
  • Published on
    지난 몇 년간 명령줄 도구들이 조용히 Rust로 다시 쓰였습니다. ripgrep, fd, bat, eza, zoxide, bacon. 왜 이런 르네상스가 일어났는지, 그리고 여러분이 직접 CLI를 만들 때 무엇이 필요한지 정리합니다. clap의 derive API로 인자와 서브커맨드를 선언하고, GC 없는 성능과 SIMD·mmap의 이점을 살피고, 단일 정적 바이너리로 배포하는 방법과 anyhow·indicatif·crossterm 같은 필수 크레이트까지 다룹니다.
  • Published on
    ripgrep이 grep보다 빠른 이유는 마법이 아니라 여러 결정의 누적입니다. Rust의 regex 크레이트가 쓰는 유한 오토마타(백트래킹 없음), SIMD로 가속한 memchr, 병렬 디렉터리 순회, .gitignore 존중, 스마트 케이스, 바이너리 건너뛰기, mmap까지. 빠른 도구를 만드는 원리를 하나씩 뜯어봅니다.
  • Published on
    매일 사용하지만 대부분 개발자가 블랙박스로 여기는 도구, Git. 이 글은 Git의 내부를 처음부터 해부합니다. Content-addressable 파일시스템으로서의 본질, blob/tree/commit/tag 객체 모델, SHA-1 해시 체인, 느슨한 객체(loose object)와 packfile, 델타 압축, refs와 packed-refs, index(스테이징 에어리어), ort 알고리즘으로 교체된 merge 내부, rebase 메카닉, reflog, 오브젝트 GC, 부분 클론과 sparse checkout, 그리고 push/fetch 프로토콜까지 — Git을 마법이 아닌 엔지니어링으로 이해하고 싶은 엔지니어를 위한 종합 가이드입니다.