Default
실패한 요청 뒤에 무엇을 남길 것인가
인증·제휴·배치·전자문서를 운영하며 정한 완료, 원자성, 복구의 경계
실패한 요청 뒤에 무엇을 남길 것인가
FluxGate는 왜 Redis Lua를 썼을까 - (원자성과 재시도)
확인과 차감을 한 실행 범위로 묶으면 무엇이 보장되는지, 그 범위가 여러 제한과 여러 슬롯으로 넓어질 때 거절·실패 뒤에 무엇이 남는지 따라갑니다. 토큰 하나에 요청 둘이 들어오면 남은 토큰은 1개인데 요청 2개가 동시에 들어옵니다. 앱 서버가 잔여량 조회와 차감을 별도 명령으로 보낸다면, 두 요청이 모두 차감 전의 잔여량을 읽을 수 있습니다....
FluxGate는 왜 Redis Lua를 썼을까 - (원자성과 재시도)
가비아 도메인 메일을 Gmail로 받기 - (ImprovMX로 rojae@rojae.kr 연결한 기록)
받는 길은 가비아 DNS와 무료 포워딩 서비스 ImprovMX로, 보내는 길은 Gmail SMTP로 따로 만들었습니다. 30분 정도 걸렸고, 중간에 멈칫한 두 군데(숨은 확인창, Gmail의 SMTP 자동 입력)와 보낸 메일의 서명이 Gmail 이름으로 찍히는 한계를 함께 적었습니다. 전달된 메일이 처음에는 스팸함으로 갈 수 있다는 점도 주의로 덧붙였...
가비아 도메인 메일을 Gmail로 받기 - (ImprovMX로 rojae@rojae.kr 연결한 기록)
Claude Code에서 GLM 쓰기 - (판단은 Claude, 분량은 GLM에 나눠 맡기기)
기존 claude 설정은 건드리지 않고 GLM으로 답하는 명령을 하나 더 만듭니다. 명령 블록은 복사해서 그대로 붙이면 됩니다. 터미널용 zcode 설치는 zcode cli 사용기에 따로 적었습니다. 왜 나눠 쓰나요 영문 문서 40개를 한글로 맞추는 일이 있다고 해 보겠습니다. 어려운 일은 아닙니다. 그냥 많습니다. 이걸 Cl...
Claude Code에서 GLM 쓰기 - (판단은 Claude, 분량은 GLM에 나눠 맡기기)
zcode cli 사용기 - (공식이 없어, 비공식 cli 사용)
Z.AI의 zcode를 터미널에서 쓰려다 막힌 이야기다. 공식 배포는 데스크톱 앱뿐이었고, 터미널 화면은 비공식 npm 패키지로 띄웠다. 같은 에러를 만났다면 zcode-app-cli를 보면 된다. “Cannot find package ‘@zcode/tui’“ 밤 11시쯤, brew로 zcode를 깔고 로그인까지 마쳤다. z...
zcode cli 사용기 - (공식이 없어, 비공식 cli 사용)
꼬리에 꼬리를 무는 질문 - (SSE, 게이트웨이, MCP를 한 줄로 꿰는 심화 문답)
새로 주장하는 네 가지(stdio flush, 게이트웨이 키별 분당 한도, 동시 요청의 id, 세션 없는 MCP)는 직접 돌려서 캡처했습니다. 나머지 답은 1~3편의 관찰에서 이어 낸 것이고, 확인하지 않은 것은 결말에 모았습니다. “LLM 통신 스택” 시리즈 4편입니다. 1편 SSE, LLM 시대에 다시 보기 · 2편 Orca Route...
꼬리에 꼬리를 무는 질문 - (SSE, 게이트웨이, MCP를 한 줄로 꿰는 심화 문답)
MCP란 무엇인가 - (메시지는 JSON-RPC 하나, 다른 건 통로뿐입니다)
Spring으로 만든 MCP 서버를 stdio·Streamable HTTP·레거시 SSE 세 통로로 직접 붙이고 일부러 깨뜨려 봤습니다. 메시지는 어느 통로로 보내도 같고, 깨지는 자리는 통로마다 다르다는 것을 확인한 기록입니다. “LLM 통신 스택” 시리즈 3편입니다. 1편 SSE, LLM 시대에 다시 보기 · 2편 Orca Router 앞에 ...
MCP란 무엇인가 - (메시지는 JSON-RPC 하나, 다른 건 통로뿐입니다)
Orca Router 앞에 LiteLLM 한 겹 끼우기 - (게이트웨이, 비용, 폴백)
게이트웨이를 끼웠을 때 키·비용·429가 각각 어디로 옮겨 가는지 직접 띄워 확인했습니다. 무료 모델의 429와 예산 초과에는 일부러 부딪혀 봤습니다. 샘플코드는 litellm-gateway-sample(게이트웨이 설정과 스크립트)과 spring-sse-sample(1편의 Spring 앱, 코드 변경 없음)에서 확인할 수 있습니다. ...
Orca Router 앞에 LiteLLM 한 겹 끼우기 - (게이트웨이, 비용, 폴백)
SSE, LLM 시대에 다시 보기 - (토큰이 한꺼번에 도착하는 이유)
로컬에서는 흐르던 토큰이 nginx 뒤에서 한꺼번에 도착했습니다. 경로에 장비를 하나씩 세워 가며 재현해 보니, 토큰을 붙잡거나 깎아 낸 곳은 브라우저 파서와 nginx gzip 필터 두 곳이었습니다. 샘플 코드는 spring-sse-sample에서 확인할 수 있습니다. “LLM 통신 스택” 시리즈 1편입니다. 2편 Orca Rou...
SSE, LLM 시대에 다시 보기 - (토큰이 한꺼번에 도착하는 이유)
Spring Batch 성능 최적화 - (멀티스레드와 파티셔닝)
지금까지 Spring Batch의 개념과 실전 구현을 살펴보았습니다. 이번 글에서는 대용량 데이터를 효율적으로 처리하기 위한 성능 최적화 전략과 실제 운영 환경에서 필요한 노하우를 정리해보겠습니다. Sample Code 이 시리즈에서 다루는 전체 예제 코드는 GitHub에서 확인할 수 있습니다. spring-batch-sample ...
Spring Batch 성능 최적화 - (멀티스레드와 파티셔닝)