Skip to content
YANG SEUNG HYEOK

스타 노래방 - 노래방책 - Apps on Google Play

Save your favorite songs and easily reserve them at karaoke!

https://play.google.com/store/apps/details?id=kr.co.placea.karaoke

스타 노래방 - 노래방책 앱 - App Store

App Store에서 Ace Planet Co., Ltd의 스타 노래방 - 노래방책 앱을 다운로드하십시오.

https://apps.apple.com/kr/app/%EC%8A%A4%ED%83%80-%EB%85%B8%EB%9E%98%EB%B0%A9-%EB%85%B8%EB%9E%98%EB%B0%A9%EC%B1%85/id6738462301

한 줄 소개

TJ·KY 노래방 기기의 곡 번호·신곡·인기곡을 검색하고, 플레이리스트로 관리할 수 있는 모바일 앱입니다.

기존 Android(Kotlin) 앱을 개발·운영한 후, iOS 출시를 위해 Flutter(Dart) 기반으로 리팩토링하여 App Store까지 배포했습니다.

곡 데이터는 Scrapy 크롤링 → PHP API → 앱(Retrofit) 파이프라인으로 구성했습니다.

주요 기능

  • 📷 [메인 화면 — 인기곡 탭]
  • 📷 [최신곡 탭]
  • 📷 [검색 화면]
  • 📷 [마이뮤직 · 플레이리스트]

지원 플랫폼

  • Android: Kotlin 기반 개발 및 Google Play 배포
  • iOS: Flutter(Dart) 기반 리팩토링 및 App Store 배포

문제와 해결

문제해결
노래방 번호를 기기마다 따로 찾아봐야 하는 어려움TJ / KY 채널 전환 + 검색·신곡·인기곡 통합
곡 DB를 수동으로 관리하기 어려움Scrapy 웹 크롤링 → DB 저장 → API를 통한 JSON 변환 → 앱 화면 렌더링
오프라인 상태에서 API 화면이 빈 화면으로 표시됨네트워크 상태 확인 후 안내 화면을 제공하는 fallback 구현
Android 앱만 제공되어 iOS 사용자가 이용하기 어려움기존 기능을 Flutter로 리팩토링하여 iOS 앱으로 확장
앱 운영 및 수익화 필요AdMob 광고 적용 및 Google Play / App Store 배포

주요 기능

1) 곡 검색

  • 제목 / 가수 기반 검색
  • TJ · KY 채널 선택 및 전체 검색
  • 검색 결과를 마이뮤직에 추가
TJ 채널 — 빅뱅 검색
KY 채널 — 한로로 검색
TJ 채널 — RESCENE 검색

2) 인기곡 / 신곡

  • 월별 인기곡·신곡 검색
  • TJ / KY 채널 전환
인기곡 — TJ 채널
신곡 — KY 채널
유튜브 연결 다이얼로그

3) 마이뮤직 · 플레이리스트

  • Room DB를 활용한 로컬 데이터 저장
  • 플레이리스트 생성 및 관리
  • 플레이리스트 색상 설정
  • 곡 추가 / 삭제
마이뮤직에 저장하기
신규 플레이리스트 생성
마이뮤직 플레이리스트

4) 네트워크 Fallback

  • 검색·인기곡·신곡 등 API가 필요한 화면 진입 전 네트워크 상태 확인
  • 네트워크가 없으면 API 호출을 수행하지 않고 안내 메시지 표시
  • 빈 화면 대신 「네트워크에 연결을 확인해주세요」 안내
  • 검색 / 인기곡 / 신곡 / 탭 전환 구간에 동일하게 적용
네트워크 연결 안내

데이터 흐름

[DB] → [PHP API] → [JSON Response] → [Android / Flutter] → [곡 목록 화면 렌더링]
REST API JSON 응답 예시

내가 기여한 점

1) Android 앱 개발

