반응형 프로그래밍35 AI는 일단 막으려 한다 — 권한은 주고, 압력은 가격으로 AI 페어 프로그래밍 AI는 일단 막으려 한다 자원·과금 설계 — 권한은 주고, 압력은 가격으로 핵심 요약 컴퓨팅이 많이 드는 작업을 사용자가 직접 돌리는 SaaS에서 "자원 통제 어떻게 하지?"를 AI에게 물으면, 답은 거의 항상 제한이다. AI의 기본값은 "막을 수 있으면 막는다"인데, 인위적 제한은 오토스케일 아키텍처와 싸우고, 심지어 돈 내고 더 쓰려는 사용자(=매출)까지 거절한다. 유효한 제한은 셋뿐이다 — 단일 작업 크기 상한(sanity) · 잔액 · 클러스터 한계. 쿨다운·동시성 캡·횟수 quota는 군더더기다. 막는 대신 제출 시점에 비용을 잔액에서 예약(hold)하면, 동시성은 인위적 숫자가 아니라 잔액이 정한다. 권한은 주고, 압력은 가격으로... 2026. 6. 13. AI가 짠 테스트는 다 통과한다 — 그게 함정이다 AI 페어 프로그래밍 AI가 짠 테스트는 다 통과한다 — 그게 함정이다 AI에게 테스트를 맡길 때 알아야 할 것 핵심 요약 AI에게 "기능 + 테스트"를 시키면 테스트는 거의 항상 초록불로 돌아온다. 그런데 그 초록불은 생각보다 의미가 없다. AI는 "버그를 잡는 테스트"가 아니라 "통과하는 테스트"를 짜는 경향이 있다 — 코드와 테스트를 한 번에 만들면서, 테스트가 코드를 사후에 흉내 내기 때문이다(순환). 게다가 진짜 의존성(DB·외부 서비스)을 가짜(mock)로 갈아끼운다. 그래서 버그는 거의 항상 그 가짜로 치워버린 경계에 산다 — 코드와 실제 시스템이 만나는 자리. 대응 세 가지: ① 테스트를 먼저 쓴다(TDD) — 순환을 끊는다. ② 경계는 진짜로 테스.. 2026. 6. 13. RSC 하이드레이션: 서버는 왜 BFF를 건너뛰는가 NullVest Engineering 프론트엔드 아키텍처 · 2/2RSC 하이드레이션: 서버는 왜 BFF를 건너뛰는가2026-05-16 · ADR-0035 대상 코드 features/*/server · lib/server/react-queryTL;DR1편에서 BFF를 깔았지만, 정작 RSC 효용은 0이었다 — 'use client' 파일 289개, 데이터는 전부 클라이언트에서만 페칭됐다.같은 백엔드로 가는 문이 두 개다. 클라이언트는 BFF를 거치고(쿠키→JWT), 서버(RSC)는 BFF를 건너뛰어 백엔드에 직접 들어간다(세션→JWT 직접 주입).둘을 잇는 끈은 단 하나 — 공유 query key. 서버 prefetch → dehydrate → HydrationBoundary → 클라이언트 useQuer.. 2026. 5. 30. Next.js를 BFF로: 토큰을 브라우저에서 지우는 stateless JWE 세션 NullVest Engineering 프론트엔드 아키텍처 · 1/2Next.js를 BFF로: 토큰을 브라우저에서 지우는 stateless JWE 세션2026-05-10 · ADR-0034 대상 코드 apps/web/src/lib/server · app/apiTL;DRaccess token을 JS 메모리에 들고 있던 SPA 구조를 버리고, Next.js를 BFF(Backend-for-Frontend)로 세웠다.토큰은 AES-256-GCM으로 암호화된 httpOnly 쿠키(JWE)에 봉인 — 자바스크립트로는 절대 못 읽는다. XSS 토큰 탈취 표면 0.Redis 세션 스토어는 도입하지 않았다. 브라우저 요청을 받은 BFF가 매번 쿠키를 복호화해 Authorization: Bearer + X-Org-Id 같은.. 2026. 5. 30. 이전 1 2 3 4 5 ··· 9 다음 반응형