| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- java
- firebase
- DART
- println
- LLM
- 엡
- unity
- Clean Architecture
- printf
- abap
- lifecycle
- JQ
- scss
- java 콘솔 출력 차이
- ListView
- 앱심사
- 배포
- java 출력
- Flutter
- 자바 출력 방식
- JS
- 자바 포맷 출력
- UI/UX
- 단축키
- nodejs
- riverpod
- react
- npm
- develop
- 자바스크립트
- Today
- Total
guricode
[Flutter]자취의 정석 1 - 기획 및 컨셉(클린아키텍쳐MVVM, Jira) 본문

마지막 프로젝트로 자취의 정석이라는 앱을 만들기로했다.
내가 만들고 싶은 앱을 기준으로 개발하고 싶어서 리더로 참여하게 됐다.
어쩐지 4개월동안 팀장,리더만 계속하는듯한 느낌이 든다. 이것도 나름 경험이겠거니 하고 긍정적으로 받아들이고 있다.
원래는 다른 아이디어들이 괜찮아 보여서 팀원으로 참여하려했지만 운이좋은건지(?) 내가 생각한 앱을 구현할 수 있겠다 싶어서 팀을 꾸리고 진행하게 됐다.
자취의 정석이라는 컨셉은 두번의 수정이있었다.
첫번째로, 원래는 냉장고 관리 기능을 따로 빼서 냉장고의 정석
그리고 유산소 운동 전용 앱인 유산소의 정석
마지막으로 자취하는 사람들을 중, 자취방 관리가 잘 안되는 사람들을 위해 매일 미션을 주고 경험치를 제공하는 자취의 정석이다.
이 세가지의 아이디어를 제시했을때 이용자가 어떤 모티브로 앱에 연결성을 가지게 될까를 고민했다.
그래서 자주 사용하던 커플앱인 썸원에서 아이디어를 따왔다.
썸원은 반려몽이라는 캐릭터를 키우며 커플끼리 교환일기를 작성하는 방식이다.
썸원은 커플간, 만나서 직접 하기 어려운 주제, 혹은 이런 질문도 있네? 라는 재미있는 질문들이 주어지고, 상대방의 대답을 기대할수있는 모티브가 있다.
게다가 이 반려몽이라는 컨셉이 참 귀엽고 키우는 맛이있었다.
그리고 처음에 생각했던 세가지 아이디어를 한개로 합치고, 커뮤니티를 구성하도록 했다.
아직 다 정해진건 아니지만 냉장고,자취,유산소 중 중점이 되는건 자취이며, 주 기능은 커뮤니티가 될것같다.
자취의 정석이라는 앱은 자취하는 사람을 타겟으로 집먼지라는 캐릭터를 키우며
자취하면서 필요한 일과들을 미션형식으로 제공해준다.
이 미션을 깨면 집먼지가 성장한다.
그리고 동네설정을 통해 지역기반 커뮤니티도 구현할 예정이다. 사실 커뮤니티 구현에 가장 많은공수가 들어갈것같다.
들어가는 라이브러리 패키지는 이렇다.
앱 패키지/라이브러리
| ⭐⭐⭐ | 상태관리 | flutter_riverpod | flutter pub add flutter_riverpod | Riverpod 기반 상태관리 |
| ⭐⭐ | 라우팅 | go_router | flutter pub add go_router | 선언적 라우팅, 네비게이션 |
| ⭐⭐⭐ | Firebase 초기화 | firebase_core | flutter pub add firebase_core | Firebase 기본 초기화 |
| ⭐⭐⭐ | 사용자 인증 | firebase_auth | flutter pub add firebase_auth | 로그인/회원가입, 인증 관리 |
| ⭐⭐⭐ | 실시간 DB | cloud_firestore | flutter pub add cloud_firestore | Firestore 데이터 관리 |
| ⭐⭐ | 실시간 DB | firebase_database | flutter pub add firebase_database | Realtime Database 필요 시 |
| ⭐⭐⭐ | 파일/이미지 저장 | firebase_storage | flutter pub add firebase_storage | 이미지/파일 저장 |
| ⭐⭐ | 앱 분석 | firebase_analytics | flutter pub add firebase_analytics | UX 개선, 이벤트 분석 |
| ⭐⭐ | 푸시 알림 | firebase_messaging | flutter pub add firebase_messaging | FCM 푸시 알림 |
| ⭐⭐ | 크래시 리포트 | sentry_flutter | flutter pub add sentry_flutter | 실시간 오류 추적 |
| ⭐⭐ | 크래시 리포트 | firebase_crashlytics | flutter pub add firebase_crashlytics | Firebase 기반 오류 추적 |
| ⭐⭐ | 이미지 선택 | image_picker | flutter pub add image_picker | 카메라/갤러리 선택 |
| ⭐⭐ | 이미지 캐싱 | cached_network_image | flutter pub add cached_network_image | 이미지 캐싱 최적화 |
| ⭐⭐ | 이미지 압축 | flutter_image_compress | flutter pub add flutter_image_compress | 이미지 최적화 |
| ⭐ | 웹뷰 | webview_flutter | flutter pub add webview_flutter | 앱 내 웹뷰 구현 |
| ⭐ | 권한 관리 | permission_handler | flutter pub add permission_handler | 카메라, 위치, 저장소 권한 |
| ⭐ | 위치 | geolocator | flutter pub add geolocator | 위치 좌표 획득 |
| ⭐ | 위치 | geocoding | flutter pub add geocoding | 좌표 ↔ 주소 변환 |
| ⭐ | 폰트 | google_fonts | flutter pub add google_fonts | 구글 폰트 적용 (안드로이드/iOS 호환) |
| ⭐ | 날짜/시간 | intl | flutter pub add intl | 국제화, 날짜/시간 포맷 |
| ⭐ | 피드 시간 표시 | timeago | flutter pub add timeago | "몇 분 전" 포맷 처리 |
| ⭐ | 로깅 | logger | flutter pub add logger | 개발 단계 로그 관리 |
⚙️ 개발용 패키지 (dev_dependencies)
| ⭐⭐⭐ | 코드 생성 | build_runner | flutter pub add --dev build_runner | JSON/Freezed 등 코드 자동 생성 |
| ⭐⭐ | JSON 직렬화 | json_annotation | flutter pub add json_annotation | 모델 클래스 어노테이션 |
| ⭐⭐ | JSON 직렬화 | json_serializable | flutter pub add --dev json_serializable | JSON 자동 변환 코드 생성 |
| ⭐⭐ | 테스트 | flutter_test | 기본 포함 | 단위/위젯 테스트 |
| ⭐⭐ | 테스트 Mock | mockito | flutter pub add --dev mockito | Mock 객체 생성 |
백엔드는 늘 사용하던 firebase를 이용하기로했다.
supabase도 고려대상이었지만 러닝커브가 있어 3주안에 해결하기에는 조금 위험해 보였다.
테스트코드는 mockito를 사용한다.
데이터 테이블

