프로젝트/Life graph

[프로젝트] 주제 및 자료조사

킹대왕너구리 2024. 5. 12. 00:51

1. 인생그래프:나의 생활 습관이 주가에 반영된다면 어떨까?

인생 그래프라고 들어보았는가?

사람의 인생에는 굴곡이 있다. 만족스럽고 잘되는 시기가 있는 반면, 잘 풀리지 않고 힘든 시기가 있다.

무한도전의 노홍철이 자신의 인생그래프를 그려보며 삶을 예측해보고 있다.

 

복학하기 전 군생활 동안 주식에 푹 빠졌던 적이 있었다. 

오르락 내리락 하는게 사람을 미치게 했다. 오르면 기분이 좋고, 떨어지면 다시 오르기를 기대하면서 말이다.

 

주식을 하며 주식 그래프를 '일봉' , '주봉', 월봉' 이런 식으로 단위를 나눠서 그래프를 볼 수도 있다는 것을 알게 되었다.

주식 차트를 보면 주식을 발행한 회사의 흥망성쇠를 볼 수 있더랬다. 

 

이때 든 생각

 

'내 인생도 이렇게 주식 그래프처럼 오르락 내리락 하는 것을 시각적으로 보면 재밌겠다'

'나 자신을 상장시키고, 내 주가를 관리하면 더 재밌지 않을까?'

 

그리고 그 아이디어를 직접 구현하고자 한다.

 

2.웹?앱? 뭘로 할까?

우선은 으로 구현하고자 한다. 내가 상상한 대로라면 앱으로 하는 것이 맞지만 아직 나에게 앱 개발은 생소하기도 하고 진입장벽이 높다고 느꼈다. 그리고 나는 현재 2학년인데, 여러가지를 경험하며 개발자의 방향을 결정해야한다. 가장 흔한 개발 분야가 웹개발이기에 이번 프로젝트를 통해 체험해보려한다.

 

3. 웹사이트 구현 계획의 틀

머릿속에 이미지는 떠올렸으나 구체적으로 어떻게 할 것인지에 대해 생각해보아야한다.

 

알아본 바 웹사이트 개발을 위해 생각해볼만한 주요 단계는 다음과 같다.

1) 프로젝트 정의 및 요구사항 수집

-목적

-대상 사용자

-핵심 기능

 

2)시장조사

-경쟁 분석

-기술 조사

 

3) 설계

-와이어프레임 생성

-사용자 경험 디자인(UX)

-시스템 아키텍쳐

 

4) 개발

-프론트엔드 개발

-벡앤드 개발

-데이터베이스 설계

 

추가로 테스트, 배포 및 유지보수, 마케팅 및 홍보 단계가 있으나 아직 고려할 단계가 아닌 것 같아 생략했다.

 

이제 큰 틀은 알아보았으니, 세부 내용을 채워보자.

1) 프로젝트 정의 및 요구사항 수집

-목적

자신의 생활 습관을 주식 그래프로 확인하며 동기부여를 얻을 수 있는 웹사이트를 구현하기

 

-대상 사용자 

플래너를 사용하는 사람

재미있는 플래너를 원하는 사람

주식에 대한 지식이 어느정도 있는 사람

동기부여를 원하는 사람

 

-핵심 기능

자신의 인생을 나타내는 회사를 주식시장에 상장합니다.

단기적인 계획, 장기적인 계획을 세우고 성공하면 주가가 상승, 실패하거나 부진하면 주가가 하락합니다.

직접 계획을 추가할 수도 있지만, 계획을 추천 해줍니다.

ex) 미라클 모닝, 운동하기, 매일 영어공부 1시간 패키지 등등..

 

2)시장조사

계획하는 웹사이트는 플래너의 개념+동기부여 챌린지 가 합쳐져 있다. 

 

 

-경쟁 분석

A. 구글 캘린더

구글 캘린더(일)
구글 캘린더(월)

-달력 같은 디자인

-일별을 시간별로 나누어서 계획표를 한눈에 볼 수 있게 함.

-캘린더에서도 색 별로 분류가 되어 있어 선택적으로 계획을 짤 수 있다.

플랜 추가 창

 

 

제목추가, 날짜 시간, 설명추가 등 기능이 있다.

 

구글 캘린더 이외에 조사한 것들은 

Trello,Asana,Evernote,Notion

등이 있다. 이 서비스들의 경우 '협업 툴'로 강력한 기능을 하고 있는데, 내가 구현하고자 하는 서비스와는 결이 같지 않아 계획 관리 기능정도만 간단하게 확인했다.

 

B) 챌린지 앱

1. 챌린저스 (Challengers)

특징:

  • 목표 설정: 사용자가 자신만의 목표를 설정하고 이를 달성하기 위해 매일 도전할 수 있도록 지원합니다.
  • 인증 시스템: 목표 달성을 위해 일정한 증거를 제출하여 인증을 받는 시스템이 있습니다.
  • 리워드: 목표를 달성하면 금전적 보상이나 포인트를 받을 수 있습니다.

 

챌린저스 UI

2. Habitica

특징:

  • 게임화: 할 일을 게임 형태로 바꿔, 사용자가 완료한 작업에 대해 경험치와 보상을 받습니다.
  • 커스터마이징: 자신의 캐릭터를 커스터마이징하고, 퀘스트를 수행하며 성장할 수 있습니다.
  • 커뮤니티: 친구들과 파티를 구성하여 함께 도전하고 목표를 달성할 수 있습니다.
  • https://habitica.com/static/home
 

