짧은 응원 문구와 감성적인 배경 이미지를 함께 감상할 수 있는 모바일 앱입니다.
문구와 이미지는 전자액자처럼 자동 전환이 가능하며, 즐겨찾기 기능으로 사용자는 마음에 드는 문구만 모아서 볼 수 있습니다. 일상 속에서 부담 없이 긍정적인 메시지를 확인할 수 있도록 구성된 가벼운 라이프스타일 앱입니다.
소식 받기
0
개요
"CheerUp Mini"는 사용자에게 긍정적인 메시지를 보여주는 모바일 앱입니다.
응원, 좋은 말, 동기부여 문구, 위로가 되는 메시지를 배경 이미지와 함께 보여줍니다. 전자액자처럼 자동 전환이 가능하며, 즐겨찾기 기능으로 사용자는 마음에 드는 문구만 모아서 볼 수 있습니다.
이 프로젝트에서 확인하고 싶었던 것은 Flutter를 이용해서 Android와 iOS를 동시에 지원하는 앱 개발, Google Play Store와 Apple App Store 출시 과정, 그리고 Google AdMob을 통한 인앱 광고 적용 과정이었습니다.
저는 직접 제품을 만들고 출시하는 경험도 필요하다고 느끼고 있었습니다. 단순 개발 작업만 하는 것이 아니라 그 이상을 이해하고 싶었습니다. 직접 완성된 앱을 스토어에 올려서 앱을 출시하는 과정, 출시된 앱에 사람들의 반응을 확인하는 것 모두 직접 경험하기를 원했습니다.
당장 큰 수익을 내거나, 완성도 높은 서비스를 만드는 것이 목적은 아닙니다. 개발자로서 역량과 기술뿐만 아니라 비즈니스 관점으로 제품을 바라보고 출시 과정까지 이해함으로써 저의 성장에 분명 좋은 영향을 끼칠 것으로 생각한 것입니다.
이 프로젝트에서 목표는 다음과 같습니다.
목표
이유
Flutter 앱 개발 공부
크로스 플랫폼 개발을 지원하는 Flutter를 이용해 Android과 iOS를 모두 지원하는 앱 개발 과정을 익히기 위해
Google Play Store 출시
Android 앱을 실제 Google Play Store에 출시하는 절차를 경험하기 위해
Apple App Store 출시
iOS 앱을 실제 Apple App Store에 출시하는 절차를 경험하기 위해
Google AdMob 인앱 광고 적용
모바일 앱에 인앱 광고를 추가하는 과정을 익히기 위해
처음 개발하는 앱이기 때문에 비교적 단순한 기능의 앱을 선택했습니다. 서버나 결제 기능이 필요한 앱이 아니라 단순한 화면 구성으로 배경 이미지와 함께 문구를 보여주는 앱입니다. 우선 Flutter 앱 개발을 익히고 앱스토어에 제출하는 전체 과정을 경험할 수 있는 앱이면 충분하다고 생각했습니다. Flutter는 하나의 코드 기반으로 여러 플랫폼의 앱을 만들 수 있는 프레임워크로 알려져 있고, Android와 iOS를 함께 지원하는 앱 개발에 활용할 수 있습니다 [Flutter 공식 사이트].
아이디어 자체는 단순하게 시작했습니다. 사람에게 힘이 되는 말, 응원해주는 말, 좋은 문구를 모아 보여주는 앱을 만들고 싶었습니다. 누군가가 하루 중 잠깐이라도 이 앱을 켜고 긍정적인 문장을 볼 수 있다면 좋겠다고 생각했습니다. 또 앱을 단순한 문구 목록이 아니라, 화면을 켜둔 상태로 두면 문구와 배경이 자동으로 바뀌는 전자액자 같은 앱으로 만들고자 했습니다.
배경과 목표
핵심 기능
응원 문구 제공
다양한 응원 문구와 긍정적인 메시지를 제공
배경 이미지 적용
문구 분위기에 어울리는 배경 이미지를 함께 제공
문구 자동 전환
전자액자 모드에서 문구가 자동으로 변경
즐겨찾기
마음에 드는 문구를 저장해 즐겨찾기한 문구들만 제공
다국어 지원
한국어, 영어, 스페인어, 일본어, 중국어, 러시아어 지원
인앱 광고
Google AdMob을 통한 광고
개발 과정
개발 목표 설정
"CheerUp Mini"의 목표는 실제 스토어 출시까지 경험하는 모바일 앱 프로젝트로 진행했습니다.
기능 범위는 초기에 명확하게 제한했습니다. 서버, 로그인, 결제처럼 출시 난도를 높이는 기능은 제외하고, 모바일 앱의 기본 개발 흐름과 배포 절차를 끝까지 경험하는 데 집중했습니다.
프로젝트의 핵심 컨셉은 “짧은 응원 문구를 전자액자처럼 감상하는 앱”이었습니다. 사용자가 앱을 켜두면 문구와 배경 이미지가 자동으로 전환되도록 기획했습니다.
CheerUp Mini 구상
시스템 아키텍처
"CheerUp Mini"는 별도 서버 없이 동작하는 합니다. 문구 데이터와 이미지 리소스를 앱 내부에 포함하고, 앱 화면에서 이를 조합해 보여주는 방식으로 구현했습니다.
구성 요소
역할
문구 데이터
응원 문구, 언어별 메시지, 즐겨찾기 대상 데이터 관리
이미지 리소스
문구 분위기에 맞는 배경 이미지 제공
화면 UI
문구 표시, 배경 이미지 출력, 즐겨찾기 상태 표시
자동 전환 로직
일정 시간마다 문구와 배경을 변경
로컬 상태 관리
사용자가 저장한 즐겨찾기 문구 유지
광고 모듈
AdMob 광고 단위 연결 및 앱 내 광고 표시
시스템 아키텍처 구성도
핵심 구현 흐름
구현흐름
AdMob 적용과 광고 심사 대응
AdMob은 단순히 광고 코드를 넣는 것만으로 끝나지 않았습니다. 약 일주일간 AdMob 계정이 일시정지되는 경험을 겪었습니다.
AdMob에서는 앱을 미게시 상태로 등록하고 광고 단위를 미리 만들 수 있지만, 앱 인증은 앱이 스토어에 출시된 뒤 가능합니다. Google 공식 문서에서도 앱 검토를 받으려면 지원 스토어에 앱을 연결해야 하며, 검토 중에는 광고 게재가 제한될 수 있다고 안내합니다 [AdMob - 앱 준비 상태에 관해].
앱이 출시되기 전, 스토어에 앱을 심사하는 과정에서 실제 광고가 노출되었습니다. 이것이 문제였는지 AdMob 계정이 일시정지되었습니다. 정확한 정지 원인을 단정할 수는 없지만, 개발·출시 단계에서는 테스트 광고 사용, 앱 인증 완료 여부, 광고 게재 제한 상태를 반드시 확인해야 한다는 점을 배웠습니다. Google 역시 개발 중에는 실제 광고 대신 테스트 광고를 사용하라고 안내하며, 실제 광고를 클릭하면 무효 활동으로 계정이 플래그 처리될 수 있다고 설명합니다 [AdMob - 무효 활동을 방지하는 방법].
Google Play는 신규 개인 개발자 계정에 대해 프로덕션 출시 전 비공개 테스트 요건을 요구하며, 현재 공식 문서 기준으로는 최소 20명의 테스터가 14일 연속 참여해야 했습니다 (현재는 최소 12명의 테스터를 요구). 또한 프로덕션 접근 신청 시 앱의 테스트 과정과 출시 준비 상태에 대한 질문에 답해야 합니다 [Google Play - 새로운 개인 개발자 계정의 앱 테스트 요구사항].
첫 번째 신청은 승인되지 않았고, 다시 진행된 비공개 테스트에서는 테스터와 소통하기, 사용자 의견 수집 및 확인하기, 사용자 의견 반영하기를 지켜서 진행했습니다. Google Play의 비공개 테스트 안내에서도 특정 사용자를 대상으로 테스트하고, 피드백 채널을 제공하며, 비공개 피드백을 수집하는 것을 권장합니다 [Google Play - 새로운 개인 개발자 계정의 앱 테스트 요구사항].
브라우저 변경, 쿠키와 캐시 삭제, 시크릿 모드, VPN 확인 등 클라이언트 환경 변수를 먼저 제거했습니다. 그래도 해결되지 않아 Google Play 지원팀에 문의했고, 오류 재현 영상을 함께 전달했습니다. 하지만 안내되는 방법으로 진행해도 해결이 되지 않아 Google Play 지원팀은 개발팀에게 보고하겠다라고 답변을 받았습니다. Google Play Console이 업데이트될 때, 다시 진행해달라는 안내를 받았지만 여전히 해결되지 않았습니다. 끝내 Google Play에는 출시되지 못한채로 남게 되었습니다.
Apple의 App Store에 출시된 모습오류에 대해서 문의했던 내용
성과
Flutter로 앱 개발 공부
성공
Google Play Store 출시
실패
Apple App Store 출시
성공
Google AdMob 인앱 광고 적용
성공
이 프로젝트의 성과는 단순히 "앱이 성공했는가"가 아닙니다. 처음부터 이 프로젝트의 목적은 큰 수익을 내는 것이 아니라, Flutter 앱 개발과 스토어 출시 과정을 직접 익히는 것에 가까웠습니다. 그 기준에서 보면, 이 프로젝트는 절반 이상 성공한 프로젝트입니다.
프로젝트를 통해 얻은 학습
"CheerUp Mini"는 기능적으로 복잡한 앱은 아니었지만, 모바일 앱 개발자의 업무뿐만 아니라 출시까지 범위를 넓게 경험하게 해준 첫 프로젝트입니다. 코드 작성뿐 아니라 빌드, 심사, 정책, 광고, 출시 실패 가능성까지 함께 고려해야 한다는 점을 확인했습니다.
첫째, 테스트 참여자와 소통, 피드백을 위한 창구를 마련하고, 테스트 기간동안 수정 내역 반영해야 하는 것입니다.
둘째, 스토어에 앱이 출시되고 AdMob에서 앱 인증이 끝나기 전에는 실제 광고를 노출하지 않는 것입니다. 앱 출시 뒤 인증 상태를 확인하고 업데이트를 통해 광고를 적용하는 것입니다.
셋째, 프로덕션 질문에 대한 답변은 테스트 과정, 피드백 반영 내용, 출시 준비 상태 등을 구체적으로 작성하는 것입니다.