"프둥이"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(개발 과제의 배경)
(기술적 기대효과)
74번째 줄: 74번째 줄:
 
===개발과제의 기대효과===
 
===개발과제의 기대효과===
 
====기술적 기대효과====
 
====기술적 기대효과====
내용
+
◇ 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디자인 부분과 메서드 개발을 독립적으로 가능하다. 이러한 장점들을 통해 프로젝트를 설계하였다.
 +
 
 
====경제적, 사회적 기대 및 파급효과====
 
====경제적, 사회적 기대 및 파급효과====
 
내용
 
내용

2021년 6월 12일 (토) 16:20 판

프로젝트 개요

기술개발 과제

국문 : 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디자인 부분과 메서드 개발을 독립적으로 가능하다. 이러한 장점들을 통해 프로젝트를 설계하였다.

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

내용

기술개발 일정 및 추진체계

개발 일정

내용

구성원 및 추진체계

내용

설계

설계사양

제품의 요구사항

내용

설계 사양

내용

개념설계안

내용

이론적 계산 및 시뮬레이션

내용

상세설계 내용

내용

결과 및 평가

완료 작품의 소개

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

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용