AI 자동화의 진짜 위험은 코드가 아니다 — Discord 승인 + launchd로 통제권 설계하기

이미지
📚 AI 직원 회사 빌드기 — 4부작 시리즈 ① Mac Studio 128GB로 AI 직원 회사 만든 이유 ② 외부 부작용 통제 — Discord 승인 + launchd (현재 글) ③ claude -p 6-step 체이닝 — V3.5 + Phase 2 트랩 (이번 주 발행 예정) ④ 30시간 회고 — 토큰·막힌 5번·다음 6주 KPI (다음 주 발행 예정) AI 자동화 시스템을 처음 설계할 때 대부분 이렇게 생각한다. 코드만 잘 짜면 된다고. 테스트 커버리지를 높이고, 에러 핸들링을 꼼꼼히 하고, 엣지 케이스를 처리하면 안전하다고. 그런데 실제로 자동화 시스템을 운영해보면, 가장 무서운 실패는 코드 버그가 아닌 곳에서 온다. 이런 경험, 한 번쯤 있을 것이다 프로덕션에서 자동화 스크립트가 예상보다 훨씬 많이 실행된 걸 뒤늦게 발견한 적 있다. 외부 API를 수십 번 호출해버렸거나, 콘텐츠가 승인 전에 발행됐거나, “이 정도면 안전하겠지”하고 켜뒀다가 당황한 경험 말이다. 자동화를 끄는 것이 켜는 것보다 훨씬 어렵다는 것도 안다. 무엇을 멈춰야 하는지, 비상 정지 버튼이 어디 있는지 불명확한 시스템은 문제가 생겼을 때 더 큰 문제를 만든다. 이 글은 그 불안감의 정체와, 코드 이전에 설계해야 할 것이 무엇인지에 관한 것이다. 코드 품질은 필요조건이지 충분조건이 아니다 AI 에이전트가 자동으로 블로그 주제를 제안하고, QA를 거쳐 Discord 카드로 승인 요청을 보내는 시스템을 구축했다. 65개 이상의 유닛 테스트가 전부 통과했다. 드라이런도 end-to-end 정상 작동했다. 그런데 이 상태에서 “이제 켜도 됩니까?”라는 질문에 바로 “예”라고 답할 수 있는가? 코드 품질은 필요조건이다. 하지만 자동화 시스템의 안전성은 다른 차원의 문제다. 코드가 의도대로 동작하는 것과, 자동화가 의도한 결과를 만드는 것 사이에는 간극이 있다. 그 간극을 메우는 게 통제권 설계다. 자동화 시스템의 진짜 위험은 두 가지다. ...

M4 Max 로컬 LLM 5종 4시간 라우팅 — supergemma4를 1순위에서 뺀 이유

이미지
supergemma4를 strict JSON 1순위에서 뺐다. M4 Max 128GB에 ollama로 5종을 4시간 돌린 결정이다. 빠르다는 평판은 형식 오염 앞에서 무력했다. 응답 앞에 JSON: 프리픽스가 붙고 중간에 <channel|> 태그가 들어가니 파서가 깨진다. 같은 워크로드에서 gemma4:26b는 10.7초로 형식을 지켰다. 각 측정은 1회씩이다. 다시 돌리면 결과가 달라질 수 있다. 그래서 1순위/2순위 대체 구조를 뒀다. TL;DR supergemma4를 strict JSON·한국어 1순위에서 뺐다 (형식 오염) gemma4:26b가 한국어·정형 출력 1순위로 승격 gpt-oss:120b가 추론 24.1초로 qwen3.6:35b(33.9초)보다 빨랐다 시작점 M4 Max에 ollama 모델을 8개 올려놨는데 어떤 작업에 어떤 모델을 써야 할지 매번 헤맨다. “빠른 모델”이라는 평판만 듣고 supergemma4를 골랐다가 출력이 깨진다. 35B 모델보다 120B 모델이 더 빠르다는 결과를 본다. 세 번 다 내 케이스다. 4 워크로드를 정해서 5종을 돌렸다. 모델 크기 qwen3.6:27b 27B Dense qwen3.6:35b-a3b-q8_0 35B MoE A3B gemma4:26b 26B Dense supergemma4:26b 26B 파인튜닝 gpt-oss:120b 120B Sparse MoE 검색용 임베딩 3종(nomic-embed-text, qwen3-embedding:4b, openai/text-embedding-3-small)은 별도 분리. 워크로드 4개: Strict JSON 분류 (포맷 준수) 한국어 재작성 3문단 (언어 품질) 디버깅 off-by-one 버그 (코드 추론) 다리 건너기 단계 계획 (논리 추론) 같은 프롬프트, 같은 시스템 프롬프트, ollama 콜드 로드 후 두 번째 호출 기준. supergemma4를 1순위...

Mac Studio 128GB로 AI 직원 회사를 만든 이유 — 처분까지 계산한 트레이드오프

📚 AI 직원 회사 빌드기 — 4부작 시리즈 ① Mac Studio 128GB로 AI 직원 회사 만든 이유 (현재 글) ② 외부 부작용 통제 — Discord 승인 + launchd ③ claude -p 6-step 체이닝 — V3.5 + Phase 2 트랩 ④ 30시간 회고 — 토큰·막힌 5번·다음 6주 KPI Mac Studio를 켜놓고 자도 되는가 Mac Studio 128GB를 켜놓고 자도 되는가. 구입 후 며칠이 지나서야 이 질문이 처음 떠올랐다. 전기요금이 걱정된 게 아니었다. 이 기계가 실제로 뭔가를 만들어내고 있는가 — 라는 질문이었다. 개발자라면 이런 상황을 한 번쯤 겪었을 것이다. 서버를 켜두고 ssh만 가끔 접속하는 걸 "활용 중"이라 부르는 상황 로컬 LLM 148GB를 다운받아 놓고 실제 추론 시간이 전체의 5%도 안 되는 상태 에이전트 파이프라인 세팅을 다 해놓고 "이게 수익이 되는가"라는 질문을 계속 뒤로 미루는 것 이 글은 그 질문에 정면으로 답하는 과정에서 내가 실제로 만든 것, RAM 수치를 어떻게 계산했는지, 그리고 팔 타이밍을 어떤 기준으로 미리 설계했는지를 기록한다. 결론부터 말하면 — 아직 "회사"가 아니고, 처분 시나리오는 이미 설계해뒀다. 로컬 LLM이 이유가 아니다 구입 이유를 물어보면 "로컬 LLM 돌리려고"가 가장 쉬운 답처럼 보인다. 그런데 그게 이유라면 128GB는 정당화하기 어렵다. 로컬 LLM이 실제로 필요한 조건은 대체로 세 가지다. 프라이버시 : 개인 민감 문서를 대량 처리해야 할 때 API 볼륨 : 월 $100+ 이상의 클라우드 API 비용이 발생할 때 오프라인 운용 : 인터넷 없는 환경에서 LLM이 필요할 때 나는 이 세 가지 중 하나도 해당하지 않는다. 그렇다면 로컬 LLM 서버로서의 Mac Studio 128GB는 정당화되지 않는다. ...