1분반-컴통수

cdc wiki
Com238 (토론 | 기여)님의 2024년 12월 10일 (화) 23:29 판 (소프트웨어 설계)
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : 커스텀 운동 기록 피트니스 어플리케이션

영문 : Custom exercise log fitness application

과제 팀명

컴통수

지도교수

최혁 교수님

개발기간

2024년 9월 ~ 2024년 12월 (총 4개월)

구성원 소개

서울시립대학교 수학과 2019540035 주현도(팀장)

서울시립대학교 컴퓨터과학부 2019540035 나인규

서울시립대학교 통계학과 2020580021 오제건

서론

개발 과제의 개요

개발 과제 요약

◇ 시중에는 다양한 피트니스 분야의 어플리케이션이 출시되어 있는데,그중에서 운동과 관련된 어플리케이션이 가장 사용자가 많음
◇ 운동 관련 어플리케이션 중에서도 운동 기록 기능을 가진 어플리케이션이가장 활발하게 이용되는 편인데, 그런 어플리케이션들은 사용하기에 너무 복잡하거나,기능이 제한적인 미흡한 부분이 존재함
◇ 따라서 우리는 이러한 문제를 해결할 수 있는 운동 기록 어플리케이션,더 나아가 운동을 추천까지 해줄 수 있는 어플리케이션을 개발하고자 함
◇ 이 어플리케이션을 통해 사용자들로 하여금 자신의 운동 결과를 손쉽게 기록하고,개인화된 운동 목표를 설정하며, 커뮤니티를 통해 동기부여를 받는 등종합적인 피트니스 플랫폼을 제공하는 것을 목표로 함

개발 과제의 배경

개발 과제의 배경은 다음과 같다.

◇ 쉽게 식지 않는 운동 열풍
컴통수 01.png컴통수 02.png
- 코로나 펜데믹 이후로 사회적 거리두기 제도가 시행됨에 따라서 많은 사람들이실내에 있는 시간이 크게 증가하게 되면서 건강과 피트니스에 대한 관심도가 크게 증가
- 또한 건강에 대한 관심의 급증과 함께 자기 관리에도 관심도가 몰리면서,스스로 몸을 가꾸기 위해 헬스나 필라테스 등의 운동을 하는 사람들의 수가 꾸준히 증가
- 게다가 이런 자기 관리를 위한 운동 외에도, 젊은 층을 중심으로골프, 클라이밍, 테니스, 러닝 등 특정한 구분 없이 다양한 스포츠가 인기를 얻음


◇ 피트니스 어플리케이션 시장의 성장
컴통수 03.png컴통수 04.png
- 운동 열풍이 지속됨에 따라 국내 피트니스 어플리케이션의 시장도 함께 성장했는데,코로나 이후로 피트니스 어플리케이션 다운로드 수 증가율이 거의 30%에 육박함
- 피트니스 어플리케이션에서도 금연, 음주, 운동, 식생활 등 다양한 분야가 존재하는데,이용자 수와 연도별 이용 경험자 증가 폭이 가장 큰 분야는 운동과 관련된 서비스임


◇ 운동 기록과 소셜라이징
컴통수 05.png
- 운동하면서 과정이나 결과를 모바일 어플리케이션을 통해 기록하는 사람들의 비율이꽤나 높은 것으로 나타남
- 운동 기록을 통해 과정을 가시화하여, 계속해서 운동을 이어 나갈 수 있는 동기부여 요소를형성하고, SNS를 활용해 운동 기록이나 성과를 공유하며 서로 응원하거나경쟁 하는 모습을 쉽게 확인할 수 있음
- 그렇게 기록 공유를 통해 운동 자체를 소셜라이징의 수단으로 활용하여,이제는 운동 기록 및 공유 과정은 하나의 문화로 자리잡음


개발 과제의 효과는 다음과 같다.

◇ 자유로운 운동 기록
- 운동 횟수, 종목에 구애받지 않고 자유롭게 본인이 원하는 방식으로 운동 기록 가능
- 커스텀 가능한 UI를 통해 본인에게 적합하고 쉬운 방식으로 운동 기록 가능

