next js application 기획 및 폴더구조 파악

Posted by : on

Category : planning


nextjs 로 사이트를 구축할때 a to z까지의 순서를 기록해 보고자 한다. 자세히는 아니고 기획적인 부분만하겠다.

페이지 라우터를 쓸것이고 마지막에 점진적으로 앱라우터로 바꾸는것도 다뤄볼 예정이다.

개념은 안다룹니다.

만들어볼 어플리케이션은 맛집 싸이트이다.

기술 스택

  • next js
  • cna
  • tailwind
  • next auth
  • react query
  • recoil
  • GoDaddy
  • prisma
  • supa-base
  • vercel 배포
  • 구글 애널리틱스 적용
  • 카카오 지도 api

진행순서

1. 프로젝트 세팅 - 페이지 세팅 등

2. 컴포넌트 생성 - 레이아웃, 컴포넌트, 스타일링

3. next-auth 적용

4. 지도 api 등 각종 api 적용

5. 배포 및 도메인 연결

위 순서로 진행 할 것이다.


다이어그램

Pasted image diagram.png


유저스토리

유저 스토리 기능 설계
로그인된 사용자만 지도 서비스를 사용할 수 있다. Next-auth를 이용한 사용자 인증 관리 (SNS 로그인)
지도 마커를 누르면, 해당 마커의 정보를 띄울 수 있다. Recoil을 이용한 마커 관리 (active한 마커 관리)
상세 페이지에서는 맛집 상세 정보 & 댓글을 볼 수 있다. Next.js의 pages를 이용한 라우팅, getServerSideProps로 데이터 가져오기
좋아요를 누르면 찜한 가게 리스트에서 모아볼 수 있다. Like 모델링, 좋아요 누르고 취소할 수 있는 API 설계
상세 페이지에서 댓글을 달 수 있고, 내 댓글만 모아볼 수 있다. Comment 모델링, 댓글 API 설계, 마이페이지에서 사용자 댓글 모아보기
맛집을 리스트로 정렬 & 키워드 검색해서 볼 수 있다. React Query의 infinite scroll 이용한 무한 스크롤, Recoil을 이용한 키워드 검색 및 정렬
새로운 맛집을 등록할 수 있고, 원하는 주소를 넣을 수 있다. Daum 주소 API를 활용한 주소 데이터 생성
지도를 현재 위치로 이동시키고, 내 주변 맛집을 볼 수 있다. geolocation을 활용한 현재 위치 가져오기 적용

폴더구조는 다음과 같다.

최상위 폴더 (폴더명) 설명
pages Pages router (페이지 라우터)
public 이미지 파일 등 정적 파일 관리
src (선택사항) 애플리케이션 소스 폴더

next.js 파일구조

최상위 파일 (파일명) 설명
next.config.js Next.js 프로젝트 설정 파일
package.json 프로젝트 패키지 의존성 및 스크립트 관리
middleware.ts Next.js 미들웨어 파일
.env 환경변수 파일
.eslintrc.json ESLint 설정 파일
.gitignore Git 에서 무시할 파일들 정리
.next-env.d.ts Next.js 타입스크립트 선언 파일
tsconfig.json, jsconfig.json 타입스크립트 / 자바스크립트 설정 파일
postcss.config.js Tailwind CSS 설정 파일

페이지 라우터 파일

파일명 설명
_app.js Next.js 커스텀 레이아웃 및 전역 설정 정의
_document.js Next.js의 커스텀 문서 파일 (HTML 구조 정의, 스타일, 메타태그, 서버 사이드 렌더링 설정)
_error.js Next.js 커스텀 에러 처리 페이지
404.js 404 에러가 났을 때 뜨는 페이지
500.js 500 에러가 났을 때 뜨는 페이지

















출처 및 참고

패스트캠퍼스 강의 중 - 최적화부터 유지보수까지 한번에 끝내기


About 유재석
유재석

개발자 유재석 입니다. Web Developer.

Email : jaeseok9405@gmail.com

Website : https://github.com/yoo94