[러닝하이] 기획과 이벤트 스토밍

수박이삼촌·2024년 3월 18일
0

러닝하이

목록 보기
1/11
post-thumbnail

안녕하세요:)
러닝하이 팀장, 김종완입니다.
이전부터 꼭 만들고 싶었던 앱인 러닝 앱을 만들기로 결심했습니다. 팀원들은 이전부터 같이 공부했던 선수들을 추리고 추려서 꾸렸습니다!!!

🏃🏼‍♀️🏃🏼‍♂️ 러닝하이 소개

저희 러닝하이는 "전국 러닝 코스 추천 애플리케이션" 입니다.

많은 분들에게 인기 많은 운동인 '러닝'을 주제로 프로젝트를 진행하게 되었는데요?
꾸준히 열리는 크고 작은 대회가 무수히 존재하고, 크루를 결성해 함께 운동하는 아름다운 하나의 문화가 되었을 정도입니다! 필자도 러닝 대회를 나갔었다가 크루 분들의 뛰어난 러닝 실력에 호되게 당한 기억이 있습니다.🤣🤣🤣

러닝이 이러한 꾸준한 인기를 얻는 비결이 무엇일까요??
한 가지 이유를 들을 순 없겠지만, 저희 팀이 조사하여 세 가지 관점에서 주요 기능을 도출해냈습니다!

건강   다이어트  성취감

건강

코로나 이후 건강과 운동에 대한 흥미가 크게 증가하면서 관련 시장도 지속적으로 성장하고 있습니다. 이제 운동은 자기 개발과 장기적인 성장을 위한 중요한 활동으로 인식되고 있는 것 같아요😊

특히 MZ 세대는 건강관리의 주요 소비자로 떠오르고 있습니다.
MZ 세대는 개인 건강 관리에 더욱 집중하는 추세를 보이며, 개인적인 운동 관련 활동을 더욱 즐깁니다. 또한, 자신의 운동 기록과 루틴을 공유하거나 인증하는 등 SNS와 운동을 연결 지어 활발하게 활동합니다.

"그리하여!! 저희 러닝하이도 SNS 요소를 가져가기로 하였습니다.""

다이어트

요즘 모든 현대인들의 숙제이죠,,,🤦🏻‍♂️
필자도 25년째(필자 나이 : 26세) 다이어트를 시도 중입니다!! 많은 분들이 다이어트를 목적으로 러닝에 많이 입문하시는 것 같아요ㅎㅎㅎ.

"Therefore!!! 저희 러닝하이는 누적되는 러닝 이동 거리와 칼로리 소모 값을 기록하는 기능을 구현하기로 결정하였습니다.""

성취감

운동을 할 때의 공통점 같은데요!!!
저는 항상 운동을 하고 나서, 제 자신이 너무 기특하다 느끼곤 합니다ㅎㅎㅎ!!

그런, 수많은 운동인의 성취감과 더불어 회원분들과의 기록 경쟁 시스템이 있다면 성취감은 더더욱 증가할 것이라 저희는 믿고 있습니다!

"As a result!!! 저희 러닝하이는 주간 랭킹 제도를 도입하기로 하였습니다!!"


🏃🏻‍♀️🏃🏾 시장 조사

현재 러닝 시장은 과열 중이라고 해도 과언이 아닙니다.
나이키 런 클럽은 현재 나이키에서 밀고 있는 사업 중 하나라고 해요.
저희도 이 러닝 시장에 입문하기 위해선 현 시장 조사가 필수적이겠죠??
그리하여!! 러닝 계의 위촉오, "나이키 런 클럽", "맵 마이런", "런데이", "릴라이브" 등을 조사하였습니다. 개인적으로 "유니플로거"라는 앱도 재미있어서 참고하였습니다!

나이키 런 클럽

  • 제일 이쁜 UI
  • 애플 워치 연동
  • 친구와 함께 챌린지 가능
  • 다양한 뱃지 부여

맵 마이런

  • 유료지만, 정밀한 러닝 분석 기능
  • 다른 회원의 러닝 코스를 뛸 수 있음

릴라이브

  • 신기한 3d 동영상으로 보여주는 내 러닝 기록
  • 피드 형태로 자동 공유되는 기능
  • 약간 부자연스러운 UI,,,

런데이

  • 다양한 챌린지와 테마 러닝이 가능
  • 입문자에게 핫한 인기 앱
  • 자유로운 러닝을 위한 테마를 찾아야 함,,,

이런 특징들을 발견할 수 있었습니다.


🏃🏼‍♂️🏃🏿‍♀️ 주요 기능

러닝하이의 MVP 모델 선정은 다음과 같습니다.
후발 주자인 만큼, 최대한 사용자 편의성을 고려하여 더욱 쉽게 기록을 측정할 수 있고, 더욱 쉽게 기록을 공유할 수 있게 하려고 고려하였습니다.

러닝 기록 피드 공유