◇ 운동 추천을 통해 쉬운 목표 설정
- 데이터에 근거한 합리적인 목표 설정으로 점진적인 신체적 성장 가능
- 경험하지 못한 운동 종목에 대해서도 목표를 설정하여 새로운 운동 도전 용이

◇ 무료 서비스
- 구독료가 없어도 운동 기록 및 공유할 수 있어 재정적 부담 감소

◇ 운동 공유 및 커뮤니티 형성
- 운동 정보나 방식에 대하여 쉽게 공유하고 정보를 습득
- 함께 운동하고 싶은 경우, 사람을 쉽게 모을 수 있어 운동 동기부여 제공

개발 과제의 목표 및 내용

◇ 커스텀 가능한 자유로운 형식의 운동 기록
- 운동 기록을 위한 커스텀 UI 구성을 목표로 함
- 자신에 취향에 맞게 UI 이동 및 형태 변화 가능
- 텍스트, 표, 그림 등 다양하게 조정 가능

◇ AI를 통한 운동 목표, 종목 추천
- 운동 추천 AI 구성 및 만족도 증대를 목표로 함
- 자신의 운동 목표에 맞는 운동 강도, 종목 추천
- 자신의 운동 현황에 따라 운동 강도, 종목 추천

◇ 운동 커뮤니티
- 운동 종목별 커뮤니티 개발을 목표로 함
- 카테고리 분류를 통해 운동 종목별 커뮤니티 게시
- 자유롭게 글을 쓰고 댓글을 달 수 있는 환경 조성

◇ 모임 구성 기능 제공
- 빠르고 간편한 모임 구성을 목표로 함
- 운동 종목, 구성 인원 수, 위치에 기반하여 운동 모임 구성

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황

◇ 어플 요약
- 사용자에게 운동 기록을 입력받아, 그 기록과 체성분 정보를 활용하여 운동 루틴을 추천한다.
- 운동 루틴을 추천하는 방법론으로 Large Language Model(LLM)을 사용하고자 한다.
- 운동 기록 추천 과정에서 다양한 전문 지식을 참고할 수 있도록 한다.


◇ LLM 역사
LLM은 언어를 생성하거나 Natural Language Processing Task를 가능하도록 만든 딥러닝 모델이다.
LLM이 발전된 순서로 설명하고자 한다.

- Recurrent Neural Net(RNN)
순차적인 데이터를 처리하기 위해 설계된 신경망이다. 이전의 상태를 다음 상태에 전달하는 구조를 가지고 있기 때문에, 텍스트나 시계열, 음성 데이터 등에 주로 사용된다. 하지만, 기울기 소실 문제로 인해, 먼 과거의 정보를 효율적으로 기억하지 못하는 한계(장기 의존성 문제)가 존재한다.

- Long Short-Term Memory(LSTM)
RNN의 장기 의존성 문제를 해결하기 위해 고안된 모델이다. cell state와 3개의 게이트 구조(입 력·출력·망각 게이트)를 활용하여 이를 해결하였다. 따라서 더 긴 텍스트나 시계열, 음성 데이터에서 효과적인 성능을 보였다.

- Attention Mechanism
LSTM 및 RNN의 한계를 극복하기 위해 도입된 개념이다. 모델이 전체 시퀀스에서 특정 위치에 있는 요소를 집중해서 처리할 수 있도록 설계한 메커니즘 이며, 병렬처리가 가능하기 때문에 처리 속도 또한 향상되었다.

- Transformer
Attention Mechanism 중심으로 설계된 모델이다. Self-Attention Mechanism을 활용하여 시퀀스내 모든 요소들이 다른 모든 요소들과 얼마나 관련되어 있는지 계산한다. 이를 통해 전체적인 시퀀스 파악이 가능하며 장기 의존성 문제를 효과적으로 해결하였다. 또한, Encoder-Decoder 구조를 사용하여 시퀀스를 잘 추론(encoder)하고 생성(decoder)할 수 있다. Transformer가 발전하면서 BERT, GPT 같은 LLM 모델이 탄생했다.


◇ LLM 최근 동향
LLM 기반 모델이 최근에 어떤식으로 개발되는지 설명하고자 한다.