Habitica - Gamify Your Life

 

habitica.com

참고할 부분이 많은 것 같다. 분석해보자.

1.to do list

할 일 - 일회성 또는 장기 프로젝트 관련 작업을 "할 일" 목록에 추가 할 수 있다.

할 일을 완료하면 경험치와 금화를 얻고 캐릭터의 레벨을 올릴 수 있다.

2.습관

좋은 습관, 나쁜 습관에 대한 항목을 추가할 수 있다. 긍정적인 습관은 보상을 받고 부정적인 습관은 패널티를 받는다.

3. 일일 숙제

매일 완수해야 할 일들을 설정할 수 있다. 이 일들을 정한 시간 안에 완료되어야 하며 완료되지 못하면 캐릭터의 생명력이 감소한다.

4. 보상

사용자는 게임 내에서 획득한 금화를 사용해 보상을 구매할 수 있다. 장비 개선, 애완동물 획득, 게임 아이템 구매 , 사용자 자신이 스스로에게 설정한 보상(친구들이랑 놀러가기 등)을 얻을 수 있다.

5. 소설기능

친구들과 파티를 구성해서 몬스터를 물리치고 퀘스트를 완수 할 수 있다.

길드도 있어서 길드 전용 챌린지에 참여할 수도 있다.

 

도전과제로는 책읽기, 체중감량 등이 있다.

 

위의 챌린저스와 다른 점은 사용자가 정직하게 자신의 활동을 기록할 것이라는 전제하에 작동한다. 챌린저스의 경우 카메라로 인증을 해야만 인증되도록 설정해놓았다.

 

habitica UI

 

3. Streaks

특징:

  • 습관 추적: 사용자가 원하는 습관을 설정하고, 이를 매일 실천하여 연속된 기록을 이어나가는 데 도움을 줍니다.
  • 간편한 인터페이스: 직관적이고 사용하기 쉬운 인터페이스로 습관을 쉽게 추적할 수 있습니다.
  • 통계 및 알림: 습관 형성에 도움이 되는 통계와 알림 기능을 제공합니다.

https://streaksapp.com/

 

STREAKS. The to-do list that helps you form good habits. For iOS.

Available in: English, Arabic, Danish, Dutch, Finnish, French, German, Greek, Indonesian, Italian, Japanese, Korean, Malay, Norwegian Bokmål, Portuguese, Russian, Simplified Chinese, Spanish, Swedish, Thai, Traditional Chinese, Turkish, Vietnamese. Get it

streaksapp.com

내가 구현하려는 UI와 상당히 유사해보이는 이미지를 확인 할 수 있다. (그래프)

간결하고, 직관적이며 접근성과 가독성이 좋은 특징이 있다. 

 

-기술조사

1. 프론트엔드 (Front-end)

  • HTML/CSS/JavaScript: 웹 페이지의 기본적인 구성 요소로, 사용자 인터페이스의 구조, 스타일, 그리고 기능을 구현하는 데 사용됩니다.
  • React 또는 Vue.js: 이러한 모던 자바스크립트 프레임워크 및 라이브러리는 동적인 사용자 경험을 제공하고, 사용자의 상호작용에 따른 실시간 UI 업데이트를 용이하게 합니다. 컴포넌트 기반의 개발은 유지보수와 코드 관리를 쉽게 합니다.

2. 백엔드 (Back-end)

  • Node.js: 자바스크립트 기반의 백엔드 플랫폼으로, 개발의 일관성을 유지하며 프론트엔드와 쉽게 통합됩니다. 이벤트 주도 모델은 실시간 피드백이 필요한 애플리케이션에 적합합니다.
  • Express.js: Node.js 위에서 동작하는 웹 애플리케이션 프레임워크로, 라우팅과 미들웨어 기능을 제공하여 개발을 간소화합니다.

3. 데이터베이스

  • MongoDB: 문서 지향적 NoSQL 데이터베이스로, 유연한 데이터 스키마를 제공하여 다양한 데이터 타입을 손쉽게 저장하고 관리할 수 있습니다. 사용자 데이터, 습관 로그, 게임 진행 상황 등을 효율적으로 처리할 수 있습니다.
  • Redis: 세션 관리나 임시 데이터 처리에 유용한 인-메모리 데이터 스토어로, 빠른 데이터 읽기/쓰기를 제공하여 사용자 경험을 향상시킵니다.

4. 인증 (Authentication)

  • OAuth 2.0 / JWT (JSON Web Tokens): 사용자 인증과 세션 관리를 안전하게 처리합니다. 소셜 로그인 기능을 쉽게 통합할 수 있습니다.

5. 서버 및 배포

  • Docker: 애플리케이션을 컨테이너화하여 배포 및 관리의 일관성을 보장합니다.
  • AWS 또는 Google Cloud: 클라우드 기반 인프라를 제공하여 스케일링, 로드 밸런싱, 백업 등의 운영 관리를 간소화합니다.

6. 추가 도구 및 기술

  • Webpack/Babel: 최신 자바스크립트 (ES6 이상) 코드를 다양한 브라우저에서 호환 가능한 코드로 변환합니다.
  • Git: 소스 코드 버전 관리를 위한 도구로, 협업과 코드 리뷰 과정을 효과적으로 관리합니다.

 

 

 

 

 

'프로젝트 > Life graph' 카테고리의 다른 글

[프로젝트] 기획하기  (0) 2024.05.12