Kotlin과 Android SDK를 기반으로 앱 기능 100%를 혼자서 개발하였습니다.

  • MVVM 기반 구조 적용
  • ViewModel / Repository 구성
  • Hilt를 이용한 의존성 주입
  • Retrofit / OkHttp를 활용한 API 통신
  • Room을 활용한 로컬 플레이리스트 저장
  • Google Play Store 출시 및 운영

2) Android → Flutter 리팩토링

기존 Android 앱을 iOS에서도 제공하기 위해 Flutter(Dart) 기반으로 리팩토링했습니다.

  • 기존 Android 앱의 주요 기능 분석 및 구조 파악
  • 기존 API 및 데이터 흐름을 유지하면서 Flutter 앱으로 기능 재구현
  • Android / iOS 환경을 고려한 UI 및 기능 대응
  • Flutter 기반 앱으로 iOS App Store 배포 진행

이를 통해 Android 네이티브 개발부터 Flutter 크로스플랫폼 개발, 실제 앱스토어 배포까지 경험했습니다.

기존 Android
Kotlin
Android SDK
Retrofit
Room
Hilt
    ↓
Flutter 전환
Dart
Flutter

3) AdMob 수익화 적용

앱 서비스 운영을 위해 Google AdMob을 적용하여 광고 수익화 기능을 구현했습니다.

  • AdMob 앱 및 광고 단위 등록
  • 메인 화면 및 종료 화면 광고 적용
  • Ads Application ID 및 AD_ID 권한 설정
  • 광고가 앱 UI와 자연스럽게 동작하도록 적용
  • Firebase Analytics 연동

4) Google Play Store 배포

Android 앱을 실제 서비스로 출시하기 위해 Google Play Console을 활용하여 배포 및 운영을 진행했습니다.

  • 앱 서명 키 관리
  • AAB 빌드 및 업로드
  • Google Play Console 앱 등록
  • 프로덕션 배포
  • targetSdk 36(Android 16) 대응
  • 스토어 상세 정보 및 리뷰 유도 링크 연동

5) Apple App Store 배포

Android 앱의 주요 기능을 Flutter로 리팩토링한 후 iOS 앱으로 확장하여 App Store에 배포했습니다.

  • Flutter 기반 iOS 앱 빌드
  • App Store Connect 등록
  • 앱 정보 및 스토어 등록 정보 설정
  • App Store 심사 및 배포 진행

프로젝트를 통해 얻은 경험

Android 네이티브 개발 → Flutter 리팩토링 → 광고 수익화 → Google Play / App Store 배포까지 직접 경험하며, 단순한 기능 개발을 넘어 모바일 앱의 개발부터 출시 및 운영까지 전체 사이클을 경험했습니다.

기술 스택

Android
Kotlin, Android SDK
Cross Platform
Flutter, Dart
UI
ViewBinding, Material
Architecture
MVVM, ViewModel, Repository, LiveData
DI
Hilt
Network
Retrofit, OkHttp, Gson
Local
Room
Backend
PHP, MySQL, Scrapy
Ads / Analytics
AdMob, Firebase Analytics
Deploy
Google Play, App Store
Scrapy를 이용한 웹크롤링 라이브러리를 사용하여 곡 데이터를 수집하고 PHP API로 제공한 뒤, Kotlin 앱에서 Retrofit으로 적용하였습니다. Play 출시 중 발견한 오프라인 빈 화면은 네트워크 체크로 안내하도록 고쳤고, AdMob으로 수익화를 붙였습니다.

Flutter Dart언어를 이용하여 iOS 앱스토어에 업로드를 위해 리팩토링도 진행하였습니다!

스타 노래방 - 노래방책 앱 - App Store

App Store에서 Ace Planet Co., Ltd의 스타 노래방 - 노래방책 앱을 다운로드하십시오.

https://apps.apple.com/kr/app/%EC%8A%A4%ED%83%80-%EB%85%B8%EB%9E%98%EB%B0%A9-%EB%85%B8%EB%9E%98%EB%B0%A9%EC%B1%85/id6738462301