홈시리즈멘토링

© 2026 정기창. All rights reserved.

본 블로그의 콘텐츠는 CC BY-NC-SA 4.0 라이선스를 따릅니다.

☕후원하기소개JSON Formatter러닝 대기질개인정보처리방침이용약관

© 2026 정기창. All rights reserved.

콘텐츠: CC BY-NC-SA 4.0

☕후원하기
소개|JSON Formatter|러닝 대기질|개인정보처리방침|이용약관

정기창 · 풀스택 개발자

매일 쓰고, 매일 빌드합니다.

NestJS 백엔드와 Next.js 프론트엔드를 하나의 모노레포에서 운영하며 겪은 시행착오, 그리고 AI를 개발 워크플로우에 녹이며 배운 것을 기록합니다.

시리즈로 읽기→소개
최신 글

타입체크도 통과하고 파싱도 정상인데 메시지만 사라졌습니다 — zod 4 무음 실패

메이저 업그레이드에서 무서운 건 깨지는 API라고 생각했습니다. 실제로 위험했던 건 안 깨지는 쪽이었습니다. 타입도 통과하고 파싱도 정상 동작하는데 커스텀 메시지만 조용히 사라지고 있었습니다.

2026. 8. 28.

에이전트 126개가 떴습니다 — 규율로 네 번 실패하고 hook으로 옮긴 판단

AI 에이전트를 몇 개까지 띄울지 스스로 점검하게 하는 규율을 문서에 박아뒀습니다. 네 번 연속 실패했고 네 번 다 제가 비용을 치른 뒤에 발견했습니다. 그래서 판단 자체를 다른 곳으로 옮겼습니다.

2026. 8. 27.

Compiled successfully를 찍고 실패했습니다 — CI가 안 보고 있던 패키지

타입체크가 깨진 채 main에 머물러 있었는데 아무도 몰랐습니다. 그 패키지는 CI에 빌드 잡도 e2e 잡도 없었기 때문입니다. 같은 종류의 구멍이 이 레포에서 세 번째였습니다.

2026. 8. 26.

메뉴를 감췄으니 권한이라고 믿었습니다 — 검사는 처음부터 없었습니다

화면에서 메뉴를 감춰두고 그것을 권한이라고 불렀습니다. 백엔드를 열어보니 메서드 데코레이터를 안 붙인 엔드포인트가 자동으로 admin 전체에게 열리는 구조였고, 누락은 조용히 통과하고 있었습니다.

2026. 8. 25.

프론트 컨테이너가 DB 비밀번호를 들고 있었습니다 — compose 리소스의 env 경계

배포 플랫폼이 compose 리소스의 환경변수를 그 안 모든 서비스 컨테이너에 주입하고 있었습니다. mysql 드라이버가 0개인 프론트가 DB 비밀번호와 토큰 키를 통째로 들고 있었고, 범위를 좁힐 방법은 하나뿐이었습니다.

2026. 8. 24.

빌드는 성공했는데 런타임에 죽었습니다 — Turbopack이 빠뜨린 파일 한 개

배포 도구는 빌드 실패로 기록했지만 빌드는 성공했고 컨테이너가 부팅 중에 죽었습니다. 번들러가 빠뜨린 파일 하나였고, 그 파일이 필요해진 건 한 달 전 Node 버전을 올렸기 때문이었습니다.

2026. 8. 23.

EC2를 띄우기 전에 AWS CLI로 먼저 잰 것들 — 계획서가 틀려 있던 8가지

Coolify를 EC2에 올리기 전, 읽기 전용 describe만으로 계정을 먼저 쟀습니다. 계획서의 1순위 단계는 불필요했고, 정작 필수였던 것들은 계획서에 아예 없었습니다. 비용 0인 준비만 먼저 끝낸 과정을 정리했습니다.

2026. 8. 22.

먼저 온 배포가 양보하게 만들었습니다 — 직렬화가 지켜주지 않는 15분

배포가 겹치지 않게 락을 걸었더니 겹침은 정말 사라졌습니다. 다만 사라진 것은 겹침이지 낭비가 아니었습니다. 뒤에 온 세션은 앞 체인이 끝나기를 기다렸다가 같은 코드를 다시 빌드하고 있었습니다.

2026. 8. 21.

Node.js 20에서 24로 — V8 Maglev가 채우는 빈칸과 기대하면 안 되는 것

Node 20이 지원 종료를 맞아 24로 올리며 확인한 것들. V8의 JIT 계층 구조와 Maglev가 채우는 빈칸, 그리고 합성 벤치마크 35%가 실제 테스트 스위트에서 2%가 되는 이유. 메모리는 오히려 15% 늘고, N-API 덕에 네이티브 모듈 재빌드는 필요 없었습니다.

2026. 8. 20.

주석이 거짓말을 하고 있었습니다 — 이스케이프가 실제로 막는 범위

경로를 감싸는 함수가 콜론을 이스케이프하고 있었습니다. 그래서 윈도우 경로를 막아준다고 주석에 적혀 있었는데, 재보니 콜론만 여전히 실패했습니다. 이스케이프하는 것과 지켜주는 것은 다른 말이었습니다.

2026. 8. 19.
<이전12345...28>다음