#nextjs
11개의 게시물
AI 뉴스 자동 수집·발행 파이프라인 구축
🤖 1146 in / 1024 out / 2170 total tokens HackerNews에서 AI 관련 뉴스를 매일 자동으로 수집해서 블로그 포스팅으로 발행하는 파이프라인을 만들었다. 총 3개 모듈로 구성했다. fetch-ai-news.ts는 Algolia HN API에서 Claude, GPT, LLM 등 키워드로 최신 뉴스를 긁어온다. gene
어드민 글 삭제/수정 API를 세션 기반 인증으로 전환
🤖 869 in / 671 out / 1540 total tokens 기존엔 /api/v1/posts/id로 글을 삭제, 수정했다. Bearer 토큰 방식이었는데, 어드민 페이지에서 굳이 이렇게 쓸 필요가 없었다. 이미 NextAuth 세션이 있는데. 그래서 /api/admin/posts/id 경로를 새로 만들고 PUT, DELETE 메서드를 추가했
메인 페이지에 최근글 사이드바 추가
🤖 1042 in / 764 out / 1806 total tokens 메인 페이지에 최근글 사이드바를 추가해 2단 레이아웃을 구성했다. RecentPostsSidebar 컴포넌트를 새로 만들었고, 각 글 앞에 카테고리 색상 dot을 표시한 뒤 제목과 날짜를 보여준다. PostList에 bare prop을 추가해 사이드바 옆에서는 불필요한 wrappe
REST API 문서 페이지 추가 및 네비게이션 연동
🤖 1116 in / 1761 out / 2877 total tokens REST API 문서 페이지를 추가하고 네비게이션 바에 연결했습니다. 새로운 /docs 페이지를 통해 API 레퍼런스를 제공하며, 블로그/프로젝트/About 외에 Docs 섹션을 네비게이션에 추가했습니다. 한국어와 영어 지원을 위해 i18n 딕셔너리에 문서 관련 키를 추가하고,
MarkdownPreview 컴포넌트로 코드 하이라이트 구현
🤖 643 in / 665 out / 1308 total tokens react-markdown과 rehype-highlight 조합으로 마크다운 프리뷰 컴포넌트를 만들었다. 클라이언트 컴포넌트로 선언하고 remark-gfm으로 GFM 문법을 지원하게 했다. rehype-highlight가 코드 블록에 자동으로 토큰 클래스를 붙여주니 별도 파싱 로직
SavedRoutesList 동적 import로 초기 로딩 속도 최적화
🤖 770 in / 1276 out / 2046 total tokens SearchOverlay에서 사용하던 SavedRoutesList를 Next.js dynamic import로 변경했습니다. 사용하지 않는 store import를 제거하고 로딩 스켈레톤을 구현했습니다. 초기 번들 크기를 줄여 사용자 경험을 개선했습니다.
v0.63.0: 저장된 경로, 이제 검색창에서 바로 꺼낸다
🤖 1307 in / 634 out / 1941 total tokens 경로 저장 기능을 메인 UI에 완전히 통합했다. SearchOverlay 하단에 "저장된 경로" 섹션이 새로 생겼고, 저장해둔 경로를 클릭하면 handleRouteSelect 핸들러가 자동으로 검색을 실행한다. 더 이상 별도 페이지로 이동할 필요 없이 검색창만으로 내 경로를 불러올
v0.56.0 - 성능 모니터링 시스템 구축
🤖 1641 in / 730 out / 2371 total tokens 이번 버전에서는 성능 가시화에 집중했다. 사용자 경험을 개선하려면 먼저 측정이 필요하니까. Vercel Analytics를 연동해서 Web Vitals를 자동으로 수집하도록 했다. layout.tsx에 Analytics 컴포넌트 하나 추가하는 걸로 끝이라 간편했다. 여기에 더해
v0.43.0: 폰트와 아이콘 최적화로 PWA 성능 개선
🤖 982 in / 1047 out / 2029 total tokens v0.43.0에서 폰트와 아이콘 최적화로 PWA 성능을 개선했다. Next.js의 next/font를 활용해 Noto Sans KR을 최적화했다. display: swap 옵션으로 폰트 다운로드 전에도 텍스트가 바로 표시되고, preload로 초기 렌더링 속도를 높였다. CSS
v0.28.0 배포: 초기 번들 30-40KB 절감 및 라우팅 최적화
🤖 1268 in / 1850 out / 3118 total tokens 초기 번들 크기를 30-40KB 줄였다. PlaceDetail, SaveRouteDialog, FeedbackWidget 컴포넌트를 동적 로딩으로 변경하여 초기 로드 시간을 단축했다. 복잡한 로직 분리를 위해 shouldDropShortestRoute 함수를 route-utils
v0.24.0: 에러 경계와 성능 모니터링으로 안정성 확보하기
🤖 1752 in / 949 out / 2701 total tokens 앱이 터지면 사용자는 떠난다. 이번엔 에러 처리와 성능 측정을 동시에 잡았다. ErrorBoundary 컴포넌트를 새로 만들어 React 컴포넌트 트리에서 발생하는 에러를 우아하게 처리한다. Next.js error.tsx도 추가해서 루트 레벨 에러까지 커버한다. 사용자에게는 친