Skip to content

[한국대학생IT경영학회 26기] 7조

Notifications You must be signed in to change notification settings

Park-EunBi/tikkle-server

 
 

Repository files navigation

📑 서비스 소개

'금융 습관, 티끌(Tikkle) 하나면 끝-’

✨ Tikkle 피닛 ✨

Tikkle은 소비와 관련해 자신만의 목표치 설정과 올바른 습관 형성을 도와주는 플랫폼입니다.

📑 팀명 : 드7ㅏ자

R&R

분야 이름 포지
기획 윤혜정 👩🏻 서비스 기획, 와이어프레임, 유저 조사 담당
기획 이하연 👩🏻 서비스 기획, 와이어프레임, BM설계
기획 최재웅 👨🏻 서비스 기획, 와이어프레임, 리서치 담당
디자이너 김시연 👩🏻‍🎨 프로토타입, 서비스 디자인 담당
개발 김유정(덕성여대) 💻 서버 개발 담당
개발 김유정(서울여대) 💻 안드로이드 개발 담당
개발 박은비 💻 서버 개발 담당
개발 정채현 💻 PM, 안드로이드 개발담당

📑 목적 및 필요성

티끌은 올바른 소비 습관 형성 및 경제적 목표를 이루기 위해 지출을 정리하고, 소비 습관에 동기를 부여하며 금융 지식까지 쌓을 수 있는 서비스입니다.

문제점 기대효과
올바른 소비 습관 형성 및 동기 부여에 대한 필요성 목표에 비해 습관들은 작고 사소하기 때문에 습관을 이루기 위해선 지속적인 관리가 요구됩니다. 또한 습관 형성은 단기간에 이루어지지 않기에 꾸준한 동기부여가 필요합니다.
습관 형성에 대한 어려움 해소 필요성 타인과의 챌린지를 통해 스스로 습관 형성을 위해 노력할 수 있습니다.

📑 서비스 타겟층 분석

  • 올바른 소비 습관을 형성하고자 하는 사람
  • 타인과의 경쟁을 통해 동기부여를 얻는 사람
  • 금융에 대한 이해도는 낮지만 이를 높여 장기적 경제적 목표를 성립하고자 하는 사람

📑 핵심 기능

주요 기능은 챌린지, To-do, 소비회고, 로그인, 마이페이지로 이루어져 있습니다.

기능 설명
챌린지 외부 사용자가 올려놓은 챌린지를 보여주며 신청할 수 있는 기능
To-do 금융 습관을 형성하기 위한 목록을 관리해 주는 기능, 챌린지 신청 내역을 보여주는 기능
마이페이지 회원정보 수정, 소비기록, To-Do 달성도, 챌린지 달성도를 보여주는 기능

📑 비즈니스 모델

📑 서비스 로고

📑 디자인 무드보드

📑 기술 스택


기술 스택 선정 이유

  • 습관 형성에 초점을 두는 서비스 특성에 맞게 어디서든 접근이 용이한 앱을 선택하였습니다.
  • 앱을 제작하기 위해 Native platform(ios, aos)와 Cross platform(react native 등) 중 어떤 것을 사용할지 고민하였으나 Native platform을 사용할시 네이티브 앱은 핸드폰에서 사용하기 최적화된 언어(swift, 코틀린 등)를 사용하기 때문에 퍼포먼스가 좋고 OS에서 제공하는 다양한 API를 효과적으로 활용할 수 있다는 점에 Native platform을 선택하였습니다.
  • 구성원의 개발환경에 Window의 비율이 높기에 Android Studio로 개발환경을 선정하였습니다.
  • 코틀린은 많은 기업들이 사용하는 추세이고 문법이 간결하며 사용성이 좋고 Null Safe 언어이며 기존 라이브러리와의 상호운용성이 뛰어나기에 개발 언어로 선택하였습니다.
  • Retrofit2는 빠른 성능, 간단한 구현, 가독성, 동기/비동기의 쉬운 구현 등의 특성을 가지고 있기에 서버와의 통신 라이브러리로 선택하였습니다.
  • 서버 개발 언어인 자바는 객체 지향 프로그래밍의 장점을 활용하여 서비스를 개발할 수 있으며 다양한 레퍼런스를 활용할 수 있고 보안 운영 측면에서 안정적이며, 라이브러리 관리 자동화, 버전 관리가 편리한 spring framework를 사용할 수 있다는 특징을 가집니다.
  • JPA를 사용하여 데이터베이스에 접근할 예정이며, 관계형 데이터베이스와 객체 지향 언어를 연결 할 때 발생하는 불일치를 줄여 DBMS에 대한 종속성을 줄일 것입니다.
  • 사용자 인증 방법으로 선택한 JWT 토큰은 Header와 Payload를 사용하여 signature를 생성합니다. 또한, 인증 정보에 대한 별도의 저장소가 필요 없고 토큰 기반으로 로그인 시스템에 접근 및 권한 공유가 가능하다는 특징을 가집니다.
  • AWS에서 제공하는 RDS를 사용하여 데이터베이스를 구축하고 S3를 사용하여 파일서버를 구축할 것입니다. 또한 EC2를 사용하여 서버를 배포할 것입니다.

