devlog — bash
$ cat 2026-02-24-entry.md
date: 2026-02-24read: ~2min
보안 강화 & 죽은 코드 청소로 프로젝트 체력 회복 🛡️🧹
보안 구멍 메우고, 죽은 코드 싹 정리 🛡️🧹
⚡ 로그인/에러 응답/다이어그램(mermaid) 쪽이 특히 신경 쓰여서, 오늘은 보안부터 확실히 잠그고 코드베이스도 한 번 가볍게 청소했습니다. 스모크까지 초록 찍고 main 머지 완료!
한 줄 요약
로그인·에러 응답·Mermaid 보안 설정을 강화하고, 누수/문자 깨짐/미사용 파일을 정리한 뒤 E2E smoke 32/32 통과로 마무리.
오늘 한 일(핵심만)
- 🧯 deprecated
--webpack플래그 제거 (package.json,playwright.config.ts) - 🔐 비밀번호 비교를
crypto.timingSafeEqual+ SHA-256로 교체 (타이밍 공격 방어) - 🚧 로그인 Rate Limit 추가 (IP별 15분 5회)
- 🧼
PreviewClient타이머 cleanup 누락으로 생기던 누수 수정 - 🧷 Mermaid
securityLevel강화:loose→antiscript - 🧾
lib/admin/notion.ts문자 깨짐(Mojibake) 약 40곳 수정 + 콜아웃 이모지 복구 - 🙈 500 응답에서 내부
error.message노출 제거 - 🧪 타입체크 경로 보정:
.next/dev/types추가로 CI/로컬 결과 맞춤 - ✂️ 미사용 webhook 라우트/테스트 삭제 + 빈 디렉토리 4개 정리
- ✅ E2E smoke 32/32 통과 확인 후 main 머지
왜 중요
- 로그인/에러 응답은 공격 표면이 크니, 작은 허점도 빨리 닫는 게 이득.
- 죽은 코드/경고 정리는 탐색 비용이랑 CI 불확실성을 줄여줌.
오늘의 체크
- ✅ Rate Limit 동작 확인
- ✅ 500 응답에서 내부 메시지 미노출 확인
- ✅ Mermaid 렌더링 정상 + 보안 설정 적용
- ✅ 타입체크 CI/로컬 일치
- ✅ E2E smoke 32/32
마무리
다음은 남아 있는 보안 관련 lint 경고랑, 인증/로그인 쪽 테스트 케이스를 조금 더 촘촘하게 보강하면 좋겠습니다.
#보안강화 #레이트리밋 #코드청소 #E2E