DEV NOTES / UPDATED 2026.10.21

Notes.

개발하면서 공부한 내용을 한 단계씩 깊이를 더해 가며 정리한 글을 모아 둡니다.

AI-DLC 스펙 문서 구조

1편, 최근 글 2026.10.21

  1. 01이슈가 이어져도 섞이지 않는 스펙 문서

    AI가 다음 작업에서 다시 읽을 스펙 문서는 고치는 시점에 따라 파일을 나눈다. 지금 동작, 판단 이유, 이슈별 작업 기록을 각각 따로 둔다.

아이콘 구조 개선

4편, 최근 글 2026.10.21

  1. 01아이콘 198개가 모든 화면에 실리던 이유

    아이콘을 이름 문자열로 꺼내 쓰는 객체 하나에 모아 두면, 번들러는 어떤 아이콘이 쓰이는지 알 수 없어서 198개를 전부 싣는다. 아이콘 하나를 모듈 하나로 나누고 사용처가 그 모듈을 직접 import하게 바꿔서 해결했다.

  2. 02생성기와 codemod로 사용처 880곳 옮기기

    아이콘 모듈은 생성기가 만들고 사용처는 codemod가 바꿨다. 두 도구가 SVG 파일명에서 같은 규칙으로 컴포넌트 이름을 만들게 해서 서로 어긋날 수 없게 했다.

  3. 03예상 밖 비용, 번들 검사가 놓친 회귀, 전환 결과

    전환 도중에는 작은 SVG가 화면별 청크에 복사돼 빌드가 조금 커졌고, 전환을 마치자 거의 모든 화면이 받던 gzip 약 24KB가 사라졌다. 옛 Icon을 다시 쓰지 못하게 하는 방법으로는 번들 검사 대신 import 금지 lint를 골랐다.

  4. 04디자인 파일을 아이콘의 원본으로 만들기

    디자이너가 내보낸 SVG를 개발자가 손으로 고쳐 넣던 과정을 바꿨다. 이제 디자인 파일의 한 페이지를 원본으로 삼아 스크립트가 아이콘을 가져온다. 사람 기억에만 있던 손질 규칙은 코드로 옮겼고, 스크립트가 판단할 수 없는 것은 멈추지 않고 디자이너에게 물을 목록으로 남겼다.

LLM에 보낸 질문이 답이 되기까지

7편, 최근 글 2026.10.20

  1. 01큰 그림: 다음 토큰 하나를 고르는 반복

    LLM은 답을 통째로 만들지 않고, 다음에 올 토큰 하나를 고르는 일을 답이 끝났다는 신호(끝 신호)가 나올 때까지 반복한다.

  2. 02글자가 숫자가 되기까지

    문장은 토큰으로 쪼개지고, 토큰마다 번호가 붙고, 각 번호는 정해진 숫자 목록(벡터)으로 바뀐다.

  3. 03앞 문맥을 섞는 법

    토큰마다 앞 토큰들을 참고할 비율을 정해 섞는다. 이 일을 레이어마다 되풀이하면 마지막 토큰 자리의 벡터에 지금까지의 문맥이 담긴다.

  4. 04다음 토큰 고르기

    마지막 벡터로 어휘의 토큰마다 점수를 내고, 점수를 확률로 바꿔서 하나를 뽑는다.

  5. 05한 번 한 계산은 다시 하지 않기

    처음 한 번은 입력 전체를 계산하고(prefill), 그 뒤로는 새 토큰 하나만 계산한다(decode). 앞 토큰의 계산 결과는 KV 캐시에 저장해 재사용한다.

  6. 06실제 요청 하나를 끝까지 따라가기

    요청 하나는 접수와 대기를 거쳐 토큰으로 잘린다. 서버는 prefill로 첫 토큰을 고른 뒤 decode로 한 토큰씩 이어 간다. 고른 토큰은 그때그때 보내고, <EOS>가 나오면 멈춘 뒤 KV 캐시 메모리를 비운다.

  7. 07이어지는 질문 세 개

    대화가 이어지면 앱 서버는 대화 전체를 다시 보내고, LLM 서버는 앞부분이 같으면 그 부분의 계산을 재사용한다.