전체 글118 API 토큰 비용 - 입출력 요금, 구조화 출력, Batch API API를 쓰면서 비용이 예상보다 두 배 가까이 나온 적 있으신가요? 저는 있습니다. 그것도 첫 달 청구서를 받고 나서야 깨달았습니다. 입력 토큰과 출력 토큰의 요금이 다르다는 걸, 직접 돈을 날리고 나서야 제대로 인식하게 됐습니다. 그 경험이 지금의 설계 습관을 만들었습니다.청구서가 가르쳐준 입출력 요금의 차이RAG(Retrieval-Augmented Generation) 기반의 문서 질의응답 서비스를 만들고 있었습니다. RAG란 외부 문서를 검색해서 그 내용을 컨텍스트로 LLM에 넘기는 방식으로, 모델이 학습하지 않은 최신 정보나 사내 자료를 다룰 때 자주 쓰이는 아키텍처입니다.구조는 단순했습니다. 사용자가 질문하면 관련 문서를 검색하고, 검색된 결과 전체를 컨텍스트 윈도우에 넣은 뒤 상세하고 친절한 .. 2026. 5. 12. AI 토큰은 글자 수가 아니다 (BPE, 토큰 측정, 비용 최적화) BPE, 토큰 측정, 비용 최적화마크다운 문서를 Claude API에 넣었을 때 토큰 한도 초과 오류가 떴습니다. 글자 수는 분명 제한 이내였는데도 말입니다. 그날 처음으로 "토큰이 글자 수랑 같은 게 아니구나"를 몸으로 깨달았습니다. 문서를 아무리 읽어도 체감이 안 됐던 개념이, 오류 한 번에 단번에 박혔습니다.사실 이 오류를 겪기 전까지 저는 "대충 글자 수 비슷하게 맞추면 되겠지"라고 생각하고 있었습니다. 이건 흔한 오해입니다. 그리고 이 오해는 개발 중 어느 시점에 반드시 문제로 터집니다. 저처럼 오류를 직접 맞닥뜨리거나, 아니면 예산이 예상을 훌쩍 넘어서는 청구서를 받고 나서야 깨닫게 됩니다. 이 글은 그 오류를 맞닥뜨린 뒤 하나씩 파헤친 경험을 바탕으로 씁니다.BPE와 토큰의 작동 원리AI 언.. 2026. 5. 11. 한국어 LLM 서비스, 왜 예산이 두 배로 나왔을까 처음에는 제 실수라고 생각했습니다. 영어 테스트 문서로 월 예산을 잡았는데, 실제 한국어 문서를 넣었더니 토큰이 두 배 가까이 나왔습니다. 프롬프트를 뒤지고, 설정을 확인하고, 혹시 중복 호출이 있나 로그를 뒤졌습니다. 결론은 제 코드 문제가 아니었습니다. 한국어 자체가 현재 대부분의 대형 언어 모델 토크나이저 구조에서 구조적으로 불리하다는 사실, 그걸 깨닫는 데 꽤 시간이 걸렸습니다.이 경험을 공유하는 이유는 단순합니다. 한국어 LLM 서비스를 만들 때 가장 먼저 맞닥뜨리는 이 비용 구조 문제에서, 생각보다 많은 분들이 같은 곳에서 넘어집니다. 저처럼 청구서를 받고 나서야 알게 되는 게 아니라, 미리 설계 단계에서 고려할 수 있도록 이 글을 씁니다.지금 돌이켜보면 이 문제는 충분히 예측 가능했습니다. .. 2026. 5. 10. 개인정보 처리방침 페이지 HTML 템플릿 - 애드센스 심사 필수 항목을 갖춘 페이지 만들기 애드센스 심사를 처음 신청했을 때 반려당하면서 받은 메일에 "정책 준수" 관련 내용이 있었다. 막연했다. 뭘 어떻게 하라는 건지. 개인정보 처리방침 페이지가 필요하다는 건 알았는데, 어떤 내용이 들어가야 하는지, 어떤 형식이어야 하는지 아무것도 몰랐다. 법무팀이 있는 대기업도 아니고 개인 블로그 운영자 입장에서 법적 문서를 작성한다는 게 처음에는 마치 의사 면허 없이 수술하는 것처럼 막막했다.처음에는 인터넷에서 다른 블로그의 개인정보 처리방침을 그대로 복사해서 올리는 방법을 썼다. 이게 잘못된 방법이라는 걸 뒤늦게 알았다. 방침에 구글 Analytics를 사용한다고 써있는데 실제로 사용하지 않는 경우, 또는 반대로 사용하는데 방침에 없는 경우, 이 불일치가 나중에 애드센스 정책 위반으로 이어질 수 있다... 2026. 5. 9. 콘텐츠 복사 방지-오른쪽 클릭·드래그 방지로 내 글을 보호하는 방법 글을 열심히 쓰고 올렸더니 다음 날 다른 블로그에 토씨 하나 안 바꾸고 그대로 올라가 있었다. 처음 이런 경험을 했을 때 황당함이 분노보다 먼저 왔다. 어떻게 이런 사람이 있지? 그러다가 어떻게 막을까를 고민했다. 오른쪽 클릭 방지, 드래그 방지, 선택 방지. 이것저것 시도해봤다.솔직히 말하면, 완벽한 방어는 없다. 하지만 의미 없지는 않다. 자동차에 도어락이 있다고 도둑을 100% 막지는 못해도, 잠그는 것이 안 잠그는 것보다는 훨씬 낫다. 그 현실적인 선에서 이야기를 해보려 한다. 강한 방어책이 오히려 내 블로그를 더 약하게 만든 경험이 있기 때문에 더 조심스럽게 접근하게 됐다.왜 완벽한 복사 방지는 불가능한가먼저 솔직하게 한계를 짚고 가자. HTML과 JavaScript로 복사를 방지해도, 개발자 .. 2026. 5. 8. 외부 링크 보안 설정: rel="noopener noreferrer" 속성으로 보안과 SEO 동시에 잡기 코드 리뷰에서 지적받기 전까지 몰랐다외부 링크에 target="_blank"를 쓰면서 rel="noopener noreferrer"를 빠뜨리는 것, 이게 얼마나 위험한 일인지 대부분의 개발자가 모른다. 아니, 알면서도 그냥 넘어간다. 나도 그랬다. 별일 있겠냐 싶었다. 그런데 실제로 해당 취약점을 통한 공격 사례를 접하고 나서 생각이 완전히 바뀌었다. 잠그지 않은 자동차 문에 현금 다발을 올려두는 것과 같은 일이었다.이 속성을 처음 알게 된 경위가 부끄럽다. 코드 리뷰에서 동료가 지적해서였다. 몇 년 동안 target="_blank"를 쓰면서 rel 속성 없이 넘어가 왔다. 그 동안 운이 좋았던 것이다. 보안 취약점이라는 게 그렇다. 문제가 생기기 전까지는 존재하지 않는 것처럼 느껴진다. 그런데 한 번 .. 2026. 5. 7. 이전 1 ··· 8 9 10 11 12 13 14 ··· 20 다음