메이킷_오늘의 다이어트 식단관리
카카오 챗봇을 통해 사용자 정보를 수집하여 기초대사량(BMR)을 계산하고 개인 맞춤형 식단을 제공하는 챗봇 서비스를 개발
2023년 7월 1일부터 2023년 8월 31일까지 (2개월)
- 박유빈: 챗봇 및 서버 개발 총괄
├── app
│ ├── __pycache__
│ ├── static
│ ├── templates
│ │ └── index.html
│ ├── __init__.py
│ ├── constants.py
│ ├── models.py
│ ├── routes.py
│ └── utils.py
├── data
│ ├── menu.json
│ └── users.db
├── myenv
├── README.md
└── main.py
app/
: Flask 애플리케이션의 주요 코드가 있는 디렉토리입니다.__init__.py
: Flask 앱 초기화 및 설정 파일constants.py
: 애플리케이션에서 사용되는 상수 정의models.py
: 데이터베이스 모델 정의routes.py
: Flask 라우팅 및 API 엔드포인트 정의utils.py
: 유틸리티 함수 정의templates/
: HTML 템플릿 파일들이 저장된 디렉토리index.html
: 메인 HTML 페이지 템플릿
static/
: 정적 파일들 (CSS, JavaScript 등)
data/
: 데이터 파일들이 저장된 디렉토리menu.json
: 식단 관련 데이터를 저장하는 JSON 파일users.db
: SQLite 데이터베이스 파일 (사용자 정보, 신체 정보 등 저장)
myenv/
: 프로젝트 가상 환경 디렉토리main.py
: 애플리케이션의 진입점으로, 서버를 시작하는 코드가 포함되어 있습니다.
- 카카오 관련 기술: 카카오 비즈니스와 채널 챗봇을 포함한 카카오 디벨로퍼스 도구들 사용
- 개발 언어: Python 3
- 웹 프레임워크: Flask
- 데이터베이스: SQLite
- 호스팅: AWS EC2 인스턴스
챗봇은 카카오의 챗봇 플랫폼을 활용하여, 다음과 같은 기능들을 제공:
- 사용자 프로필 정보 가져오기 (
GET_USER_PROFILE
) - 개인정보 처리 동의 및 수정
- 신체 정보 입력 및 수정 (현재 체중, 목표 체중)
- BMR(기초대사량) 계산 후 개인 맞춤형 식단 제공 (
TODAY_MENU
)
- menu.json: 각 사용자에게 제공되는 식단 데이터를 JSON 형식으로 저장.
- users.db: 사용자 정보, 신체 정보, 목표 체중 및 체중 변동 이력을 SQLite 데이터베이스에 저장.
-
가상환경 설정: 프로젝트 루트 디렉토리에서 다음 명령어를 실행하여 가상환경을 활성화합니다.
source myenv/bin/activate
-
의존성 설치:
requirements.txt
파일이 있는 경우, 다음 명령어로 필요한 패키지를 설치합니다.pip install -r requirements.txt
-
애플리케이션 실행:
main.py
를 실행하여 Flask 서버를 시작합니다.python main.py
-
서버 접근: 브라우저에서
http://localhost:5000
으로 접근하여 애플리케이션을 확인합니다.
- 사용자 프로필 확인 및 수정: 사용자의 성별, 생년월일, 체중 등의 정보를 확인하고 수정할 수 있습니다.
- BMR 계산: 사용자의 신체 정보를 기반으로 기초대사량을 계산하여 하루 권장 칼로리에 맞춘 식단을 추천합니다.
- 식단 제공: 사용자의 BMR에 맞춘 오늘의 식단을 제공하는 기능을 포함합니다.
- 카카오 인증 블록 문제: 인증 블록이 작동하지 않던 문제를 초기화하여 해결했습니다.
- 체중 입력 오류: 소수점 단위 체중 입력 시 발생하는 오류를 해결할 계획입니다.
- 사용자 경험 개선: 직관적인 인터페이스와 자연스러운 대화 흐름을 통해 사용자 만족도를 높였습니다.
- 데이터 활용 가능성: 수집된 사용자 데이터를 바탕으로 향후 마케팅 전략 수립 및 서비스 개발에 기여할 수 있습니다.