전 지역 별로 회원들의 러닝 기록을 피드 형태로 조회가 가능합니다.
회원이 러닝을 완료하면 자동으로 생성된 사진 두 장(지도 상에 뛴 코스 사진, 기록 사진)과 함께 간단한 키워드 설정으로 피드 공유가 가능합니다.

실시간 러닝 기록 측정

앱 화면 어디서나 바로 러닝 기록을 측정 페이지로 이동이 가능하고 기록 측정이 가능합니다.

주간 별 기록 순위

'순위' 탭에서 주간 별로 사용자들의 기록(이동 거리, 평균 페이스, 평균 경사도 등을 점수제로 측정)을 상위순으로 노출을 해줄 예정입니다. 선의의 경쟁은 더욱 건강한 러닝 라이프를 만들어줄 것이라 상상했습니다!

누적 기록 저장

일정 레벨 별 누적 거리를 충족하면 다음 레벨이 되는 기능입니다.
누적 칼로리, 누적 이동 거리를 통해 레벨을 관리할 수 있습니다. 오늘 뛴 러닝 기록이 경험치가 되어 러닝 숙련도를 높일 수 있는 거죠!! 추후에 레벨 별 캐릭터 혹은 지구 몇 바퀴!! 로 나타내면 좋을 것 같습니다😜😜


🏃🏽🏃🏼‍♂️ 플로우차트

주요 기능으로부터 사용자 관점에서 발생하는 화면으로부터 플로우차트를 작성해 보았습니다.


🏃🏻‍♀️🏃🏼 와이어 프레임

저희 UX/UI 디자이너 분께서 제작해 주신 와이어 프레임입니다.
디자인이 너무 마음에 드는데요!! 이렇게 실제로 만들 때까지 🏃🏻‍♂️달려보겠습니다!!🏃🏻‍♂️


🕺 이벤트 스토밍 💃🏻

아무리 훌륭한 화법으로, 친절한 설명으로도 동일한 서비스에 동일한 이해도를 갖긴 힘들죠!!!
그래서!! 저희 러닝하이는 팀원 모두 서비스에 대해서 동일한 이해도를 갖도록 이벤트 스토밍을 진행하였습니다.

Miro 툴을 이용해서 색상 별로 스티커를 나누고 역할을 부여했습니다.
주요 기능들로부터 파생되는 이벤트들을 모두 정리하였고, 주체인 ActorCommand를 통해 이벤트를 발생시키고 Aggregate의 상태를 변동시키는 것을 정리합니다.

그다음으로 진행되는 것은 Aggregate를 기준으로 도메인을 나눕니다. 또한 Aggregate만을 추출하여 각 Aggregate 관계와 상호작용을 정리하며 Aggregate의 생명 주기를 파악할 수 있었습니다.

그리하여!! 이벤트 스토밍의 결과는 다음과 같습니다.
Aggregate의 관계를 정리하고 생명 주기가 같은 Aggregate를 찾아 하나의 도메인으로 병합하였습니다.
하지만 언제나 변동 사항이 있기 마련이죠.
앞으로도 변동 사항들이 있다면 꾸준히 업데이트하여 팀원들과 동일한 이해도를 갖게 할 예정입니다.
이렇게 마련된 도메인을 기준으로 프로젝트를 빌드 해보겠습니다.

🏗️ 레이어드 아키텍처 🏗️

저희는 이벤트 스토밍을 통해 도출해낸 도메인 별로 디렉토리를 나누어 개발을 진행할 예정입니다.
각 도메인 별 레이어드 아키텍처를 적용하였습니다.

레이어드 아키텍처는 시스템을 여러 계층으로 분리하여 각 계층이 특정 역할과 책임을 가지도록 하는 구조입니다. 이러한 구조는 시스템의 유지 보수성, 확장성 및 개발의 효율성을 높이는 데 기여합니다.
저희는 Application - Domain - Infra Structure 계층으로 나누고 각 계층의 역할과 책임을 부여하였습니다. 표현을 위해 저희 디렉토리를 직접 Figma로 만들었습니다.

Application에서는 view에서 받은 데이터를 API 요청에 맞게 매핑하고 비즈니스 로직을 실행하는 계층입니다. 데이터 이동은 DTO로 이용합니다.

Domain에서는 Application에서 받은 데이터를 검증하고, DB에 들어갈 실제 데이터를 저장합니다. Application에서 DTO를 통해 데이터 이동이 이루어지며, 검증이 끝난 데이터는 Entity로 변환하여 DB에 Write를 할 수 있게 해줍니다.

Infra Structure에서는 실질적으로 DB에 접근하는 역할인 Repository, 다른 도메인 혹은 외부 API를 호출해 주어 모든 외부 의존성을 한 곳에 집중시키는 Service가 존재하여 서로에게 영향을 주지 않도록 설계하였습니다.

profile
Today I Learned

0개의 댓글