- Reinforcement Learning from Human Feedback(RLHF)
강화학습에 대하여 인간의 피드백을 적용해 학습하는 방법론이다. 인간의 피드백을 가지고 학습에 활용하기 때문에 더 좋은 성능을 기대할 수 있다. 이와 관련된 예시로는 GPT의 이지선다 질문과 Claude 모델이 있다.

- Direct Preference Optimization(DPO)
RLHF 방법론에서 특정 프로시저를 제거해서 Human Feedback을 사용해도 좋은 성능을 내는 모델이다. 이 방법론은 최근에 논문을 통해 알려졌으며, 이와 관련된 후속 연구가 진행될 것을 보인다.

- Multimodal
하나의 인공지능 모델이 텍스트와 이미지 데이터 등을 동시에 처리하고 이해할 수 있는 모델이다. 따라서 이미지를 가지고 텍스트로 설명하거나, 텍스트를 가지고 이미지를 만들어 낼 수도 있다. 이와 같은 모델의 예시로는 GPT-4와 DALL-E가 있다.

  • 특허조사 및 특허 전략 분석

특허조사

◇ ‘운동 기록’ 관련 특허(출원번호: 10-2011-0086142)
운동 기구에 QR코드를 부착 후, 연동되는 앱을 통해 QR코드를 인식시킨 후 운동하면 그 정보가 알아서 저장되고 관리되는 특허이다.

◇ ‘기록 기반의 헬스 트레이닝 시스템 제어’ 관련 특허(출원번호: 10-2012-0052321)
사용자의 운동정보를 중앙서버로 보내고 트레이너는 그 정보를 한번에 체크해서 적절한 헬스 트레이닝 시스템을 제공한다.

특허전략

◇ 운동 기구가 없는 경우(QR코드를 부착하기 어려운 경우)에도 운동 기록을 저장할 수 있는 방향으로 개발하면 좋을 듯하다.

◇ 자동 운동기록 저장을 지원하는 기구에서만 사용할 수 있으므로, 여러 운동기구를 커버할 수 있는 우리 애플리케이션이 장점을 갖는다 생각한다. 추가적으로 사용자 편의성을 추구하는 기록방식을 사용하면 가능성이 있을 듯하다.

◇ 정보들이 서버에 저장되고 다른 사람이 이 정보를 본다는 것은 부담이 될 수 있다. 이러한 부분을 고려해서 개발을 하면 가능성이 있을 듯하다.

  • 기술 로드맵

컴통수 06.png

시장상황에 대한 분석

  • 경쟁제품 조사 비교


◇ 비슷한 기능을 갖는 ‘플랜핏’, ‘번핏’, ‘인바디’, ‘플릭’, ‘바디캘린더’에 대하여 조사를 진행. 또한, 완성된 우리 제품과의 비교 진행.
◇ 경쟁제품 및 우리 제품과의 비교
컴통수 07.png

  • 마케팅 전략 제시


1. SWOT 분석

◇ 강점 (Strengths)
- 사용자 경험 수준에 따른 맞춤형 서비스 및 다양한 운동에 대한 편리한 기록 및 관리 지원
- 운동 기록, 목표 설정, 커뮤니티 기능 등 종합적인 피트니스 플랫폼 제공

◇ 약점 (Weaknesses)
- 시장에 후발 주자로 진입하여 기존 사용자 기반이 부족
- 초기 데이터 부족으로 인한 AI 추천 시스템의 정확도 한계
- 다양한 기능 개발 및 유지보수에 따른 높은 초기 개발 비용

◇ 기회 (Opportunities)
- 코로나 이후 증가한 개인 건강관리에 대한 관심
- 피트니스 어플리케이션 시장의 성장세 유지
- 젊은 세대 위주의 운동 열풍

◇ 위협 (Threats)
- 기존 유사 서비스와의 치열한 경쟁
- 대형 IT 기업들의 헬스케어 시장 진출

2. SWOT 분석 기반 마케팅 전략

