HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤎
프론트엔드 데브코스 5기 교육생
/
🦆
더기팀
/
😋
맛남의 길
/
📜
기획서
📜

기획서

😋 맛남의 길

팀명


  • 러비더기
 

프로젝트 이름


  • 맛남의 길 (맛남 Road)
 

서비스 기획 배경 및 필요성


맛남의 길 서비스 기획은 광고나 마케팅이 아닌, 지역 사람들이 진심으로 추천하는 맛집을 찾는 데에 중점을 두었습니다.
맛남의 길은 3가지 필요에 의해 탄생했습니다.
 
마케팅이 필요없는 로컬 맛집
유명한 음식점들의 경우 진짜 맛이 있다기보다 일회성 방문객들을 대상으로 한 마케팅 전략에 의존하는 경향이 있습니다. 하지만 맛남의 길 서비스는 지역민들에게 오랜 시간 사랑받고 있는, 소위 ‘진짜’ 맛집을 탐색하는 데 초점을 맞추어 진정성 있는 식사 경험을 제공할 것입니다.
 
명확한 운영 정보
많은 음식점들이 운영 정보를 충분히 제공하지 않아 소비자들이 불편을 겪고 있습니다. 휴무일, 영업시간, 브레이크 타임 등의 정보가 부족하면 방문 계획을 세우는 데 어려움이 있으므로, 우리 서비스는 이러한 정보를 명확하고 쉽게 제공함으로써 소비자들의 불편을 해소하고자 합니다.
 
과장없는 솔직한 후기
SNS와 블로그 상의 광고와 과장된 정보가 넘쳐나는 상황에서 신뢰할 수 있는 최신 정보와 정확한 후기를 찾기 쉽지 않습니다. 이런 문제를 해결하기 위해, 우리 서비스는 사용자들에게 검증된, 신뢰할 수 있는 식당 정보와 솔직한 후기를 제공하려 합니다. 이를 통해, 소비자들은 더 정확하고 신뢰할 수 있는 음식점 선택을 할 수 있게 될 것입니다.
 
이러한 서비스의 제공은 소비자들에게 더욱 만족스러운 식사 경험을 제공할 것입니다.
 

핵심 기능


  • 자발적 맛집 리뷰 참여이므로, 지역인들 간의 맛집 공유를 목표로 한 진짜 후기 기대 가능
  • 좋아요/싫어요 를 사용해 맛집 후기에 대한 평가를 내릴 수 있음
 

벤치마킹


  • 가슴속 3천원
  • 유투브 또간집
  • 다이닝코드
  • 식신
  • 뽈레
 

타겟층


  • 맛집에 진심인 사람들
  • sns로 맛집 찾기를 즐기는 10대 ~ 30대
  • 오프 모임 후 맛집에 굶주려 있는 프롱이들
 

기대효과


  • 맛집 인증을 통한 높은 신뢰도 확보
  • 부정확하고 불확실한 정보 및 과대 광고를 거를 수 있으므로 편의성 증가

Github 주소


GitHub - prgrms-fe-devcourse/FEDC5_MatNam_Ducki
Contribute to prgrms-fe-devcourse/FEDC5_MatNam_Ducki development by creating an account on GitHub.
GitHub - prgrms-fe-devcourse/FEDC5_MatNam_Ducki
https://github.com/prgrms-fe-devcourse/FEDC5_MatNam_Ducki
GitHub - prgrms-fe-devcourse/FEDC5_MatNam_Ducki
 

🛠️ 기술 스택


언어
TypeScript
라이브러리
React
전역 상태
Recoil
서버 상태
React Query
번들러
Vite
스타일링
@emotion/styled
협업 툴
Notion, Slack, Discord, Github, Figma
API
axios
코드 포맷팅
eslint, prettier, husky
브랜치 전략
Github Flow + dev 브랜치 추가
배포 툴
Vercel
 

기능 명세서

