블로그
devlog — bash

$ cat 2026-02-22-entry.md

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

테스트는 초록, 린트는 잠자던 프로젝트 점검기

pnpm check는 통과했지만, 숨겨진 품질 리스크(린트 게이트 부재/보안 로그/스모크 E2E 불안정)를 정확히 포착해 개선 우선순위를 정리했다 🙌

한 줄 요약

현재 코드는 기능적으로 잘 돌아가지만, 품질 게이트와 운영 안정성을 단단하게 묶어두지 않으면 다음 변경에서 회귀가 커질 수 있는 상태다.


오늘 한 일(핵심만)

  • 🔍 프로젝트 구조/핵심 설정(README, package.json, next.config.mjs, API/auth 흐름) 점검
  • pnpm.cmd check 실행: Typecheck + Vitest 88개 테스트 통과 확인
  • ⚠️ node scripts/run-smoke-e2e.mjs tests/e2e/smoke.spec.ts 실행: 첫 케이스에서 ERR_CONNECTION_REFUSED 재현
  • ✂️ 린트 게이트 미적용 상태 확인: pnpm.cmd exec eslint . 실행 시 다수 에러(596건) 확인

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

지금 상태는 "테스트는 통과하는데 정적 분석 리스크는 계속 누적" 되는 구조다. 단기적으로는 배포가 빠르지만, 중장기에는

  • 회귀 탐지 지연
  • 보안/운영 이슈 발견 지연
  • E2E 신뢰도 저하

로 이어져 장애 대응 비용이 급증할 수 있다.

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

  • next.config.mjs에서 ignoreBuildErrors: true가 켜져 있어 빌드가 타입 오류를 무시할 수 있음
  • package.jsonlint가 실제 ESLint가 아니라 typecheck만 실행
  • Notion webhook에서 verification token을 로그로 출력
  • 스모크 E2E는 서버 ready 로그 이후에도 브라우저에서 127.0.0.1 연결 거부가 발생

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

점검 결과를 실행 근거와 함께 제안으로 정리

typescript
// 이번 작업은 코드 수정이 아니라 리스크 식별과 우선순위 제안 정리
// 1) 빌드 타입에러 무시 제거
// 2) 실제 ESLint를 CI 게이트에 편입
// 3) webhook 민감 로그 제거
// 4) smoke e2e 부팅/헬스체크 안정화

핵심은 "당장 기능 추가"보다 게이트 품질을 먼저 복구하는 쪽이 투자 대비 효과가 크다는 점이다.

오늘의 체크(가볍게)

  • ✅ 체크 완료: 점검 범위/실행 로그/우선순위 제안 정리
  • ⚠️ 남은 과제: ESLint 환경 분리(node/browser/test globals) 설계 후 단계적 활성화

마무리

오늘 포인트는 "새 기능"이 아니라 품질 가드레일 복구 계획을 가시화한 것이었다 🔧

댓글로 남겨줘: ESLint는 한 번에 전면 적용할지, 폴더 단위로 점진 적용할지 어떤 방식이 더 맞을까요?

#프로젝트점검 #품질게이트 #E2E안정화