프둥이
cdc wiki
프로젝트 개요
기술개발 과제
국문 : 00000000..
영문 : 00000000..
과제 팀명
프둥이
지도교수
김성환 교수님
개발기간
2019년 3월 ~ 2019년 6월 (총 4개월)
구성원 소개
서울시립대학교 컴퓨터과학부·과 2016920003 고태진(팀장)
서울시립대학교 컴퓨터과학부·과 2014920020 신구현
서울시립대학교 컴퓨터과학부·과 2016920040 이치헌
서울시립대학교 컴퓨터과학부·과 2016920044 전현태
서론
개발 과제의 개요
개발 과제 요약
1. 자신의 몸 상태를 투영한 캐릭터를 제공한다. 2. 운동 메이트들과 스터디를 구성할 수 있는 기능을 제공한다.
개발 과제의 배경 및 효과
◇ 배경
2021년 4월 현재 헬스 관련 어플리케이션들은 처음 운동을 시작하는 사람들의 운동 장려에 중점에 둔 어플리케이션보다는, 기존에 운동에 관심이 있던 사람들이 운동을 기록하는 기능이나 헬스 기구 사용법 안내 기능, 혹은 헬스장이나 트레이너를 추천해주는 기능 위주로 시장에 출시가 되어있다. 그러나 이러한 어플리케이션들은 효율적인 운동 계획 관리에는 도움을 주지만, 동기부여를 자극하지 못하는 단점이 있다. 운동을 지속하는 데 있어서 가장 큰 어려움은 두 가지이다. 첫 번째는 운동 효과가 바로 나타나지 않는다는 점과 두 번째는 운동을 혼자하다보니 꾸준히 지속하기가 어렵다는 것이다. 운동 방법을 알아도 운동에 재미를 느끼지 못하기 때문이다. 따라서 본인의 모습을 투영한 아바타 캐릭터를 제공하여 운동 성과를 바로 체감할 수 있고, 타인과 함께 운동할 수 있는 프로젝트인 HelP를 기획하게 되었다.
◇ 효과
HelP는 개인의 자기관리에 대한 동기부여를 제공함으로써 지속적인 운동습관을 형성하여 건강한 신체조건을 유지할 수 있는 기능을 제공한다. 사용자는 자신과 함께 성장하는 캐릭터를 통해 신체 변화가 바로 나타나지 않더라도 자신의 아바타를 통해 운동 성과를 짐작할 수 있다. 또한 자신과 유사한 운동 메이트들과 해당 어플리케이션을 통해 교류하며 성장해나가는 과정을 공유할 수 있다. 이 과정에서 겪는 어려움을 게시판 기능을 통해 공유할 수 있으며 타인과 함께 운동하고 있다는 소속감을 통해 자기관리를 꾸준히 이어나갈 수 있다. 이러한 과정을 통해 개인의 자기관리가 타인의 동기부여가 되는 선순환 구조를 형성함으로써 공동체의 건강 증진에 기여한다.
개발 과제의 목표 및 내용
◇ 목표
개인의 운동을 장려하기 위한 동기를 부여하는 것이 프로젝트의 목표이다. 이를 위해 운동의 재미를 부여할 수 있는 기능을 제공한다. 첫 번째는 본인의 운동량에 따라 성장해나갈 수 있는 캐릭터를 제공한다. 즉각적인 신체의 변화가 나타나지 않더라도 자신의 캐릭터가 성장해나가는 모습을 보며 운동성과를 체감할 수 있다. 이를 통해 사용자가 지속적인 운동 습관을 가질 수 있도록 동기를 부여한다. 또한 여러 명과 함께 운동을 진행하고 의견을 공유할 수 있는 기능을 추가하였다. 사용자는 스터디에 가입하여 스터디메이트들의 운동상태를 실시간으로 관찰할 수 있으며 그들과 의견을 공유할 수 있는 게시판 기능을 제공한다.
◇ 내용
1.자신의 몸 상태를 반영한 캐릭터 생성 - 사용자는 운동을 지속함에 따라 캐릭터의 변화량을 확인할 수 있다. - 운동 효과가 바로 나타나지 않더라도 캐릭터를 통해 동기부여를 제공한다. - 자신을 대표하는 캐릭터이므로 운동을 통해 부위별로 성장할 수 있는 기능을 제공한다. - 또한 운동 부위가 각각 성장하는 시스템으로 균형 있게 운동을 하는 것이 중요하다는 것을 캐릭터를 통해서 전달한다.
2.헬스 스터디 - 자신과 유사한 점을 가진 다른 유저들과 스터디를 생성할 수 있다. - 헬스 스터디 또한 구성원들의 지표에 따른 캐릭터를 제공한다. - 구성원들은 서로의 운동시간과 운동량을 실시간으로 확인할 수 있다. - 운동을 진행하는 과정에서 발생할 수 있는 어려움을 공유할 수 있는 게시판 기능을 제공한다. - 이를 바탕으로 함께 운동한다는 소속감을 제공함으로써 지속적인 운동습관 형성에 기여한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- 전 세계적인 기술현황
내용
- 특허조사 및 특허 전략 분석
내용
- 기술 로드맵
내용
시장상황에 대한 분석
- 경쟁제품 조사 비교
내용
- 마케팅 전략 제시
내용
개발과제의 기대효과
기술적 기대효과
◇ Microservices 아키텍쳐를 적용한 효율적인 개발 수행
전통적인 어플리케이션 구축 방식인 모놀리식(Monolithic)방식은 여러개의 어플리케이션이 한 개의 어플리케이션에 포함되어 있는 문제점이 있다. 이 경우 어플리케이션이 커질 경우 유지보수가 까다로운 단점이 있으므로, 기존 방식에서 벗어나 어플리케이션을 분리하여 개발하는 Microservice 개발 방식을 채택하여 프로젝트를 구현하였다. Microservice 방식은 연관성이 높은 서비스끼리 분리한 뒤 개발을 진행함으로써 테스트 시간을 단축하고 유연하게 개발할 수 있다. 해당 프로젝트에서는 사용자에게 보여지는 Frontend 서버로 Node.js, 뒷 단에서 데이터 저장 및 가공, 로직을 처리하는 Backend 서버로 Django로 구분하였다. 개발 과정에서 분리한 서버는 배포 시 Django 서버 하나로 통일함으로써 효율적으로 프로젝트를 구현하였다.
◇ Web Socket을 통한 Real Time-Networking 구현
기존 HTTP 통신 방법으로는 실시간 데이터 송/수신을 구현하기 어렵다. 이를 보완하기 위해 Polling, Long Polling, Streaming, Ajax등의 기술들이 나왔으나 완벽한 Real Time 통신을 구현하기는 쉽지 않다. 따라서 채팅, 주식 시세 표현, 비디오 전송 시에 사용되는 Web Socket 통신 프로토콜을 사용하여 구현하였다. Web Socket 통신을 통해 클라이언트와 서버가 서로 원할 때 데이터를 주고 받을 수 있는 양방향 통신이 가능해졌고, 사용자간 스터디 그룹 내 운동 정보를 실시간으로 교류할 수 있도록 설계하였다.
◇ MVVM Design Pattern 적용으로 유지보수에 용이한 설계 수행
디자인 패턴을 사용 하지 않고 개발을 한다면 소스코드를 남들 뿐만 아니라 개발자 또한 매일 한 가지 개발에만 몰두 하는 것이 아니기 때문에 이해하기가 힘들 것이다. 그래서 코드를 수정/유지/보수 할 때 큰 어려움을 격는다. 그래서 이번에 이러한 문제를 맞이하지 않기 위해서 디자인패턴 중 하나인 MVVM을 선택했다. MVVM패턴은 Model, View, ViewModel의 약자로 view는 UI와 관련된 곳, viewmodel은 view가 사용할 메서드와 필드를 제공하고 뷰에게 상태변화를 알려주는 곳이다. modle은 앱에서 사용할 데이터에 관련된 행위와 데이터를 다루는 곳이다. 이런 식으로 각자의 역할을 나누어 개발을 하면 모델과 뷰모델이 뷰로부터 독립적이기 때문에 테스트하기가 수월하다. view가 사용하는 메서드와 데이터가 뷰모델에 있기 때문에 UI디자인 부분과 메서드 개발을 독립적으로 가능하다. 이러한 장점들을 통해 프로젝트를 설계하였다.
경제적, 사회적 기대 및 파급효과
◇ 헬스를 통한 사용자들의 건강에 긍정적인 영향
최근 자기 관리에 대한 관심이 증가함에 따라, 헬스를 비롯한 운동을 시작하는 사람들이 늘어나고 있다. 특히 코로나로 인한 언택트 시대에 도입함에 따라 나이 성별을 불문하고 많은 사람들이 헬스를 시작하고 있다. 이는 실내에서 대부분의 시간을 보내는 현대인들에게 고질적인 운동부족 문제를 해결하기 위한 좋은 흐름이다. 하지만 운동을 처음 시작하는 사람들에게는 운동이란 힘들고 건강을 위해 억지로 하는 경우가 많다. 이러한 가장 큰 이유는 운동에 재미를 느끼지 못하는 것과 혼자 진행하므로 언제든 그만 둘 수 있다는 점이다. 해당 프로젝트를 통해 운동을 시작한 지 얼마 되지 않은 사람들에게 운동을 장려하여 사용자의 건강 증진을 돕는다. 또한 사용자간 상호 교류 기능을 통해 개인의 자기 관리가 타인 운동에 대한 동기부여로 작용하는 선순환 구조로 설계하여 공동체의 건강 증진에도 기여하는 것이 가능할 것으로 기대된다.
◇ 스터디를 통해 함께 운동을 하게 되는 분위기 형성 및 사용자들의 PT에 대한 지출 감소
헬스장에서 트레이너에게 PT를 받는 이유 대부분이 혼자서 운동을 꾸준히 해나가는 것이 힘들어서일 것이다. 하지만 본인에게 맞는 트레이너를 찾기 어려운 경우가 대부분이고 사용자들은 PT에 금전적인 지출을 하나 정작 운동을 꾸준히 하는 것에 대한 효과를 받지 못하는 경우가 많다. HelP의 스터디기능은 사람들과 함께 운동을 하도록 지원하여 운동 시 다른 사람과의 접촉으로 운동이 두뇌 활동에 가져다줄 수 있는 부정적 효과를 상쇄시키고 사용자들이 금전적인 지출을 하지 않고도 함께 운동을 하는 분위기를 형성시킬 수 있을 것이다.
기술개발 일정 및 추진체계
개발 일정
Help | ||||||
---|---|---|---|---|---|---|
Time Span | 3월 | 4월 | 5월 | 6월 | 최종 목표 | |
월별 목표 | 계획 수립 | 프로그램 개발 | 프로토타입 완성 | 테스트/Feedback | 제품 완성 | |
핵심 기술 | ||||||
캐릭터 구현 | 캐릭터 디자인 설계 | 운동량에 따른 캐릭터 변화량 구현 | ||||
웹페이지 위에 캐릭터 구현 | ||||||
운동량에 따른 변화량 테스트 | ||||||
웹앱 구현 | React 학습 | React를 사용한 웹앱 구현 | ||||
프론트엔드 개발 | ||||||
서버-클라이언트 통신 구현 | ||||||
서버 구현 | 데이터베이스 설계 | Django 로그인/로직 서버 구현 | ||||
회원관리 / 스터디 서버 구현 | ||||||
서버-클라이언트 통신 구현 |
구성원 및 추진체계
단계별 세부개발 내용 | 담당자 | 개발기간 (월단위) | 비 고 | |||
---|---|---|---|---|---|---|
3 | 4 | 5 | 6 | |||
인터페이스 디자인 | 이치헌 | ㆍ | ㆍ | |||
인터페이스 구현 | 전현태 | ㆍ | ㆍ | |||
캐릭터 drawtool찾기 | 고태진 | ㆍ | ||||
캐릭터 필요 부위 분류 | 이치헌 | ㆍ | ||||
전현태 | ||||||
캐릭터 부위별 도트 찍기 | 이치헌 | ㆍ | ㆍ | |||
캐릭터 선호도 조사 | 전현태 | ㆍ | ||||
요구사항 분석 | 고태진 | ㆍ | ||||
신구현 | ||||||
API설계 | 고태진 | ㆍ | ||||
엔티티 & 테이블 & 연관관계 분석 | 신구현 | ㆍ | ㆍ | |||
DB 모델링 구축 | 고태진 | ㆍ | ㆍ | |||
신구현 | ||||||
서버 구현 및 테스트 | 고태진 | ㆍ | ||||
서버 & 프론트엔드 연동 | 신구현 | ㆍ |
설계
설계사양
제품의 요구사항
내용
설계 사양
내용
개념설계안
내용
이론적 계산 및 시뮬레이션
내용
상세설계 내용
내용
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
내용
포스터
내용
관련사업비 내역서
내용
완료작품의 평가
내용
향후계획
내용
특허 출원 내용
내용