📑 소프트웨어 아키텍처

소프트웨어 아키텍쳐

📑 주요기능 명세서

📎 기능 사항 ID

스크린샷 2022-10-13 오후 5 56 47

스크린샷 2022-10-13 오후 5 57 24

스크린샷 2022-10-13 오후 6 01 49

스크린샷 2022-10-13 오후 6 00 13

스크린샷 2022-10-13 오후 5 59 01

📎 시스템 비기능 요구사항

- 보안요구사항

스크린샷 2022-10-13 오후 6 35 47

- 소프트웨어 품질요구사항

스크린샷 2022-10-13 오후 6 36 17

📎 우선순위

  1. 로그인 1. 챌린지 2. 소비회고 3. 사용자 관리

📑 그라운드 룰

  • 변수, 함수, 인스턴스 : Camel case | ex) camelCase
  • 함수명 : Verb + Term | ex) getUserInformation()
  • 클래스, 생성자 : Pascal case (Upper Camel case) | ex) CamelCase

📑 커밋 컨벤션

커밋 메세지는 “타입: 제목/ 본문/ 꼬리말”로 구성됨

1. 타입(Type)

  • Feat - 새로운 기능 추가
  • Fix - 버그 수정
  • Build - 빌드 관련 파일 수정
  • Ci - CI관련 설정 수정
  • Docs - 문서 (문서 추가, 수정, 삭제)
  • Style - 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없는 경우)
  • Refactor - 코드 리팩토링
  • Test - 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없는 경우)
  • Chore - 기타 변경사항 (빌드 스크립트 수정 등)

2. 제목(Subject)

  • 제목은 50자를 넘기지 않고, 마침표를 붙이지 않습니다.
  • 제목에는 commit 타입을 함께 작성합니다.
  • 과거 시제를 사용하지 않고 명령조로 작성합니다.
  • 제목과 본문은 한 줄 띄워 분리합니다.
  • 제목의 첫 글자는 반드시 대문자로 씁니다.
  • 제목이나 본문에 이슈 번호(가 있다면) 붙여야 합니다.

3. 본문(Body)

  • 선택 사항이기에 모든 commit에 본문 내용을 작성할 필요는 없습니다.
  • 한 줄에 72자를 넘기면 안 됩니다.
  • 어떻게(How)보다 무엇을, 왜(What, Why)에 맞춰 작성합니다.
  • 설명뿐만 아니라, commit의 이유를 작성할 때에도 씁니다.

4. 꼬리말(Footer)

  • 선택 사항이므로 모든 commit에 꼬리말을 작성할 필요는 없습니다.
  • Issue tracker ID를 작성할 때 사용합니다.
  • 해결: 이슈 해결 시 사용
  • 관련: 해당 commit에 관련된 이슈 번호
  • 참고: 참고할 이슈가 있는 경우 사용

About

[한국대학생IT경영학회 26기] 7조

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.3%
  • Shell 0.7%