◇ 강점-기회(SO) 전략
- 커뮤니티 강화를 통한 소셜 피트니스 트렌드 주도
- 개인화된 소셜 피트니스 플랫폼을 제공하여 사용자 기반 및 데이터 확보

◇ 강점-위협(ST) 전략
- 다양한 운동 종류에 대한 포괄적인 기록 및 관리를 통한 차별화
- 사용자 경험 최적화를 통한 경쟁력 유지

◇ 약점-기회(WO) 전략
- 젊은 세대의 운동 열풍을 겨냥한 마케팅을 통해 초기 사용자 기반을 빠르게 확보
- 코로나 이후 계속해서 변화하는 운동 트렌드에 맞게 단계적으로 개선하여 초기 개발 비용 관리 및 시장 진입 속도 향상

◇ 약점-위협(WT) 전략
- 아직 활성화된 서비스가 존재하지 않는 특정 운동 분야나 사용자 그룹을 발굴하고, 집중적으로 공략하여 차별화된 서비스 제공 및 고객 확보
- 초기 사용자 대상으로 데이터 입력을 유도하여 AI 추천 시스템의 정확도를 바르게 향상시키고, 사용자 기반을 확대

개발과제의 기대효과

기술적 기대효과

◇ 운동을 처음 시작하는 사용자에 대하여 쉽고 편리하게 운동 기록을 정리할 수 있고,추천을 받으면서 운동을 할 수 있으며, 커뮤니티에서 정보를 얻거나 단체 운동을 하며운동을 습관화 할 수 있음.
◇ 운동을 이미 하던 사용자에 대해 기록할 수 있는 운동의 제약 없이,모든 운동 기록을 하나의 애플리케이션에서 관리할 수 있고, 목표 달성을 위한 추천을 받을 수 있음.
◇ 커뮤니티에서 그 운동 분야 전문가와 서로 이야기를 나눌 수 있으며,운동 초심자와 함께 하면서 더 높은 성취감을 얻을 수 있음.

경제적, 사회적 기대 및 파급효과

◇ 기존 운동 기록 애플리케이션에서는 약 10,000원을 내야만 완전한 기능을 사용할 수 있었음.운동을 처음 시작하는 사람들에게는 이러한 유로 구독이 비싸게 느껴질 수 있고,이는 진입 장벽으로 여겨질 수 있다. 우리 애플리케이션에서는 기본적인 기능을 무료로 제공하여많은 사람이 부담이 사용할 수 있도록 함.
◇ 요즘에 들어 성인들이 본인의 운동 기록을 공유하고 여러 사람과 소통하는 것은 트렌드임.우리 애플리케이션은 이러한 트렌드를 따라가기에 적합하다. 운동 기록에 대하여 서로 응원받고,같이 운동할 기회를 제공하며 많은 사람이 사용할 수 있을 거라 생각함.
◇ WHO에서 분석한 데이터에 의하면, 전 세계 성인 가운데 31%인 18억 명 정도가신체 활동 권장량을 채우지 못한 것으로 파악한다 말함.우리 애플리케이션을 사용하면, 운동을 기록하고 공유하면서 사람들과 소통할 수 있으며,여러 사람과 같이 운동하는 기회를 제공하므로 중간에 포기하는 행위를 줄여결과적으로 운동을 꾸준히 할 수 있도록 도와줌.이러한 효과들은 신체 활동 권장량을 채울 수 있도록 도와주며,많은 사람이 건강하게 살 수 있도록 영향을 줌.

기술개발 일정 및 추진체계

개발 일정

컴통수 08.png

구성원 및 추진체계

◇ 주현도 (팀장)
1. 프로젝트 기획 및 매니징
2. 어플리케이션 UI/UX 디자인
3. 발표 자료 제작 및 각종 보고서 작성
4. 웹 및 어플리케이션 개발
5. AWS 인프라 구성 관리
6. Amazon Bedrock을 사용한 RAG 기반의 추천 시스템 구축
7. 프로젝트 발표 진행

◇ 나인규 (팀원)
1. 프로젝트 기획
2. 데이터베이스 설계 및 생성
3. API 명세 작성 및 구현
4. 토큰 관리 및 제공
5. 추천 시스템 배치 프로그램 개발
6. 각종 보고서 작성 및 진행 상황 발표

