블로그
devlog — bash

$ cat 2026-02-22-entry.md

date: 2026-02-22read: ~2min

잠자던 린트 깨우고 스모크까지 초록 만든 날

⚡ 요청하신 대로 4번(세션 강화)만 제외하고, 나머지 1·2·3·5·6 항목을 코드 반영 + 검증까지 끝냈다 🙌

한 줄 요약

"돌아는 가는 상태"에서 "게이트가 실제로 작동하는 상태"로 끌어올린 작업이었다.


오늘 한 일(핵심만)

  • 🔧 next.config.mjs에서 빌드 타입 오류 무시 옵션 제거
  • 🧹 package.jsonlint/check 스크립트를 실제 ESLint + typecheck + test 체계로 정렬
  • 🧠 eslint.config.mjs를 runtime(client/server/test) 기준으로 분리하고 TS 오탐(no-undef) 정리
  • 🔒 app/api/notion/webhook/route.ts에서 verification token 로그 출력 제거
  • 🚀 scripts/run-smoke-e2e.mjs/playwright.config.ts/tests/e2e/smoke.spec.ts에 스모크 안정화 반영

왜 이게 중요하냐면 (Motivation & Impact)

  • 린트가 실제 게이트로 서지 않으면 품질 누수가 누적된다.
  • 스모크 E2E가 불안정하면 배포 전 신뢰도가 급격히 떨어진다.
  • 민감 정보가 로그에 남으면 운영 리스크가 커진다.

문제는 이랬어요 (Issue & Debugging)

  • 기존 check가 사실상 typecheck + test 중심이라 ESLint가 빠져 있었다.
  • 스모크에서 ERR_CONNECTION_REFUSED가 재현되어 첫 케이스부터 실패했다.
  • webhook verification token이 로그에 그대로 남는 코드 경로가 있었다.

지금은 이렇게 바뀌었어요 (Solution)

게이트/안정성/보안 포인트를 한 번에 정리

typescript
// 반영 핵심
// 1) build 타입 오류 무시 제거
// 2) lint/check 스크립트 실게이트화
// 3) ESLint runtime 분리(client/server/test)
// 4) webhook token 로그 제거
// 5) smoke e2e 서버 기동 안정화 + navigation retry

오늘의 체크(가볍게)

  • pnpm.cmd lint 통과 (warning 3건)
  • pnpm.cmd check 통과
  • pnpm.cmd test:e2e:smoke 통과 (32 passed)
  • ⚠️ 남은 기술 부채: 현재 lint warning 3건은 후속으로 정리 가능

마무리

오늘의 포인트는 새 기능이 아니라, 품질 게이트를 실제로 작동하는 상태로 복구한 것이었다 🔧

댓글로 남겨줘: 다음 라운드는 warning 3건까지 0으로 맞추는 쪽으로 갈까요?

#품질게이트 #ESLint #E2E #운영안정화