// blog

기술 블로그

우리가 만드는 제품과 오픈소스의 설계 이야기 — 프로덕션에서 배운 것만 씁니다.

2026-09-19

점수가 가장 높았던 모델을 탈락시켰다 — 로컬 Git 에이전트 학습 노트 ①

PC 안에서만 도는 한국어 Git 에이전트를 학습시키는 중입니다. 자동 채점이 가장 높았던 실행이, 27개 답변을 전부 읽어 보니 확인한 적 없는 서버 상태를 지어내고 있었습니다. 네 번 돌려 네 번 다 탈락시킨 기록.

ailocal-llmevaluationgitlinqkoen

2026-08-30

두 번 배달되는 세계에서 정확히 한 번 일하기 — VisionLinq 설계 노트 ③

분산 큐는 "최소 한 번" 배달을 약속합니다 — 같은 메시지가 두 번 올 수 있다는 뜻입니다. VisionLinq가 중복 배달을 버그가 아니라 전제로 받아들이고, 그 전제 위에서 파이프라인을 단순하게 만든 방법.

visionlinqdocument-aiarchitectureko

2026-08-28

문서 변환은 격리에서 — VisionLinq 설계 노트 ②

남이 보낸 문서를 파싱하는 일은 문서 처리 서비스에서 가장 위험한 순간입니다. VisionLinq가 변환기를 인터넷 끊긴 비루트 컨테이너에 가둔 이유와, 그 제약이 오히려 구조를 단순하게 만든 과정.

visionlinqdocument-aiarchitecturesecurityko

2026-08-28

문서는 고객의 클라우드에 남는다 — VisionLinq 설계 노트 ①

문서 AI 미들웨어를 만들면서 가장 먼저 정한 것은 기능이 아니라 경계였습니다. 원본을 가져오지 않는 구조, 근거를 동반한 추출, 한국 문서 우선 — VisionLinq의 설계 원칙 네 가지.

visionlinqdocument-aiarchitectureko

2026-08-22

같은 버그를 두 번 고쳤다면 그건 라이브러리다

중국어 번체가 본토 방문자에게 나가던 버그를 두 번 고치고 나서야, 좋은 로케일 협상 구현이 왜 한 곳에 갇혀 있으면 안 되는지 알게 됐습니다. locale-match가 태어난 이야기.

ossi18nlocale-matchko

2026-08-06

2020년부터 비어 있던 자리 — 웹 에디터에 줄자 달기

Word의 가로 줄자는 왜 어떤 웹 에디터에도 없을까. 에디터 불문으로 동작하는 코어를 만들고, 라이브 데모가 잡아준 버그와 사용자가 바로잡아 준 방향까지 — editor-ruler를 만든 이야기.

osseditoreditor-rulerko