◇ 오제건 (팀원)
1. 프로젝트 기획
2. Amazon Bedrock을 사용한 RAG 기반의 추천 시스템 구축
3. LM 프롬프트 엔지니어링
4. RAG 아키텍쳐 구현을 위한 전문지식 데이터 취합
5. 추천 시스템 피드백 진행
6. 각종 보고서 작성 및 진행 상황 발표

설계

설계사양

사용자 요구사항

컴통수 09.png

사용자 요구사항 만족을 위한 기능 정의 및 기능별 정량목표

컴통수 10.png

기능 구현을 위한 세부기술 선택사항 (디자인)

◇ 사용자에게 더 효과적인 운동 강도 및 플랜 추천을 위해, 운동 관련 전문 지식 데이터를 참고해서 추천할 수 있도록 RAG 아키텍쳐 적용
◇ 사용자가 짧고 간결한 추천을 받을 수 있도록, 꾸준한 프롬프트 수정
◇ 사용자에게 다양한 커스텀 UI 제공을 위해 네이버 폼, 구글 폼 등을 참고
◇ 다양한 기록 폼들을 Figma를 통해 Wire frame 작성
◇ UI 간 통일성을 주기 위해 색상, 폰트, 로고 등을 정의하고 디자인 일관성을 유지, 이를 통한 만족도 높은 디자인 제공
◇ 사용자가 편리하게 모임기능을 사용할 수 있도록, 주변 사람들로부터 아이디어를 모으고 개발 진행
◇ 행정구역 관련 api를 사용하여 사용자 근처에 있는 모임을 간편하게 확인할 수 있도록 개발 진행
◇ 에브리타임, 시대생 등의 앱을 참고하여 사용자 친화적인 커뮤니티 탐색
◇ 사용자가 불필요했던 부분은 지우고, 더 필요한 부분을 추가해서 완성도 있는 커뮤니티 기능 구현

개념 설계안

◇ 사용자 인증
- 소셜 로그인 방식을 통해 로그인을 진행한다.
- 사용자 계정이 없는 경우에는 회원가입을 진행한다.

◇ 운동 목표 설정
A. 목표 설정
컴통수 11.png
- 앞으로의 추천 시스템에서 활용하기 위해 사용자의 몸무게, 키 등의 체성분 정보를 입력 받는다.
- 체지방 감량, 근육량 향상, 체력 향상 등 제시된 다양한 목표 중에서 원하는 목표를 선택한다.

B. 목표 달성도 시각화
- 목표 달성도에 따라 메달을 부여하여, 꾸준히 운동을 할 수 있도록 동기부여 요소를 제공한다.
- 운동 기록 특정 횟수 달성, 운동 메이트 찾기 특정 횟수 달성 등 꾸준히 운동을 하며 어플리케이션 활용도를 높일 수 있도록 다양한 재미 요소를 제공한다.
- 목표 당성 및 운동 기록 작성 등을 통해 받은 전체 메달을 조회하는 기능을 제공한다.
- 받은 메달을 커뮤니티에 공유하는 기능을 통해 서로 응원을 주고 받는 재미 요소를 제공한다.

◇ 운동 기록 조회
A. 월별 운동 기록 조회
컴통수 12.png
- 달력 인터페이스를 통해 월 단위로 운동 기록을 남긴 날을 표시하여, 사용자에게 제공하고, 해당 월에 남긴 전체 기록을 제공한다.
- 달력 인터페이스에서 특정 날짜를 선택해, 해당 날짜에 남긴 운동기록 목록을 제공한다.
- 특정 날짜에 대한 운동 기록 목록에 있는 요소를 선택하면, 세부 운동 기록 페이지로 이동한다.

B. 상세 운동 기록 조회
컴통수 13.png
- 해당 날짜에 사용자가 직접 작성한 상세 운동 기록을 조회한다.
- 필요에 따라 운동 기록을 삭제하거나 수정할 수 있다.

