글
- frontend · 2026-06-11 온보딩이 매 로그인마다 다시 떴다 — '빠른 fix'가 틀린 이유와 진짜 원인(cold-load race) '온보딩을 skip해도 다음 로그인에 또 뜬다.' 1차 진단 '부모가 PATCH를 안 한다'대로 코딩했지만, 자식이 이미 PATCH 중이었다 — 리뷰가 잡았다. 진짜 원인은 cold-load race: Pinia가 $subscribe 콜백을 await하지 않아, 로그인 hydration이 fire-and-forget으로 돌며 gallery mount와 race한다.
- meta · 2026-06-10 한 줄씩 리뷰하는 게 직접 짜는 것보다 느렸다 — 에이전트 시대엔 실무자가 아니라 C레벨로 AI가 짠 코드를 한 줄씩 리뷰하다 멈칫했다 — 직접 짜는 것보다 느렸으니까. 모델이 약하던 시절엔 그 리뷰가 옳았다. 그런데 내 기준으로 모델이 시니어급을 넘은 뒤로는, 리뷰조차 에이전트끼리 교차하는 게 낫더라는 게 내 경험이다. 에이전트 시대의 자세는 IC가 아니라 C레벨이라는 게 이 글의 주장.
- meta · 2026-06-10 리뷰어가 '괜찮아 보여요'만 하면 무슨 소용인가 — 적대적 에이전트-페어 하네스 redteam 공개 두 번째 모델에게 코드 리뷰를 맡겨도 '괜찮아 보여요' 한마디면 고무도장이다. 오픈소스 하네스 redteam(v0.1.0)은 리뷰를 pass/fail이 아니라 티어드 발견(blocker/major/minor)으로 다루고, 살아남은 blocker를 재시도→rescue→사람으로 에스컬레이션한다. 한 모델이 쓰고, 다른 독립 모델이 적대적으로 검수한다.
- ml · 2026-06-09 벡터검색에서 리랭커를 뺐다 — '아기 사진 다 찾아줘'가 무너뜨린 가정 사진검색 스택에서 리랭커를 아예 뺐다. 계기는 '아기 사진 다 찾아줘' — 수천 장을 돌려줘야 하는 recall 문제인데 리랭커는 precision@k 도구라 벌크에 안 맞았다. 쿼리 타입 분기는 자연어 의도 추론 불가로 포기. 대신 Qwen3-VL-Embedding의 MRL로 저차원→고차원 2단계를 만들어 리랭커 없이 정밀도를 회복했다.
- meta · 2026-06-08 자가개선 루프는 이미 생겼다 — 그런데 닫히려면 누군가 '적어 넣어야' 한다 내가 쓰는 AI 도구가 내 불평을 알아서 배워 스스로 고치면 좋겠다 — 그렇게 물었다가 알게 된 것. 자가개선 루프는 이미 생겼다(교정이 스킬 지시문에 다시 써진다). 그런데 루프는 '교정이 포착될 때만' 닫히고, 그 capture는 여전히 수동이다. 어려운 건 'improve'가 아니라 늘 'capture→route'였다.
- backend · 2026-06-07 취소하고 환불하는 기능을 멱등하게 — 터미널 상태 전이는 맨 마지막에 비용이 드는 비동기 작업을 '전체 취소하고 환불'하려면, 크래시와 재시도 한가운데서도 이중환불도 고아 리소스도 안 생겨야 한다. 핵심 셋 — 환불은 아이템 단위 원자 트랜잭션, 정리는 마커 기준 재실행, 작업의 터미널 상태 전이는 맨 마지막에. 동시 행위자가 생기면 모든 전이는 조건부 UPDATE.
- meta · 2026-06-06 클릭으로 되는 건 전부 대화로도 돼야 한다 — 그런데 그걸 켜는 것부터 메뉴였다 AI 에이전트에게 '이전 대화 불러와'라고 했더니 'Settings에서 토글을 켜라'고 답했다. 대화형 회상 기능을 켜는 것부터 메뉴 다이빙. 산업은 recall을 대화형으로 만들어 패리티가 작동함을 증명했는데 정작 거기서 멈췄다 — 클릭으로 되는 모든 액션은 대화로도 돼야 한다는 '대화-패리티'와, 그 절반에서 멈춘 현실.
- meta · 2026-06-05 두 AI가 같은 답을 골랐다 — 값어치는 그 답 속의 틀린 추론을 잡은 것 Claude와 Codex가 같은 결정에 독립적으로 도달했다. 그런데 둘째 AI의 진짜 값어치는 결론에 반대한 게 아니라 — 같은 답이었는데도 — 그 맞는 답 안에 숨은 틀린 추론 둘(과대 인과 주장, 이름뿐인 안전장치)을 잡아낸 데 있었다. second reviewer를 '답 검산'으로만 쓰면 놓치는 것.
- meta · 2026-06-04 리포트가 도착하는 것만으로는 아무것도 나아지지 않는다 — 끊긴 고리는 'measure'가 아니라 'route'였다 주기적으로 도착하는 모니터링 리포트는 그 자체로 가치가 0이다. '측정→분석→개선→재측정' 닫힌 루프일 때만 의미가 생긴다. 그런데 우리 루프의 끊긴 고리는 'measure'가 아니라 'capture→route' — 떠오른 개선점이 사람의 기억에 의존해 증발하는 manual relay 병목이었다. 사람을 transport에서 빼되 approver로 남기는 설계.
- backend · 2026-06-04 그럴듯한 가짜 기본값이 prod를 조용히 삼킨다 — 검증을 '환경 신호'에 묶어라 운영 알림이 안 와 조사했더니 시크릿 drift로 env 키들이 증발해 있었다. 더 음험한 건 함께 사라진 키 — 추론 엔드포인트 기본값이 '그럴듯한 가짜'(example.com)라 코드가 조용히 가짜로 요청하고 에러 없이 실패했다. 로그도 안 남는다. 검증을 '이 config를 쓰는 모드인가'라는 환경 신호에 묶어 fail-fast로 가시화한 이야기.