Tikkle은 소비와 관련해 자신만의 목표치 설정과 올바른 습관 형성을 도와주는 플랫폼입니다.
분야 | 이름 | 포지 |
---|---|---|
기획 | 윤혜정 | 👩🏻 서비스 기획, 와이어프레임, 유저 조사 담당 |
기획 | 이하연 | 👩🏻 서비스 기획, 와이어프레임, 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를 사용하여 서버를 배포할 것입니다.
- 로그인 1. 챌린지 2. 소비회고 3. 사용자 관리
- 변수, 함수, 인스턴스 : Camel case | ex) camelCase
- 함수명 : Verb + Term | ex) getUserInformation()
- 클래스, 생성자 : Pascal case (Upper Camel case) | ex) CamelCase
커밋 메세지는 “타입: 제목/ 본문/ 꼬리말”로 구성됨
- Feat - 새로운 기능 추가
- Fix - 버그 수정
- Build - 빌드 관련 파일 수정
- Ci - CI관련 설정 수정
- Docs - 문서 (문서 추가, 수정, 삭제)
- Style - 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없는 경우)
- Refactor - 코드 리팩토링
- Test - 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없는 경우)
- Chore - 기타 변경사항 (빌드 스크립트 수정 등)
- 제목은 50자를 넘기지 않고, 마침표를 붙이지 않습니다.
- 제목에는 commit 타입을 함께 작성합니다.
- 과거 시제를 사용하지 않고 명령조로 작성합니다.
- 제목과 본문은 한 줄 띄워 분리합니다.
- 제목의 첫 글자는 반드시 대문자로 씁니다.
- 제목이나 본문에 이슈 번호(가 있다면) 붙여야 합니다.
- 선택 사항이기에 모든 commit에 본문 내용을 작성할 필요는 없습니다.
- 한 줄에 72자를 넘기면 안 됩니다.
- 어떻게(How)보다 무엇을, 왜(What, Why)에 맞춰 작성합니다.
- 설명뿐만 아니라, commit의 이유를 작성할 때에도 씁니다.
- 선택 사항이므로 모든 commit에 꼬리말을 작성할 필요는 없습니다.
- Issue tracker ID를 작성할 때 사용합니다.
- 해결: 이슈 해결 시 사용
- 관련: 해당 commit에 관련된 이슈 번호
- 참고: 참고할 이슈가 있는 경우 사용