◇ 운동 기록 작성
- 운동 기록 조회-(A)의 달력 인터페이스 화면에서 특정 날짜에 운동 기록을 추가할 수 있다.
- 제목, 운동 종류와 같은 기본적인 요소를 입력할 수 있다.
- 필요에 따라 자유 메모, 사진 기록, 헬스 운동 기록, 운동 강도, 운동 시간대 등 원하는 UI를 추가하여 자유롭게 운동 기록을 작성할 수 있다.

1. 자유 메모 : 메모장과 같이 자유롭게 텍스트를 입력할 수 있는 UI 요소이다.
2. 사진 기록 : 운동 과정 중에 촬영한 사진을 갤러리 형식으로 업로드할 수 있는 UI 요소이다.
3. 헬스 운동 기록 : 세부 운동 종류, 세트 수, 무게, 반복 횟수 등 헬스 기록에 최적화된 UI 요소이다.
4. 운동 강도 : 별점과 비슷하게 점수를 통해 운동 강도를 나타낼 수 있는 UI 요소이다.
5. 운동 시간대 : 해당 운동을 수행한 시간대를 입력할 수 있는 UI 요소이다.


◇ 운동 추천
A. 운동 루틴 추천
컴통수 14.png
- 사용자가 작성한 운동 기록을 바탕으로 오늘 진행할 추천 운동 루틴을 제공한다.
- 최초 어플리케이션 실행 시점에 입력한 사용자의 체성분과 운동 목표 데이터를 통해 추천 운동 루틴을 제공한다.
- 예시로 헬스와 러닝을 번갈아가며 진행한다고 했을 때, 마지막으로 한 운동이 러닝인 경우, 헬스를 추천 운동 루틴으로 안내한다.
- 사용자는 제공 받은 추천 운동 루틴을 추가하는 버튼을 통해 쉽게 운동 기록을 남길 수 있다.

B. 운동 강도 추천
컴통수 15.png
- 작성한 운동 기록을 저장하고 난 시점에, 작성한 내용을 바탕으로 다음 할 운동의 강도를 추천받는다.
- 예시로 동일한 거리, 시간으로 특정 횟수가 반복된다면, 다음 운동 시에 조금 더 강도를 높여 운동할 수 있도록 세부적인 가이드와 함께 제안한다.

◇ 커뮤니티
A. 게시글 작성
- 특정 카테고리에 맞는 게시글 내용을 작성하여 업로드할 수 있다.
- 게시글에 다양한 이미지를 첨부하여 업로드할 수 있다.
- 운동 과정이나 결과, 목표 달성, 성취 메달 등 다양한 성과를 공유할 수 있다.

B. 카테고리별 게시판 조회
컴통수 16.png
- 특정 스포츠 종목 또는 운동 성과나 식단 등과 같이 특정 카테고리별로 게시글을 조회한다.
- 해당 게시글을 클릭하여 세부 내용을 볼 수 있는 화면으로 이동한다.
- 추천 버튼을 통해 유익한 게시글이라는 것을 확인할 수 있도록 추천 수를 증가시킬 수 있다.
- 댓글 기능을 통해 다른 사용자들과 정보 공유를 할 수 있다.

C. 운동 메이트 찾기
컴통수 17.png
- 원하는 사용자들끼리 모여 운동을 진행할 수 있도록 운동 메이트 찾기 글을 업로드 할 수 있다.
- 운동이 끝나고, 운동 메이트끼리 공동으로 운동 기록을 남길 수 있다.

소프트웨어 설계

가. 액티비티 다이어그램

◇ 인증 및 운동 목표 설정
컴통수 18.png
◇ 운동 기록 관리
컴통수 19.png
◇ 커뮤니티 활동
컴통수 20.png
◇ 운동 추천 결과 조회
컴통수 21.png

나. 클래스 다이어그램
◇ Account 모듈
컴통수 22.png
◇ Medal 모듈
컴통수 23.png
◇ ExerciseLog 모듈
컴통수 24.png
◇ ExercisePlan 모듈
컴통수 25.png
◇ Board 모듈
컴통수 26.png
◇ Gathering 모듈
컴통수 27.png

다. ERD
컴통수 28.png

라. 아키텍처 구성
컴통수 29.png

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용