📚 목차
기억이 아닌 기록으로 내 장 건강을 확인하세요💩
부글은 사용자가 배변 상태와 생활 패턴을 간편하게 기록하고, 누적된 데이터를 바탕으로 나만의 장 컨디션 패턴을 확인하며 생활 습관을 조정할 수 있도록 돕는 pwa 웹앱 서비스입니다!
- 배변·생활 데이터를 구조화된 방식으로 기록하게 하고, 이를 시각화하여 사용자가 스스로 패턴을 인식하게 한다
- 의학적 근거(브리스톨 척도, 질병관리청, NIDDK) 기반의 룰 테이블로 개인 패턴을 자동 감지하고, 진단이 아닌 생활 습관 개선 가이드를 제공한다
- 기본 기록 30초 완료를 목표로 한 간편 UX로 지속적인 기록 습관 형성을 유도한다
- 병원 방문 시 참고할 수 있는 PDF 리포트를 제공해 실질적인 의료 연계 가치를 제공한다
- 장 건강에 관심 있는 20~30대 대학생·직장인
- 변비, 과민성 대장 등으로 불편을 반복적으로 느끼는 사용자
- 건강 관리 루틴을 만들고 싶지만 기록 습관이 없는 사용자
- 병원 방문 전 자신의 상태를 데이터로 정리하고 싶은 사용자
- 장 기능이 비교적 정상이지만 컨디션을 꾸준히 확인하고 싶은 사용자
| @lycheelove | @zio0225 | @yuuumh | @Sohoo122 |
![]() |
![]() |
![]() |
![]() |
| 리치/김시연 (FE 팀장) | 지오/김지오 (FE 팀원) | 곤/유민형 (FE 팀원) | 호수/이수호 (FE 팀원) |
|---|
| 팀원 | 초기 세팅 | UI 구현 | 기능 구현 |
|---|---|---|---|
| 리치/김시연 | CI/CD 및 Vercel 배포 환경 구축 Tailwind CSS Reset · Global Style · Theme 설정 |
로그인 · 온보딩 홈 |
로그인 · 온보딩 홈 설정 |
| 곤/유민형 | 프로젝트 폴더 구조 설계 절대 경로 설정 PWA 환경 설정 |
알림 설정 |
알림 부글 기록 리포트 |
| 지오/김지오 | ESLint · Prettier 설정 Router 초기 설정 |
리포트 가이드 |
생활 기록 |
| 호수/이수호 | TanStack Query 초기 설정 Axios Instance 설정 |
캘린더 기록 |
캘린더 가이드 |
| 구분 | 기술 스택 |
|---|---|
| 프론트엔드 | |
| 상태 관리 | |
| 스타일링 | |
| 네트워킹 | |
| 패키지 매니저 | |
| 배포 |
project-root
├── public
│ └── icons
└── src
├── layout # 🧱 공통 레이아웃 컴포넌트 (Header, Footer 등)
│ └── 📄 Navigation.tsx
├── pages # 📄 라우팅 페이지 디렉토리
│ ├── calender # 캘린더 페이지
│ ├── guide # 가이드 페이지
│ ├── home # 🏠 기본 홈페이지
│ │ ├── apis
│ │ ├── components
│ │ ├── constants
│ │ ├── hooks
│ │ ├── types
│ │ └── utils
│ ├── login # 로그인 페이지
│ └── report # 리포트 페이지
├── routes # 🗺️ 라우팅 설정
└── shared # ♻️ 전역 공통 코드
├── apis # 공통 API 함수
├── assets # 정적 리소스 (이미지, 아이콘 등)
├── components # 재사용 가능한 공통 컴포넌트
├── constants # 공통 상수
├── hooks # 공통 커스텀 훅
├── styles # 전역 스타일 및 테마
├── types # 공통 타입 정의
└── utils # 공통 유틸 함수
| 화면 | 설명 |
|---|---|
| 🔐 로그인 | 소셜 로그인 및 회원가입 |
| 👤 온보딩 | 사용자 정보 입력 |
| 🏠 홈 | 오늘의 배변 기록 및 요약 |
| 📅 캘린더 | 날짜별 배변 기록 조회 |
| 📊 리포트 | 주간/월간 리포트 및 PDF 다운로드 |
| 📖 가이드 | 장 건강 가이드 및 콘텐츠 |
| ⚙️ 설정 | 프로필 및 앱 설정 |
flowchart TD
A[Splash] --> B[Login]
B --> C[Onboarding]
C --> D[Home]
D --> E[Calendar]
D --> F[Report]
D --> G[Guide]
D --> H[Settings]
1️⃣ main(=master) : 오직 배포를 위한 브랜치
2️⃣ develop : 팀원끼리 작업한 내용(feature)를 합치는 곳
3️⃣ feat : 각 작업에 따라 새로 파고 사용할 브랜치
커밋컨벤션/페이지 or 기능 이름
- 페이지 or 기능 이름은 기능 중심 명사로 작성하며, 너무 길어지지 않도록 한다.
- 여러 단어가 연결될 경우
-로 연결한다.
예시
setting/router-settingfeat/login
기본 양식
커밋컨벤션: 커밋 메시지 (#이슈번호)
이슈 번호를 매번 작성하는 게 번거롭다는 의견이 있어 선택 사항으로 함
예시
setting: eslint 설치 (#10)feat: login form 구현 (#4)refactor: image upload 로직 커스텀훅으로 분리 (#12)
| 머릿말 | 설명 |
|---|---|
setting |
패키지 설치, 개발 설정 |
feat |
새로운 기능 추가 / 퍼블리싱 |
fix |
버그 수정 |
style |
CSS 등 사용자 UI 디자인 변경 |
api |
api 연결 로직 작성 |
refactor |
프로덕션 코드 리팩토링, QA 반영 |
chore |
빌드 테스트 업데이트, 패키지 매니저 설정 (프로덕션 코드 변경 X) |
deploy |
배포 작업 |
comment |
필요한 주석 추가 및 변경 |
test |
테스트 추가, 테스트 리팩토링 (프로덕션 코드 변경 X) |
rename |
파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우 |
remove |
파일을 삭제하는 작업만 수행한 경우 |
docs |
문서 수정 |
!HOTFIX |
코드 포맷 변경, 세미콜론 누락 등 코드 수정이 없는 경우 |
!BREAKING CHANGE |
커다란 API 변경의 경우 |
- 메인 브랜치(
main,develop)에는 직접 커밋하지 않는다. - 모든 커밋은 작업 브랜치(
feat)에서만 진행하며, 브랜치 병합(merge)은 PR(Pull Request)을 통해서만 가능하다. - 작업 전에는 항상
git pull origin develop을 통해 각 feature 브랜치를 최신화해서 관리한다. - 최소 1명 이상의 코드 리뷰 및 approve를 받아야 merge할 수 있다.
📄 펼쳐보기
<!--
제목 작성은 이렇게 해주세요!
작업 종류: 작업한 항목 #이슈번호
ex) Feature: 로그인/회원가입 구현
ex) Remove: 로그인 일부 코드 삭제
-->
<!-- PR 생성 후 팀원들에게 알려주세요.
디스코드에 @everyone을 태그하여 알려주세요. 📢 -->
## 📌 작업 내용
<!-- 이번 PR에서 작업한 내용을 간단히 설명해주세요 -->
## 🔗 관련 이슈
closes #
## 📷 스크린샷 / 영상
<!-- UI 변경이 있다면 스크린샷이나 영상을 첨부해주세요. (선택) -->
## ✅ 체크리스트
- [ ] `develop` 브랜치 기준 최신화 후 작업했어요
- [ ] 빌드 및 동작 확인을 완료했어요
## 💬 리뷰어에게 남기는 말
<!-- 리뷰 시 참고하면 좋을 내용이나 고민했던 부분을 자유롭게 작성해주세요. (선택) -->📄 펼쳐보기
name: ✨ Feature
description: 새로운 기능 개발 / 퍼블리싱 이슈
title: "[Feature] 구현 기능"
labels: ["feat"]
body:
- type: textarea
id: description
attributes:
label: 작업 내용
description: 구현할 기능에 대해 설명해주세요
placeholder: 어떤 기능을 만들어야 하는지 작성해주세요
validations:
required: true
- type: textarea
id: todo
attributes:
label: 할 일 (Todo)
description: 세부 작업 단위를 체크리스트로 작성해주세요
placeholder: |
- [ ] 컴포넌트 구조 설계
- [ ] 퍼블리싱
- [ ] 기능 구현
- [ ] API 연동
value: |
- [ ]
validations:
required: false
- type: textarea
id: reference
attributes:
label: 참고 자료
description: 디자인 시안, 기획서, 관련 링크 등을 작성해주세요
placeholder: Figma 링크, 관련 문서 등
validations:
required: false
- type: textarea
id: etc
attributes:
label: 기타
description: 그 외 공유하고 싶은 내용을 작성해주세요
validations:
required: false