보면 알겠지만 커뮤니티에 많은 기능이 들어간다.
일단 지역기반이기때문에 지역별로, 그리고 카테고리별로 나눌생각이다.
미션성공을하면 공개버튼을 통해 공개하는 섹션도 만들어질 예정이다.
많은 attribute를 컨트롤해야하니 시간도 왠지 많이들것같은 기분이 든다.
디자인 패턴은 가독성을 위해 클린아키텍쳐 MVVM을 사용한다.
업무 진행상황은 Jira 오픈소스를 이용하여 확인할 예정이다.
Jira는 예전 다니던 직장때 사용했었는데 반갑다
MVP 마감은 3주가 주어졌다.
MVP란?
Minimum Viable Product 의 약자로,
구현하고자 하는 서비스의 가장 중요한 가치를 골라, 최소한의 기능만을 담아낸 제품을 말합니다.
최소한의 기능이라고 해서 품질이 낮은 서비스를 말하는 것은 아닙니다.
우리 프로젝트의 뾰족한 강점을 찾는 출발점으로,
최소한의 기능을 빠르게 개발하고,
피드백을 통해 장단점을 빠르게 파악하여,
기술적 고도화를 위해 빠르게 개선하는 기회를 제공합니다.
'앱 > Flutter&Dart' 카테고리의 다른 글
| 메모리 및 시점 비교 표 (Dart 기준)/final / const / static 비교 (0) | 2025.09.12 |
|---|---|
| [flutter]자취의 정석 -2 : Lottie JSON을 이용한 애니메이션 구현 (0) | 2025.09.11 |
| [flutter]Hero 애니메이션 (0) | 2025.09.09 |
| [flutter-sns-project - 11]flutter 앱 배포 준비,CheckboxListTile,WebView (0) | 2025.09.08 |
| [flutter-sns-project - 10]안드로이드 릴리즈 단계 요약 (0) | 2025.09.05 |