# Workout-Cool – 오픈소스 피트니스 코칭 플랫폼

> Clean Markdown view of GeekNews topic #21526. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=21526](https://news.hada.io/topic?id=21526)
- GeekNews Markdown: [https://news.hada.io/topic/21526.md](https://news.hada.io/topic/21526.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-06-19T09:47:11+09:00
- Updated: 2025-06-19T09:47:11+09:00
- Original source: [github.com/Snouzy](https://github.com/Snouzy/workout-cool)
- Points: 12
- Comments: 1

## Summary

오픈소스 플랫폼으로 **맞춤형 운동 계획, 진행 기록, CSV 기반 운동 데이터베이스** 등 실사용자와 개발자를 위한 핵심 기능을 제공합니다. **Feature-Sliced Design**과 **Next.js 아키텍처**를 도입해 독립적 구조와 모듈화로 **유지보수성**과 **확장성**을 극대화합니다.

## Topic Body

- **운동 계획 생성**과 **진행 추적**, 그리고 방대한 운동 데이터베이스 제공 기능을 포함  
- 이전 **workout.lol의 실패** 경험을 바탕으로 시작되어, 오픈소스 커뮤니티를 위한 **지속 가능한 진화형 프로젝트**를 목표로 함  
- **Feature-Sliced Design** 원칙과 **Next.js** 기반 아키텍처를 사용해, 기능별 독립성과 확장성, 그리고 코드 유지보수성을 강조함  
- 운동 데이터베이스는 **CSV 파일로 손쉽게 가져오기**가 가능하며, 다양한 운동 특성과 비디오, 주 타깃 근육 등 세부 정보를 포함함  
- 앞으로 **모바일 앱, 배지/게임화, 웨어러블 연동, 커뮤니티 포럼** 등 커뮤니티 참여를 기반으로 지속적으로 기능을 확장해 나갈 예정임  
  
---  
  
### 워크아웃쿨 개요 및 가치  
  
- 워크아웃쿨은 사용자가 맞춤형 **운동 계획을 생성**하고, 자신의 **진행 상황을 기록**하며, 풍부한 **운동 데이터베이스**(설명, 비디오 등 활용)까지 폭넓게 사용할 수 있는 최신 오픈소스 피트니스 코칭 플랫폼  
- 기존 workout.lol 프로젝트의 방치와 폐기를 직접 경험한 개발자가, 운동 커뮤니티를 위해 더욱 **지속 가능하고 현대적인 오픈소스 피트니스 플랫폼**으로 다시 태어나게 함  
  
### 프로젝트 시작과 동기  
  
- **workout.lol 프로젝트의 주요 기여자**로서 영상 제공 파트너와의 협업 실패, 영상 라이선스 비용 문제 등으로 어려움을 겪음  
- 프로젝트가 타인에게 매각된 후 빠르게 폐기되어, 9개월 이상 새 소유자와 커뮤니케이션을 시도했으나 응답이 없음  
- 기존 프로젝트의 가치를 사장시키지 않고, 전체적으로 개선된 현대적인 플랫폼을 새롭게 구축하기로 결정함  
- 이 프로젝트는 상업적 목적이 아님. 오픈소스 커뮤니티에게 신뢰할 수 있는 **유지 관리와 발전**을 약속하는 진화의 의미를 가짐  
  
### 커뮤니티 기반의 운영 철학  
  
- 개발자인 동시에 실사용자로서, 커뮤니티가 필요로 하는 **기능과 경험**을 직접 반영함  
- 과거 workout.lol 유저라면 환영, 신규 유저라면 미래형 피트니스 플랫폼의 가치를 경험할 수 있음  
- 누구나 직접 기여 및 개선 의견 제출 가능  
  
### 운동 데이터베이스 및 가져오기  
  
- 프로젝트에는 **풍부한 운동 데이터베이스**가 탑재되어 있음  
- 예시용 CSV 형식으로, 각 운동의 id, 이름, 설명, 비디오 URL, 사진, 주 타깃 근육, 속성 등 다양한 정보를 커스텀하게 임포트 가능함  
  - 주요 컬럼 예시: id, name, name_en, description, description_en, full_video_url, full_video_image_url, introduction, slug, attribute_name, attribute_value 등  
  - 속성 타입 예시: TYPE(근력/유산소/플라이오메트릭스/스트레칭), PRIMARY_MUSCLE, SECONDARY_MUSCLE, EQUIPMENT, MECHANICS_TYPE 등  
- 한 줄 명령어로 데이터를 바로 import할 수 있어 데이터 확장성이 뛰어남  
  
### 프로젝트 아키텍처  
  
- **Feature-Sliced Design(FSD)** 원칙을 적용한 **Next.js App Router** 기반  
  - 각 기능별로 독립적이고 재사용이 쉬운 구조를 구현함  
  - 명확한 도메인 계층 분리: shared → entities → features → widgets → app  
  - UI, 비즈니스 로직, 데이터 계층의 **일관성** 유지  
- 파일 분리 예시:  
  - `app/` - Next.js 라우트 및 레이아웃  
  - `processes/` - 복합 비즈니스 플로우  
  - `widgets/` - 조립형 UI(예: Sidebar, Header)  
  - `features/` - 주요 단위(인증, 운동 관리 등)  
  - `entities/` - 사용자, 운동, 워크아웃 등  
  - `shared/` - 공통 코드 및 타입  
  - `styles/` - 글로벌 CSS/테마  
  
### 개발 및 배포  
- **Node.js 18+** 필요, PostgreSQL(Docker 혹은 직접 구축), pnpm 또는 npm 필요  
- 클론 후 의존성 설치, 환경 변수 설정, 데이터베이스 세팅(자동 또는 수동), 브라우저에서 http://localhost:3000 접속  
- 직접 데이터베이스 마이그레이션 및 개발 서버 실행 가능  
- Docker 이미지 빌드 및 컨테이너 실행 (예정)  
  
### 예정 기능  
- 운동/비디오 추가  
- 모바일 앱(React Native 기반)  
- 게임화(배지 시스템 등)  
- 고급 진행 통계 및 시각화  
- 웨어러블(워치/트래커) 연동  
- 다국어 지원  
- OAuth 인증(구글, 애플 등)  
- 내장 커뮤니티 포럼

## Comments



### Comment 40318

- Author: neo
- Created: 2025-06-19T09:47:13+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=44309320) 
- 여기서 내 앱 workout.lol을 보니 재밌는 감정 생김  
앱을 한 분께 팔았는데 그분이 그냥 방치해버리는 상황 겪음  
지원 필요하면 연락 달라고 여러 번 문자도 보냈지만 답장 한 번 못 받아봄  
그래도 다시 관리하고 계신 걸 보니 진짜 너무 기쁜 마음  
UI 개선도 훌륭, 정말 멋진 작업  
 - Vincenius네!  
네 이름 뜨는 거 보면서 얼마나 기뻤는지 상상 못할 정도  
나도 별 소득 없이 프로젝트 멈춘 걸 지켜보며 마음이 무너지는 느낌 경험  
이런 게 결국 나로 하여금 모든 걸 다 갈아엎고, 네가 처음 시작할 때 보여줬던 오픈 마인드 유지하면서 재구축하게 만든 원동력  
UI 칭찬 고마움, 네 입장에서 이런 말 듣는 건 큰 의미  
혹시라도 돌아오고 싶으면 언제든 환영  
아이디어나 의견, 존재 자체만 있어도 큰 의미  
 - 이거 정말 멋짐  
나는 Apple CalDAV(iCal)와 연동되는 자동 캘린더 스케줄링 API 작업 중  
목표를 중심으로 스케줄 관리 기능 만듦(Google ORTools로 초대형 CP-SAT 제약 모델 매우 빠르게 연산, 1년치 계산도 5초 이내 처리)  
영양 섭취 목표 맞춘 식단 기능도 같이 포함  
사실 이렇게 운동/트레이닝 플랜 시스템을 꼭 넣고 싶었는데 뭘 쓸지 감조차 없었음  
이제야 뭘 쓰면 될지 명확  
이 프로젝트 만들어줘서 고마움  
 - 혹시나 해당 업계 사람이 무료 대안을 막고 싶어서 사버렸던 건 아닐지 궁금  
이번 프로젝트는 어떤 미래를 맞이할지 지켜보고 싶어짐  
- 나한텐 "error loading exercises"라는 안내 메시지가 뜸  
혹시 wger 프로젝트에 대한 생각은 어떤지 궁금  
[https://github.com/wger-project](https://github.com/wger-project)는 FLOSS AGPL 라이선스 기반의 자가 호스팅 피트니스/운동/영양 관리 플랫폼  
거의 10년은 된 듯한데 django 앱 기반, 공식 flutter 앱도 있어 안드로이드/iOS/윈도우/리눅스/macOS에서 사용 가능  
여러 사용자 지원, 심지어 헬스장 운영에도 활용 가능  
[body.build](https://github.com/Dieterbe/body.build)는 신생 FLOSS 프로젝트로 브라우저 기반, 웨이트 트레이닝 프로그램 구축에 중점  
body.build 저자 역시 wger에도 기여  
나는 오랜 시행착오 끝에 wger를 홈랩에서 잘 활용 중  
자가 호스팅 과정에 고려할 요소가 꽤 있지만 잘 동작  
가장 큰 단점은 운동 데이터베이스의 포괄성인데 다행히 기여자들이 조금씩 확장 중  
운동(및 운동 미디어) 데이터 기여 가능한 분 있다면 이 AGPL 프로젝트에서 분명히 고마워 할 것  
 - 최근 Wget을 써봤는데 안타깝게도 추천은 못함  
웹사이트 UX가 최악이고 모바일 앱은(iOS에서) 버그 천지  
운동 시작/무게 수정/세션 기록 어디를 눌러도 계속 튕기거나 멈춤, 로그아웃 현상 반복  
지금은 LiftLog를 쓰고 있는데 내가 원하는 건 다 지원 및 FOSS  
[https://github.com/LiamMorrow/LiftLog](https://github.com/LiamMorrow/LiftLog)  
피트니스랑 웨이트 트레이닝이 요즘 흔한 취미임에도 쓸 만하고 유지 잘 되는 비상업적 앱이 거의 없는 점 신기  
수십 개 Github 프로젝트 직접 써보고 내린 결론  
 - 같은 오류 발생  
- 나는 약 5년째 웨이트 하면서 오픈소스로 잘 구성된 툴을 보니 뿌듯  
경험 쌓이고 나면 앱의 기능보다 중요한 건 결국 얼마나 꾸준하게 기록해서 점진적 과부하를 관리하느냐임  
이 앱은 입문자가 시작하기에 좋은 선택  
더 넓게 쓰이려면 딱 2가지는 꼭 필요  
1. 모바일 앱(혹은 PWA, 내가 직접 만든 PWA도 네이티브 앱만큼 충분함)  
2. 특정 운동 루틴을 오랜 기간 저장 및 관리하는 기능  
 - 이상적으로는 여러 UI 간에 데이터를 내보내고 공유할 수 있어야 함  
[https://json-schema.app/view/#?url=https%3A%2F%2Fgist.githubusercontent.com%2Fgavmor%2Fb74c4746aa9f3f63b0f50863a5e62d52%2Fraw%2F01318d1107f67ac83387a905d6556736fa7797ff%2Flifting.json](https://json-schema.app/view/#?url=https%3A%2F%2Fgist.githubusercontent.com%2Fgavmor%2Fb74c4746aa9f3f63b0f50863a5e62d52%2Fraw%2F01318d1107f67ac83387a905d6556736fa7797ff%2Flifting.json)  
 - 써보고 적는 고민인데 절대 OP를 깎아내리고 싶은 마음은 전혀 없음  
입문자한테 이런 앱이 좋은 선택일지엔 동의 못함  
노력엔 박수 보내지만 추천 운동 배열이 좀 걱정  
예: ‘등/이두’ 선택하면 9가지 운동이 무질서하게 나옴  
운동 순서나 배열에 대한 배려가 없음, 컴파운드 리프트가 한가운데 등장하거나 친업만 세 번 나오기도  
반복/세트/무게 관련 1RM 계산이 없고  
정석이 아닌 브로 스플릿 추천 및 오히려 더 산만  
장비 기준으로 최소 구성 PPL앱 만들면 이보다 훨씬 나을 수 있겠다는 생각  
 - 체육관 쪽 경험자가 인정해준다니 정말 기분 좋은 느낌  
나도 마찬가지로 경험 쌓이면 결국 중요한 건 진짜 꾸준함 및 진행 상황 기록(나의 경우는 멘탈 관리 목적이라 이제는 성과보다 상태 확인에 중점)  
루틴 저장+장기 추적은 로드맵 포함  
그래서 'workout session' 아키텍처가 구 앱과 아예 다르게 설계  
사용자가 개별 트레이닝 블록을 만들고, 재사용·공유·분석·진화 최적 경험 가능하게 풀어가고 싶음  
혹시 너가 만든 PWA에서 이런 루틴 관리 어떻게 접근했는지 듣고 싶음  
비슷한 길 걸었던 것 같으니 꼭 공유 듣고 싶음  
- 혹시 데이터 소스가 궁금하다면 참고할 만한 프로젝트  
[https://wrkout.xyz/](https://wrkout.xyz/) (이미지/비디오 포함 오픈 운동 데이터베이스 API)  
[https://github.com/wrkout/exercises.json](https://github.com/wrkout/exercises.json) (오픈소스 운동 데이터셋)  
필요시 활용 추천  
 - 예전에 wrkout.xyz 본 적 있는데 진짜 멋진 프로젝트  
이번엔 영상 관련 라이선스 문제 명확히 피하려고 파트너와 데이터셋을 완전히 처음부터 짬  
속성/번역 등 원하는 대로 모두 수정 가능하게 데이터 컨트롤 확보  
그렇지만 이쪽 분야에서 다양한 오픈 프로젝트 나오는 게 너무 기쁘고  
양 커뮤니티 모두 발전할 수 있다면 꼭 시너지 모색하고 싶음  
DM 환영  
 - 이런 게 바로 진정한 컨트리뷰션  
아이디어만 던지는 게 아니라, 이미 데이터셋을 모아줘서 초보자도 바로 시작 가능  
정말 감사함  
- 솔직히 이 앱 생각보다 괜찮음  
내가 원하는 건 운동별 중량/반복 회수 추천 기능  
'100 Pushups'라는 피트니스 프로그램 참고하면 좋음  
- 벌칙으로 최대한 반복(예: 푸쉬업 8개 등)  
- 앱이 일정 생성(3, 4, 3, 3, 5 등 2분 쉬고 반복)  
- 사용자 수준에 따라 반복 횟수를 점진적, 조절형으로 추천  
- 6주차쯤 최대 100개를 달성하게 맞춰 움직임  
관심 있으면 UI 논의도 언제든 환영  
 - 백엔드 포기하고 싶으면 AT Protocol 연동도 아이디어  
사용자 데이터는 전부 PDS에 저장, 별도 서버 불필요  
혹시 프로젝트가 다시 방치돼도 데이터가 영구적으로 작동  
 - 아이디어에 완전 감탄  
이 앱 알고 있음, 진짜 단순하고 적응형 진행방식이 특히 초보 동기부여에 탁월  
자기조절~점진형 루틴 구현 UI 논의 꼭 해보고 싶음  
먼저 (조잡한) 알고리즘 생각해볼 테니 DM 주세요  
- 앱이 좋아 보이나 운동 가져오는 과정에서 오류 발생  
0:{"a":"$@1","f":"","b":"eETmgndxtv4Ar0i8Wync1"}  
1:{"serverError":"An unexpected error occurred."}  
요청 코드(상세 헤더와 정보 입력)까지 공유  
 - 상세 리포트 고마움  
HN 트래픽 급증으로 서버가 예상외로 초토화  
안정화 및 버그 픽스 곧 예정  
테스트와 피드백, 다시 한 번 고마움  
- 여러 기술적 이슈를 겪었고, 이런 건 신생 프로젝트라 이해 가능  
근본적으로는 운동 추천 시스템이 피트니스 프로그램 설계의 핵심을 고려하고 있지 않음  
현 상태에서는 운동 프로그램 디자인 목적으로 사용 추천 어려움  
차라리 루틴 생성보다는 이미 다져진 운동 기록/루틴 템플릿 임포트에 집중하는 게 좋을 듯(이미 여기에 관심 보였던 것도 확인)  
내가 겪은 주요 이슈 목록  
1. 전신 운동 원했는데, 한 세션에 33개나 추천—비현실적  
2. 운동 선택이 근육별 3가지만 랜덤 배정, 다중 근육 타깃/적절 볼륨 배분은 무시  
3. 생소하거나 비효율적인 운동도 자주 추천  
4. 없는 장비도 추천됨, 나는 홈짐 유저라 기계 완전 배제해야 함  
5. 생소한 브랜드 장비 추천  
6. 장비 선택 바꿔도 운동 추천이 그대로 유지  
7. 추천된 운동 못 지우고 새 운동도 못 추가  
 - 나도 비슷한 의견  
UI랑 설명은 진짜 좋은데 운동 선택이(있을 때조차도) 애매하거나 비합리적  
표준 프라이머리/세컨더리(바, 덤벨, 머신) 운동들만 데이터베이스에 다 넣고, 사용자들이 루틴 직접 만들게 하는 게 어떨지  
특정 운동 대체 옵션도 있으면 좋겠음  
이게 다 준비된 뒤에야 루틴 생성 구현, 그리고 실제 트레이너들이 피드백 주면 정말 좋을 듯  
가능한 장비는 심플/스탠다드하게, 브랜디드 머신은 최대한 배제  
 - 이렇게 정성스러운 피드백 남겨줘서 진심으로 고마움  
이런 디테일한 의견이 이른 시점에서 특히 큰 힘  
운동 프로그램 로직이 지금은 정말 기초적  
트레이닝 원칙(볼륨, 동작 패턴, 회복주기, 컴파운드/아이솔레이션) 반영 아직 부족  
지금 버전은 진짜 '발견용'이지 똑똑한 코치는 전혀 아님  
이 사실을 UI에서 분명히 안내해야 할 것  
구체적 질문 답변  
1. 33개 추천된 건 완전 오버킬(웃음)  
2. 맞음, 현재 근육별 3개만 무작정 추천, 앞으로 논리 보강  
3. 컴파운드/아이솔레이션 등으로 분류, 주요/보조 근육/동작 패턴/저항 퀄리티, 인기 태그도 메타데이터 추가 작업 중  
4. 기계 제외 등 특정 장비 완전 배제도 옵션 추가 고민  
덤벨/철봉 있지만 케이블/머신은 안 쓰고 싶다는 니즈 충분히 이해, 이 부분 UI 구체화  
5. OK  
6. 장비 바꿔도 리스트 안 바뀌는 버그 있음, 곧 수정  
(지금은 2번 반복 필요, 렌더 문제)  
7. 루틴 전체 편집 곧 지원  
좋은 원칙에 따라 개선하고 싶음, 가능하다면 방향성 정하는 데 아이디어라도 함께했으면 함  
- 다른 분들이 ‘자세 교정’의 중요성 언급했는데, 혹시 오픈소스 컴퓨터 비전으로 자세/폼 체크해주는 기술이 있는지 궁금  
소비자용 하드웨어에서 직접 배포 및 사용 가능한 솔루션이면 더욱 관심 생김  
- 장비/근육 선택이 필수가 아니라면 더 좋겠음  
예를 들어, 나는 철봉이 있는데 어떤 근육을 운동할 수 있는지 몰라  
차라리 ‘입문 용이’ 필터 방식은 어떨지  
 - 나 역시 이 부분 생각 안 했는데, 현 플로우가 초반에 너무 많은 지식을 요구  
다른 분들도 비슷한 피드백 주심  
필터 옵션을 선택 사항으로 바꾸고, '입문자 친화', '인기 운동', '칼리스테닉스' 등 추천 추가 예정  
알려줘서 고마움  
 - 그럼 장비로 철봉만 선택하면 되지 않음?  
- 입문자로서 가장 먼저 느낀 건 근육 선택 UI의 화려함과 동시에 혼란  
초반 온보딩에서 근육 선택이 필수인데, 어떤 루틴이 어떤 근육을 타깃으로 하는지 모르는 초보 입장에서는 진입장벽  
"푸시", "풀", "레그" 정도는 대충 알지만, 구체적 근육명은 낯설기만  
결국 이 앱은 해부학을 공부할 사람만 쓰기에 맞춤  
조금이라도 더 쉽게 진입할 수 있을 방법 고민 필요  
예: 추천 근육 그룹, 프리셋  
 - 솔직피드백 고마움  
지금 온보딩은 지식 가정이 너무 큼(예상보다 더 많음)  
초보들은 "후면 삼각근"이나 "광배"가 아니라 그냥 강해지고 싶고, 몸 좋아지고 싶을 뿐  
다음 업데이트에  
- 근육 선택 옵션화(혹은 건너뛰기)  
- 입문자용 프리셋(전신, 상체 등)  
- "가슴+삼두(푸시)", "등+이두(풀)" 등 도움말 라벨 프리셋 등  
처음부터 해부학 공부 안 해도 곧장 시작할 수 있는 친화적 경험 만드는 게 목표  
네 피드백이 진짜 큰 도움  
피트니스 여정 응원  
 - '푸시' '풀'은 어렵게 느낄 수 있지만, '레그' 모르면 그건 너무 모르는 거 아닐지(조크)
