Workout.lol 부활: FSD와 Next.js 기반의 지속 가능한 오픈소스 피트니스 플랫폼 재구축
🤖 AI 추천
이 콘텐츠는 이전 workout.lol 프로젝트의 경험을 바탕으로 Feature-Sliced Design (FSD)과 Next.js를 활용하여 지속 가능한 오픈소스 피트니스 플랫폼을 재구축하는 과정을 상세히 다룹니다. 운동 계획 생성, 진행 추적, 방대한 운동 데이터베이스 관리 및 확장 가능성에 대한 기술적 아키텍처, 커뮤니티 피드백, 그리고 향후 로드맵까지 깊이 있게 다루고 있어 프론트엔드 개발자, 풀스택 개발자, 백엔드 개발자, 그리고 오픈소스 프로젝트 기여에 관심 있는 개발자에게 매우 유용합니다.
🔖 주요 키워드
핵심 기술
이 프로젝트는 이전 workout.lol 프로젝트의 실패 경험을 바탕으로, Feature-Sliced Design(FSD) 원칙과 Next.js App Router를 사용하여 재구축된 지속 가능한 오픈소스 피트니스 플랫폼입니다. 사용자는 맞춤형 운동 계획을 생성하고, 진행 상황을 추적하며, 풍부한 운동 데이터베이스를 활용할 수 있습니다.
기술적 세부사항
- 아키텍처: Feature-Sliced Design(FSD) 원칙을 적용하여
shared
,entities
,features
,widgets
,app
계층으로 명확하게 분리했습니다. 이는 기능별 독립성, 확장성, 코드 유지보수성을 극대화합니다. - 프레임워크: Next.js App Router를 기반으로 구축되어 최신 React 기능과 서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG) 등의 이점을 활용합니다.
- 운동 데이터베이스: CSV 파일을 통한 손쉬운 가져오기를 지원하며, 운동별 상세 정보(설명, 비디오 URL, 타겟 근육 등)를 포함합니다.
id
,name
,description
,full_video_url
,attribute_name
등의 컬럼을 활용하며TYPE
,PRIMARY_MUSCLE
,EQUIPMENT
등 다양한 속성으로 확장 가능합니다. - 개발 환경: Node.js 18+와 PostgreSQL(Docker 활용 가능)을 요구하며, pnpm 또는 npm을 사용합니다.
- 향후 확장 계획: 모바일 앱(React Native), 게임화(배지 시스템), 웨어러블 연동, 커뮤니티 포럼 등 커뮤니티 참여 기반의 기능 확장을 목표로 합니다.
개발 임팩트
- 지속 가능성: 오픈소스 커뮤니티를 위한 지속적이고 안정적인 관리와 발전을 약속합니다.
- 확장성 및 유지보수성: FSD 아키텍처를 통해 각 기능의 독립성을 높여 새로운 기능 추가 및 유지보수가 용이합니다.
- 사용자 경험: 개발자 본인이 실사용자로서 커뮤니티의 필요를 반영하여 사용자 중심의 기능과 경험을 제공합니다.
- 데이터 중심 설계: CSV 기반의 유연한 데이터 임포트 기능으로 운동 데이터베이스를 쉽게 확장하고 커스터마이징할 수 있습니다.
커뮤니티 반응
- 긍정적 피드백: 전 workout.lol 유저 및 개발 커뮤니티로부터 UI 개선, 프로젝트 재구축에 대한 높은 만족도와 지지를 얻고 있습니다.
- 기능 제안: 모바일 앱, 루틴 저장 및 관리 기능, 운동 추천 로직 개선(볼륨, 근육 타겟, 장비 필터링 등), 자세 교정 기능(컴퓨터 비전 활용), AT Protocol 연동 등 다양한 개선 및 확장 아이디어가 제시되었습니다.
- 기술적 문의: 운동 데이터베이스의 포괄성, wger.project와 같은 대안 프로젝트에 대한 비교 분석 및 논의가 이루어졌습니다.
- 버그 리포트: 'error loading exercises'와 같은 초기 버그 리포트가 있었으며, HN 트래픽 급증으로 인한 서버 부하 이슈도 공유되었습니다. 개발자는 이에 대한 수정 및 안정화 계획을 공유했습니다.
FSD와 Next.js를 통한 현대적인 아키텍처 설계, 커뮤니티 피드백 반영을 통한 지속적인 개선, 그리고 오픈소스 정신을 바탕으로 한 프로젝트의 발전 가능성이 높이 평가받고 있습니다.
📚 관련 자료
Next.js
프로젝트의 핵심 프레임워크로, App Router 및 서버/클라이언트 컴포넌트 기반의 현대적인 웹 개발 방식을 제공합니다.
관련도: 95%
Feature-sliced-design
프로젝트 아키텍처 설계 원칙인 Feature-Sliced Design에 대한 문서 및 가이드라인을 제공합니다. 코드 구조화 및 확장성에 직접적인 영향을 미칩니다.
관련도: 90%
wrkout.xyz (exercises.json)
프로젝트에서 언급된 운동 데이터셋의 예시로, CSV 형식의 운동 데이터베이스 구축 및 관리에 대한 참고 자료 및 영감을 제공합니다. 이미지/비디오 포함 오픈 운동 데이터베이스 API의 소스입니다.
관련도: 85%