맛남의 길 기능 명세서
화면
세부 페이지
epic
기능
설명
기능 우선순위
구현 여부
디자인 여부
담당 팀원
상태
예제
예제
예제
예제
예제
상
중
하
박경빈
박수현
백준원
윤상민
하송희
회원 가입 페이지
회원 가입
회원 관리
아이디 입력
이메일 형식의 아이디를 입력해야 한다.
상
박수현
예정
회원 관리
비밀번호 입력
비밀번호는 다음 조건을 만족해야 한다. - 8자 이상 - 특수문자를 1개 이상 포함해야 한다.
중
박수현
예정
회원 관리
비밀번호 확인
상단에서 입력한 비밀번호와 일치해야 한다.
상
박수현
예정
회원 관리
사용자 이름
사용자의 닉네임을 입력받는다. 닉네임은 2글자 이상이여야 한다. (중복 금지)
상
박수현
회원 가입 완료
회원 관리
회원 가입 완료
사용자에게 회원 가입 완료 메세지를 띄워주고 로그인하고 메인 화면으로 이동한다.
중
박수현
로그인 페이지
로그인
회원 관리
이메일
사용자는 이메일을 입력한다.
중
하송희
회원 관리
비밀번호
사용자는 비밀번호를 입력한다.
중
하송희
메인 화면 전환
사용자에게 로그인 성공을 알려주고 메인 화면을 보여주도록 한다.
중
하송희
채널 페이지
채널 리스트 화면
채널 목록
채널 선택
사용자는 채널을 선택하여 선택한 채널의 포스트 리스트를 볼 수 있다
메인 페이지
메인 화면
포스트
포스트 확인
사용자는 화면 중앙에서 후기 리스트를 필터링하여 확인할 수 있다. - 최신순 - 좋아요순 - 지역별
상
백준원
포스트
포스트 스크롤
사용자는 포스트 목록을 무한 스크롤을 통해 누적된 포스트를 확인할 수 있다.
상
백준원
포스트
포스트 디테일
포스트를 클릭하면 후기 상세 내용을 볼 수 있다.
상
윤상민
포스트
포스트 디테일 - 사용자
포스트에 있는 사용자 컴포넌트를 누르면 사용자 정보 페이지로 이동한다.
상
윤상민
포스트
포스트 디테일 - 좋아요, 싫어요 버튼
사용자는 포스트에서 좋아요, 싫어요 버튼을 누를 수 있다.
하
윤상민
포스트
포스트 디테일 - 댓글
사용자는 포스트 하단 부분에서 해당 포스트에 댓글을 입력할 수 있다.
하
윤상민
상단 Nav Bar
페이지 전환
상단 채널 이름
채널 선택 화면으로 전환한다.
중
박수현
페이지 전환
검색 Input
Input을 클릭하면 포스트 또는 사용자를 검색할 수 있는 화면으로 전환한다.
중
박수현
하단 Nav Bar
페이지 전환
홈 버튼
사용자는 홈 버튼을 통해 메인 화면으로 이동한다.
중
박경빈
페이지 전환
알림 버튼
사용자는 알림 버튼을 통해 수신된 알림을 확인할 수 있는 화면으로 이동한다.
박경빈
페이지 전환
글 쓰기 버튼
사용자는 현재 채널에 포스팅할 글을 작성하는 화면으로 이동한다.
중
박경빈
페이지 전환
내 이미지 아이콘
사용자 회원 정보 화면으로 전환한다.
중
박경빈
사용자 회원 정보 화면
회원 정보
사용자는 화면에서 본인의 가입 정보를 확인할 수 있다.
중
박경빈
완료
회원 정보
자기 소개 변경
사용자는 자기소개 Input을 클릭해서 내용을 변경할 수 있다.
상
박경빈
완료
회원 정보
프로필 이미지 변경
사용자는 프로필 변경 버튼을 눌러서 프로필 사진을 변경할 수 있다.
중
박경빈
완료
회원 정보
좋아요 목록
사용자는 자신이 좋아요한 후기들을 볼 수 있다.
박경빈
회원 정보
작성한 후기 목록
사용자는 자신이 작성한 후기들을 볼 수 있다.
박경빈
포스트 작성 페이지 구현
글 쓰기
사용자는 현재 채널에 포스팅을 게시, 수정, 삭제할 수 있다.
상
백준원
알림 페이지
알림
사용자는 작성한 후기에 좋아요나 댓글이 달렸을 때 알림 페이지에서 알림을 최신순으로 확인할 수 있다.
중
404페이지
에러 페이지
사용자는 메인 페이지로 리다이렉트하는 버튼을 통해 메인 페이지로 이동할 수 있다.
중
하송희
어드민 페이지
공통 컴포넌트
글쓰기, 수정 페이지
쓰기인지 수정인지 인자를 받아서 readOnly 설정과 버튼의 문구를 변경합니다.
디자인 여부
후기 리스트
무한 스크롤 되는 후기 리스트 컴포넌트를 재사용합니다.
하단 네비게이션
홈, 글, 알림, 프로필 아이콘이 들어있는 네비게이션을 모든 화면에서 사용합니다.
레이아웃
페이지 레이아웃
 

