모드니 (MODENI) 🦋
가족을 연결해주는 정서적 소통 앱
📱 앱 소개
모드니는 현대 사회에서 심화되는 가족 간의 정서적 거리감을 해소하기 위해 탄생한 Flutter 기반의 정서적 소통 애플리케이션입니다.
🎯 창작 배경
청소년은 정서적으로 불안정한 시기에 부모의 애정과 관심을 필요로 하지만, 현실에서는 시간 부족, 표현 방식 차이 등으로 서로의 감정을 제대로 전달하지 못하고 있습니다. 특히 복지의 본질은 '필요한 사람이 적시에 도움을 받을 수 있도록 하는 것'인데, 단순히 정책을 전달하는 앱으로는 정서적 복지나 가족 내 연결의 문제를 해결할 수 없습니다. 따라서 우리는 "정서적 복지를 구현하는, 가족 간 유대를 회복시켜주는" 새로운 접근의 복지 서비스를 기획했습니다.
🎯 주요 기능
👨👩👧👦 가족 연결 시스템 부모와 자녀 회원가입 후 가족 코드로 연결 가족 구성원별 역할 설정 (아빠, 엄마, 딸, 아들 등)
❓ 매일 랜덤 질문과 답변 공유 가족 구성원들이 같은 질문에 답변하며 서로를 이해 공감 이모티콘으로 반응 가능 예: "오늘 가장 즐거웠던 순간은?", "내가 요즘 걱정하는 건?", "우리 가족 여행 가고 싶은 장소는?"
📝 감정 일기 공유 감정 버튼(즐거움, 슬픔, 아쉬움, 뿌듯함 등) 선택 후 일기 작성 가족 구성원들이 서로의 일상과 감정 상태를 한 눈에 파악 가능
🎯 미션 카드 시스템 부모와 자녀가 함께 할 수 있는 주간 미션 제공 예: 서로에게 편지쓰기, 같이 요리해보기, 산책하며 대화하기 미션 완료 시 칭찬 카드나 뱃지 증정
🧠 성향 테스트 및 궁합 확인 가족 구성원별 성향 분석 "갈등 시 조심할 점", "자녀가 스트레스 받을 때 반응법" 등 심리 조언 제공
📅 돌아보기 타임라인 함께했던 추억, 질문 답변, 사진, 대화를 날짜별로 자동 정리 "작년 오늘", "우리가 나눈 첫 질문" 등 회고 기능
🛠️ 적용 기술 및 라이브러리
Language: Dart
Framework: Flutter
State Management: Get (빠른 개발 속도와 직관적인 상태 관리를 위해 채택)
Networking: dio (백엔드 서버와의 RESTful API 통신)
Data Class: freezed (불변 객체 및 직렬화를 위한 코드 생성)
Version Control: Github
Design & Collab: Figma, Notion
🔧 기술적 문제 해결 및 성장
앱 개발자(1인) 로서 2일간의 해커톤을 진행하며 겪은 문제와 성장 경험입니다.
- 해커톤 환경에서의 신규 상태관리 라이브러리 도입 문제 상황: 2일이라는 매우 짧은 해커톤 기간 안에 완성도 있는 앱을 구현해야 했습니다. 기존에 BLoC 패턴을 사용해 본 경험이 있었지만, 러닝 커브와 코드 구현량이 적은 Get (GetX) 라이브러리가 빠른 개발에 더 적합하다고 판단하여 처음으로 도입을 결정했습니다.
해결 방안: Get이 처음이었지만, 기존에 이해하고 있던 BLoC의 상태관리 개념(상태 전파, 이벤트 처리)을 적용하며 유사점을 찾았습니다. 특히 AI 툴의 도움을 받아 Get의 구현 방식을 빠르게 학습하고 비교하며, 단시간 내에 전체적인 상태 관리 로직을 구축할 수 있었습니다.
배운 점: Get의 단순함과 BLoC의 구조화된 방식 간의 명확한 차이와 장단점을 이해했습니다. 무엇보다 '새로운 기술'이라도 명확한 목표(빠른 개발)가 있다면 기존의 지식을 응용하고 도구를 활용해 빠르게 습득하고 적용할 수 있다는 자신감을 얻었습니다.
- 백엔드 API 연동 오류 디버깅 문제 상황: 백엔드 서버와 API를 연동하는 과정에서, 특정 요청이 계속해서 404 에러 또는 의도하지 않은 결과(null)를 반환하는 문제가 발생했습니다.
해결 방안: 백엔드 팀과 함께 디버깅한 결과, dio를 통해 API를 요청할 때 '패스 파라미터(Path Parameter)' 로 보내야 할 데이터를 '쿼리 파라미터(Query Parameter)' 로 잘못 전송하고 있었음을 발견했습니다. (e.g., /user/{userId} 대신 /user?userId=...로 요청)
배운 점: 쿼리 파라미터와 패스 파라미터의 정확한 차이와 용도를 명확히 이해하게 되었습니다. 또한, 개발 초기 단계부터 백엔드 개발자와 API 명세서(Documentation) 를 명확하게 정의하고 공유하는 것이 얼마나 중요한지, 그리고 원활한 소통이 프로젝트 전체의 효율을 높인다는 것을 체감했습니다.
- 사용자 이탈을 막는 '가족 연결' UX 설계 문제 상황: 사용자(가족)를 연결하는 기능은 앱의 핵심 진입점이었습니다. 만약 이 과정이 복잡하다면 사용자가 초반에 이탈할 위험이 크다고 판단했습니다.
해결 방안: 복잡한 인증이나 여러 단계를 거치는 대신, 가장 직관적인 방식을 고민했습니다.
한 명이 대표로 '코드 공유' 기능을 통해 고유 코드를 생성합니다.
다른 가족 구성원들은 '코드 입력' 기능을 통해 해당 코드를 입력하여 즉시 같은 그룹으로 연결되도록 구현했습니다.
배운 점: 기술 구현뿐만 아니라 사용자 입장에서의 UX/UI 흐름을 고민하는 것이 중요함을 깨달았습니다. 핵심 기능일수록 사용자의 허들을 낮추는 간결한 설계가 앱의 성패를 좌우할 수 있음을 배웠습니다.
🌟 기대효과
정서복지 실현: 심리적 고립감과 가족 내 소외를 줄이는 '마음의 복지' 사각지대 해소: 제도적 복지로는 해결되지 않는 청소년 정신 건강, 가족 해체 위험을 예방 예방 중심 복지: 관계 회복을 통해 우울, 자존감 저하, 문제 행동 등을 미리 방지하는 효과 사회적 비용 절감: 청소년 문제행동, 부모 소외감 등으로 발생할 수 있는 2차 사회 문제를 줄임
modeni-app은 단순한 기술적 구현을 넘어서, 가족 간의 정서적 유대를 회복하고 진정한 복지를 실현하는 것을 목표로 합니다. 🏠💙