Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 1.76 KB

File metadata and controls

42 lines (30 loc) · 1.76 KB

0001. Next.js App Router를 사용한다

Date: 2026-01-20 Status: Accepted

배경

이 프로젝트는 개인 블로그와 이력서 사이트로 시작했다. 첫 번째로 오래 남은 런타임 결정은 정적 사이트 생성기나 클라이언트 전용 React 앱이 아니라 Next.js 애플리케이션으로 만든다는 선택이었다.

이후 동적 블로그 라우트, 사이트맵과 피드 라우트, 라우트 단위 메타데이터, 조회수 집계를 위한 서버 액션, edge OG 이미지 엔드포인트가 추가됐다. 이 흐름은 별도 백엔드보다 App Router의 기능에 의존한다.

결정

애플리케이션 런타임으로 Next.js App Router를 사용한다. 라우트 진입점은 src/app/**에 두고, 실제 기능 구현은 feature 모듈로 위임한다.

결과

  • 정적 블로그 페이지는 generateStaticParams를 사용할 수 있다.
  • 라우트 핸들러로 rss.xml, OG 이미지, 통합 엔드포인트를 제공할 수 있다.
  • 조회수 집계 같은 변경 작업은 서버 액션이 소유할 수 있다.
  • 라우트 파일에 기능 구현이 과하게 쌓이지 않도록 경계를 유지해야 한다.

검토한 대안

  • 정적 사이트 생성기: 배포는 단순하지만 라우트 핸들러, 서버 액션, 런타임 통합에는 약하다.
  • 클라이언트 전용 React 앱: 렌더링 모델은 단순하지만 글 중심 사이트에 필요한 SEO와 피드 지원에 불리하다.

관련 히스토리

  • 521eae7 (2026-01-20): 초기 프로젝트 설정.
  • eaed3bf (2026-01-20): Markdown 기반 블로그 시스템.
  • b49aa5b (2026-01-23): 사이트맵과 기본 메타데이터.
  • 1df701f (2026-01-27): Next.js 16 업그레이드.
  • 2c92fdc (2026-02-26): 아키텍처 기준 문서 추가.