와이어프레임


 
 
 

Prettier


 
{ "singleQuote": true, "semi": true, "useTabs": false, "tabWidth": 2, "trailingComma": "all", "printWidth": 80, "bracketSameLine": true }

ESLint


plugins
  • "unused-imports"
  • "simple-import-sort”
  • "no-unused-vars": "warn"
// 사용해보고 싶은 rules나 plugin이 있다면 자유롭게 추가해주세요!!

코딩 컨벤션


규칙
설명
비고
풀네임을 사용하도록 한다.
btnX buttonO
ㅤ
함수 표현식 사용
변수 혹은 타입 export const func = () => {} 컴포넌트, 페이지 export default func = () ⇒ {}
ㅤ
src경로는 @를 사용합니다.
tsconfig.json, vite.config.ts 설정 참고
ㅤ
함수 네이밍 규칙_세부항목
prop -> onChangeHandler func -> handleChange init, props 같은 약속된 축약어 허용
ㅤ
eslint, prettier 설정
airbnb 기반 설정, 필요한 경우 airbnb 기반에 추가로 설정
ㅤ
주석여부
필요할 경우 함수 혹은 변수 정의 상단에 기입하기 main 브랜치에 병합시 모든 주석 제거 dev, feat 브랜치에는 주석 유지
ㅤ
상수 관리
constants 폴더에서 기능.ts 파일로 관리한다.
ㅤ
스타일 상수 관리
styles 폴더에 theme.ts 파일을 정의해서 사용한다.
ㅤ
컴포넌트 export 방식
export default function 방식을 사용한다.
ㅤ
컴포넌트 및 페이지 작업 방식
컴포넌트의 이름으로 폴더를 만들고 관련 코드를 index.tsx에 선언한다. emotion과 관련된 스타일링 코드는 style.ts에서 선언하고 index.tsx 파일에서 import하는 방식으로 작업한다.
ㅤ

함수 컨벤션


 
// 컴포넌트 export default function Main() { } // 함수 export const function1 = () => {}

디렉토리 구조


 
📦 src ├── 📂 assets (이미지, 폰트) ├── 📂 atoms (recoil) |── 📂 components (컴포넌트) | ├── 📂 Common (재사용가능) |   └── 📂 관심사별로 분리하기 ├── 📂 constants (상수값) ├── 📂 services (API 서비스 로직) ├── 📂 hooks (react hook -> useState, useEffect 사용하는 애들) ├── 📂 pages (페이지별 컴포넌트) ├── 📂 types (타입 선언) └── 📂 utils (유틸 함수 -> 순수 함수)

Vite alias 설정


 
// @/~로 통일 alias: { '@': path.resolve(__dirname, './src'), },

폰트


 
GitHub - orioncactus/pretendard: 어느 플랫폼에서든 사용할 수 있는 system-ui 대체 글꼴 | A system-ui alternative font for all cross-platform
어느 플랫폼에서든 사용할 수 있는 system-ui 대체 글꼴 | A system-ui alternative font for all cross-platform - GitHub - orioncactus/pretendard: 어느 플랫폼에서든 사용할 수 있는 system-ui 대체 글꼴 | A system-ui alternative font for all...
GitHub - orioncactus/pretendard: 어느 플랫폼에서든 사용할 수 있는 system-ui 대체 글꼴 | A system-ui alternative font for all cross-platform
https://github.com/orioncactus/pretendard
GitHub - orioncactus/pretendard: 어느 플랫폼에서든 사용할 수 있는 system-ui 대체 글꼴 | A system-ui alternative font for all cross-platform
 

컬러


https://colorhunt.co/palette/525fe1f86f03ffa41bfff6f4
 

😀 협업 방식


  • 디스코드
  • 노션
  • 슬랙
  • 피그마
  • 디스코드