마이데이터를 기반으로 자산 및 지출을 관리하고, 지출 데이터를 활용한 게임 서비스를 제공하는 플랫폼입니다.
'거지방'은 젊은이의 유행에서 '무지출·무소비'라는 하나의 문화가 되었습니다.
이는 지출을 줄이는 목표를 달성하기 위한 하나의 수단으로 서로의 소비를 공유함으로써 동기 부여를 받는 것을 목표로 합니다. 하지만, 현재 실정은 사진을 통한 인증이라는 단순한 수준에 그치고 있습니다.
이는 전반적인 소비 습관을 개선하기보다 인증을 위해 소비를 하지 않는 주(主)와 객(客)이 바뀔 수 있다는 생각이 들었습니다.
즉, 이 에너지를 단순히 지출하지 않았다는 사실을 공유하는 것에 사용하는 것보다 자신의 전반적인 소비 습관을 건강하게 할 수 있는 데 치환할 수 있는 방법의 필요함을 느꼈습니다.
이에 마이데이터를 통해 연동한 지출액과 형성 자산 목표액을 능력치로 삼아 전투를 진행하는 게임 형태로 풀어냈습니다. 자신의 소비 패턴을 기반으로 한 새로운 능력치를 펫을 획득하여 도감을 채우고, 전투를 통해 랭킹을 올리는 방식으로 지출 관리에 흥미를 느끼게 했습니다.
이를 통해 사용자는 대전을 통해 다른 유저와의 비교를 통해 자신의 소비 행태를 파악하고, 아기자기한 펫이 주는 알림을 통해 소비 개선을 위한 도구로 활용할 수 있을 것입니다.
- 2024.10.11: We released the FFING 1.0.0.0 version. Check out the 📑 Technical Report!
- 연간 자산 목표를 설정할 수 있습니다.
- 목표 자산을 달성할 수 있는 월 소비액을 추천합니다.
- 월간 소비 상한액을 정합니다.
- 설정한 목표를 기반으로 지출 관리 및 게임 데이터를 설정합니다.
- 연동한 마이데이터로 자산 내역을 한 번에 확인할 수 있습니다.
- 자산 종류별로, 계좌별로 자산을 조회할 수 있습니다.
- 설정한 목표를 토대로 앞으로 필요한 증액해야하는 금액을 제공합니다.
- 6개월 동안의 자산 추이를 분석합니다.
- 부모와 자녀의 공동 활동으로, 자녀가 달성할 특정 목표를 세우고 이를 달성할 시 부모에게 리워드를 받을 수 있습니다.
- 자녀가 요청한 경우 혹은 정해진 기간이 만료된 경우 부모에게 목표 달성 여부 확인을 요청할 수 있습니다.
- 목표 달성이 확인되면 부모는 연동된 계좌를 통해 자녀의 계좌로 간편하게 리워드를 송금할 수 있습니다.
- 자산 현황 알림
- 이상 지출 탐지
- 펫 관리 알림
- 매주 랜덤으로 새로운 펫을 생성하며, 지난주 소비 패턴을 분석해서 5가지 카테고리 별로 정해진 로직에 의해 능력치를 부여합니다.
- 해당 카테고리의 지출이 많을수록 능력치는 감소하고, 지출이 적을수록 능력치는 증가합니다.
- 처음 얻는 펫은 도감에 등록됩니다.
- 주차별 펫의 히스토리가 저장되어 해당 주의 승패와 펫의 능력치 등을 조회할 수 있습니다.
- 상대방과 펫간 1:1 배틀을 할 수 있습니다.
- 펫간 배틀은 펫이 보유한 스탯을 기반으로 번갈아 가며 공격을 가해 상대방의 체력을 깎는 것입니다.
- 서로의 스탯 비교를 통해 데미지의 가중치가 계산됩니다.
- Front-end: React 18.3.1, Firebase 9.5.0, Phaser 3.85.2, Typescript, Zustand, React-query, tailwind
- Back-end: JDK 21, SpringBoot 3.3.2, SpringSecurity 6.3.1, MySQL 8.3.0
- Infra: Nginx, AWS EC2, AWS S3, Docker, Prometheus, Grafana
- 버전 및 이슈관리: Gitlab, Gitlab Issues
- 협업 툴: Notion, MatterMost, Figma, Erdcloud, Jira, GoogleWorkspace
이름 | 구분 | 역할 | 수행업무 |
---|---|---|---|
변재호 | 팀장 | BE, Infra | 주식, 게임-매칭, 게임-배틀 |
김명화 | 팀원 | BE, FE | 금융 API, Spring Batch 및 스케줄러 구현, FCM 구현 |
김해엽 | 팀원 | BE | Spring Security 및 JWT, 목표 설정, 모니터링 시스템 |
탁인혁 | 팀원 | BE, DB | 자산 - 입출금, 예금, 적금, 게임 - 펫, 도감 API 개발 |
원민혁 | 팀원 | FE | 게임 에셋 수정 및 차트, 로그인, WebSocket 연결, API 연결 시 검증 |
이규석 | 팀원 | FE | 게임, 도감, 자산, 지출, 알림 |
- 기획을 잘하는 것은 매우 어려운 일이다. 기획 내용도 좋아야하고, 기획 내용이 좋은지 알 수 있어야 하고, 구체화하며 심지어 디자인까지도 잘해야하는 것까지가 기획인 것 같다. 아마 이래서 기획자와 디자이너가 따로 있는 것이 아닐까 싶다.
- 시간이 늘어지는 부분을 어떻게 처리해야할지 아직 모르겠다. 늘어지니 넘어가자고 하기엔 꼭 해결해야하고, 그냥 놔두자니 시간이 너무 걸리는 문제가 있어 어떻게 이를 동시에 해결할 수 있을지 고민이 필요한 것 같다.
- 설계 단계에서부터 개발 흐름을 고려하며 탄탄하게 기획하는 것의 중요성을 깨달았습니다.
- 일정이 촉박한만큼 개발 현황과 이슈를 더 잘 공유하면서 비효율이 발생하지 않도록 신경쓰는 것이 중요하다고 느꼈습니다.
- 어려움이 있을 때 혼자 충분히 고민하는 것도 중요하지만 적절한 타이밍에 주변 사람들과 함께 고민하며 효율적으로 해결하는 것도 필요하다는 것을 깨달았습니다.
- 프로젝트를 진행하며, 기획 단계에서의 구체성이 중요하다는 것을 느꼈다. 하지만 완벽한 기획을 고집하다 보면 시간과 자원이 소모되기 때문에, 기획과 개발의 비중을 유연하게 조율하는 것이 필요하다고 생각했다.
- 일정 관리를 더 탄탄하게 할 필요를 느꼈다. 처음 하는 업무일 경우 정확한 기간을 설정하는 것이 어렵지만 전체적인 일정에 맞춰 진행하는 것이 프로젝트 완수에 핵심이라고 느꼈다.
- 기간이 촉박해지면 정신없이 개발하게 되는데 그렇다라도 코드의 의미를 이해하고 필요 시 기록하는 것이 중요하다고 느꼈다. 특히, 팀원들이 함께 참여하는 개발 환경에서 각자의 코드가 프로젝트 전체에 미치는 영향을 고려할 필요가 있다고 느꼈다.
- 설계 단계에서 부족하게 마무리하고 넘어갔던 부분이 개발 단계에서 발목을 붙잡았다. 설계 단계의 중요성에 대해 다시 한 번 깨달았다.
- 업무의 우선순위와 볼륨을 적절히 잡는게 중요하다는 것을 배웠다. 업무의 우선 순위를 잘 잡았으면 보다 빠르게 프로젝트를 진행할 수 있었을 것 같다.
- API를 개발할 때 프론트엔드와 활발히 소통하고 파라미터, url 등 확실히 공유되어야 하는 정보를 잘 공유해야 보다 원활한 프로젝트를 할 수 있다는 것을 배웠다.
- 게임에서 필요한 에셋을 구할 때 많은 에셋을 가져오고 수정하는 방법에 대해서 좀 더 알았으면 좋았을 것이라고 생각합니다.
- 팀원 간 공유를 위해서 작성한 코드에 대한 이해와 주석이 필요하다고 생각했습니다.
- 막혔을 때 혼자 고민하는 것도 좋지만, 다른 팀원들과 공유하여 상황을 알리고 도움을 받는 것이 필요하다는 것을 배웠습니다.
- 팀원 모두가 우유부단했다. 각자의 성향을 파악해서 내가 먼저 나섰어야 한다. 앞으로 상황에 맞게 카멜레온처럼 리더와 팔로워를 오갈 수 있는 이규석으로 거듭나기를 원한다.
- 설계를 깊게 할 수 있는 방법을 연구할 필요를 느꼈다. 기획을 못 하면 서비스에 문제가 생기지만, 설계를 제대로 하지 않으면, 했던 것을 다시 해야 하는 불상사가 생긴다.
- 일정 관리는 어렵다. 내가 만든 기능을 언제 끝낼 지 알 수가 없다. 이를 개선하기 위해 jira, notion 등을 통해 관리해봤는데 따로 PM 포지션이 있는 이유를 알았다. 이 노하우를 조금 배울 수 있는 기회가 있었으면 좋겠다.