엄청난 피드백.
CLI 코드 리뷰에서 받은 피드백과 전체 코드 수정 계획을 정리했다.
개발을 어느 정도 마무리한 뒤, CLI에게 코드 리뷰를 부탁했다. 보안/버그/품질 이슈를 수정하고, 전체 주석 스타일을 통일하는 계획이 나왔다.
//로
통일 - TSX 내부 주석: {/* */}로 통일 - export 되는 함수: JSDoc /** */ +
@example + 간단 설명getContentBySlug,
isContentFolder에서 resolved path가 contentDir 내부인지 검증 -
에러 핸들링: getContentBySlug, scanContentDir에 try-catch
추가dangerouslySetInnerHTML 주의 JSDoc 추가 (신뢰된 HTML만 사용 명시)apps/web/src/widgets/recently-read/RecentlyRead.tsx
console.log(commentedPosts) 삭제-
N+1 성능 개선: findDescription을 Map 기반으로 전환 -
localStorage try-catch: markAsRead, updateReadProgress에
추가.gitignore: #cluade → #claude 오타 수정 - comment-tracker.ts:
localStorage try-catch 추가 - theme-provider.tsx: localStorage try-catch
추가content.ts — path traversal 방어 + 에러핸들링 + 주석article/code-block.tsx — JSDoc 추가 - theme/theme-provider.tsx —
localStorage try-catchblog-search/BlogSearch.tsx — 주석 정리 + JSDoc - header/Header.tsx —
주석 정리 - mdx-renderer/MdxRenderer.tsx — 주석 정리 + JSDoc -
article-toolbar/ArticleToolbar.tsx — 주석 정리 + JSDoc -
comment/GiscusComment.tsx — 주석 정리 + JSDoc - comment/CommentModal.tsx —
주석 정리 + JSDoc - comment/comment-tracker.ts — try-catch + 주석 + JSDoc -
post-explorer/PostExplorer.tsx — 주석 정리 + JSDoc -
recently-read/RecentlyRead.tsx — console.log 삭제 + N+1 수정 + try-catch -
new-posts-carousel/NewPostsCarousel.tsx — 주석 정리 + JSDocpnpm build 성공 확인 2. pnpm test 통과 확인 3. TypeScript 컴파일 에러
없음 확인SEO 블로그기에 필요한 설정, 주석 정리, 라우터 관리 뿐만 아니라, 순회
로직까지도 깐깐하게 체킹해줬다. 그리고 이번엔 커밋을 분리하지 않고 바로 작업
했더니 console.log 지우는거 까먹고, try-catch 빼먹고 난리도 아님.
Post Q&A
엄청난 피드백 전체를 기준으로 질문과 피드백을 받아요.답을 본 뒤에는 이 내용을 댓글로 달아서 서징에게도 물어볼 수 있어요. 작성자가 직접 볼 수 있어요!
CLI 코드 리뷰에서 받은 피드백과 전체 코드 수정 계획을 정리했다.
localStorage만으로 글 읽기 추적, 스크롤 진행률, 댓글 감지를 구현한 과정을 정리했다.
블로그 디테일 페이지에서 MDX를 렌더링하기 위해 검토한 라이브러리들과 최종 선택 과정.
디자인 시스템 구현 시 파일 구조, 디자인 토큰, 유의 사항을 정리했다.
Tailwind v4 환경에서 폰트가 메인 페이지에서만 적용되지 않던 원인과 Hydration Mismatch 이슈를 정리했다.
MDX 파일의 경로 탐색 로직과 콘텐츠 트리 생성 과정을 정리했다.
MDX 파일 구조를 JSON으로 변환하기 위해 Node.js의 fs 모듈을 배워봤다.
SEO Jing 프로젝트의 기술 스택 선정과 전체적인 개발 플로우 정리.
Storybook의 사용법과 디자인 시스템 개발에서의 장점을 정리했다.
MDX의 개념과 블로그에서 활용하는 이유를 정리했다.