
1. 기존 목표
운동과 식단을 꾸준히 기록하고, 이를 바탕으로 GPT가 내 상태를 분석해주도록 하고 싶었다. 핵심은 하루의 기록을 구조화된 데이터로 안전하게 저장하고, GPT가 읽을 수 있게 만드는 것이었다.
2. 운동 기록 구조 개선

기존에는 하나의 테이블에 날짜, 운동명, 세트 수, 무게, 반복수 등을 모두 넣고 있었는데, 이 방식으로는 세트별 상세 기록이 불가능했고 운동별 분석이 어려웠다. 그래서 다음처럼 설계 구조를 개선했다:
- workout_sessions: 운동 날짜, 부위, 최대 중량, 총 볼륨 등 한 번의 운동 요약
- workout_sets: 각 세트별 중량, 횟수, 휴식 시간 등 상세 기록 (최대 10세트 이상도 가능)
장점:
- GPT가 세트별 피로도나 무게 증가 패턴까지 분석 가능
- JSON 구조로 쉽게 가공되어 응답할 수 있음


3. 식사 기록 기능 추가
하루의 식사도 구조적으로 기록하고 싶었다.
예를 들어:
아침: 블루베리 50g, 요거트 50g, 단백질쉐이크 2스쿱, 점심: 와퍼주니어, 저녁: 감자 150g, 삶은 계란 3개
이런 식의 기록을 자동으로 정리해주려면, 다음과 같은 DB 구조가 필요했다
- meals: 날짜 + 식사 시간대(아침, 점심 등)
- meal_items: 각 식사에 포함된 음식 이름, 중량(g), 단위(1개, 1스쿱 등)
- nutrition_info (계획 중): GPT가 자동으로 칼로리/단백질 등을 계산해 채워넣는 테이블
4. FastAPI 기반 REST API 구축
각 테이블에 맞게 다음 API를 만들었다
| POST | /workout/save | 운동 세션 + 세트를 함께 저장 |
| GET | /workout/latest | 최근 운동 기록 조회 |
| POST | /meal/save | 하루 식사와 음식 항목을 저장 |
| GET | /meal/latest | 최근 식사 기록을 불러오기 |
모든 API는 GPT와 연결 가능한 형태로 OpenAPI 스펙을 작성해서 등록했고, 실제로 ChatGPT GPTs 도구에서 호출이 가능하게 구성했다.
5. 다음 목표
다음에는 저장된 운동/식사 기록을 수정할 수 있는 API를 추가할 계획이다.
예:
- 운동 세트 중 3세트의 중량을 잘못 넣었을 때 수정
- 저녁에 먹은 음식 중 ‘삶은 계란’을 삭제하거나 바꾸고 싶을 때
이렇게 GPT가 내 기록을 분석하는 데 오류가 없도록 유지하려는 게 최종 목표다.
6. 마무리
이제 내 하루의 루틴은 내가 직접 만든 API로 기록된다. 운동, 식사, 컨디션을 모두 데이터로 남기고, 그 데이터를 바탕으로 GPT가 나에게 말 걸어줄 수 있다는 건 내가 AI 를 지배하는걸까? AI 가 나를 지배하는 걸까?
햇갈리기 시작하지만 그래도 생각해본 것을 실제로 만들어보는 것이 재미 있으니 마무리를 잘 지어보도록 하자!
'Project > 개인 Project' 카테고리의 다른 글
| [Project] Proxmox 로 개인 가상화 서버 구축하기 -1- (2) | 2025.07.29 |
|---|---|
| [Project] ChatGPT + 개인 DB 기반 운동기록 API 서버 구축기 -2- (0) | 2025.07.15 |
| [Project] ChatGPT + 개인 DB 기반 운동기록 API 서버 구축기 (1) | 2025.07.14 |
| [개인 Project] NAS 를 이용한 개인 모니터링 시스템 구축하기 -3 편 (WAS 와 DB 연동) (1) | 2025.05.22 |
| [개인 Project] NAS 를 이용한 개인 모니터링 시스템 구축하기 -2 편 (데이터 DB 저장) (4) | 2025.05.20 |