나리
전시글만드는 방식문의
←포트폴리오로 돌아가기
LevelUp Piano — MIDI 피아노 연습 앱

LevelUp Piano — MIDI 피아노 연습 앱

iPad · USB-MIDI 디지털 피아노 · 2026

  • Flutter
  • iOS 네이티브
  • Kotlin
  • 게이미피케이션
App Store프로젝트 방문

LevelUp Piano는 USB-MIDI 디지털 피아노를 아이패드에 연결해, 연주를 음표 단위로 실시간 판정하고 점수·경험치·진도로 이어주는 iPad 연습 앱입니다. 마이크로는 잡기 어려운 음표 단위 피드백을 혼자 연습하는 사람에게 제공하고, 스트릭·티어 리그·미션 같은 게이미피케이션으로 매일 건반 앞에 앉게 만듭니다. 선생님은 MIDI 파일을 올려 곡을 만들고 학생에게 배정하며, 독립 학습자는 커리큘럼을 스스로 밟습니다. 업로드된 MIDI는 기기 안에서 세 가지 속도의 반주 오디오로 렌더링됩니다. Flutter, Kotlin/Ktor, PostgreSQL, iOS 네이티브 오디오(AVAudioEngine), Cloudflare R2, Fly.io로 구축했습니다.

기술 스택

  • Flutter
  • Kotlin
  • Ktor
  • PostgreSQL
  • AVAudioEngine
  • Cloudflare R2
  • Fly.io
  • Firebase

스크린샷

LevelUp Piano — MIDI 피아노 연습 앱 — 1
LevelUp Piano — MIDI 피아노 연습 앱 — 2
LevelUp Piano — MIDI 피아노 연습 앱 — 3
LevelUp Piano — MIDI 피아노 연습 앱 — 4
LevelUp Piano — MIDI 피아노 연습 앱 — 5
LevelUp Piano — MIDI 피아노 연습 앱 — 6
LevelUp Piano — MIDI 피아노 연습 앱 — 7
LevelUp Piano — MIDI 피아노 연습 앱 — 8
LevelUp Piano — MIDI 피아노 연습 앱 — 9
LevelUp Piano — MIDI 피아노 연습 앱 — 10
LevelUp Piano — MIDI 피아노 연습 앱 — 11
LevelUp Piano — MIDI 피아노 연습 앱 — 12
LevelUp Piano — MIDI 피아노 연습 앱 — 13
LevelUp Piano — MIDI 피아노 연습 앱 — 14

최근 블로그 글

전체 글 보기 →
  • 개발 일지2026-10-10

    대시보드가 매달 중순이면 비는 이유 — 포트 스캐너가 메트릭 라벨이 되기까지

    Grafana Cloud 무료 한도(활성 시리즈 1만)를 두 번 넘겼습니다. 한 번은 히스토그램 버킷, 한 번은 취약점 스캐너가 두드린 경로가 route 라벨로 들어가서였습니다. 원인을 숫자로 잡고, 한 줄로 고치고, 테스트로 못 박은 기록입니다.

  • 개발 일지2026-10-09

    서버가 한 시간 넘게 죽어 있었는데 아무도 몰랐다 — 커넥션 풀 고갈과 이벤트 루프

    2026년 8월 14일, 모든 엔드포인트가 타임아웃됐고 헬스체크는 critical이었습니다. 수동 재시작으로 복구될 때까지 한 시간 넘게 아무도 로그인할 수 없었습니다. 풀이 마른 것보다 더 큰 문제는 서버가 스스로 빠져나오지 못한 구조였습니다.

  • 개발 일지2026-10-08

    exit 137 — 관측 도구가 서비스를 죽인 날

    트레이싱을 붙이고 다섯 주 뒤, 1GB 머신이 OOM으로 죽었습니다. 메모리를 2GB로 올려 급한 불을 끄고, 한 달 뒤 숫자를 재서 범인(OTel 에이전트)을 빼고 1GB로 돌아왔습니다. 관측 스택의 비용을 메모리로 치른 기록입니다.

관람해 주셔서 고맙습니다

© 2026 나리인포메이션(Nari Information). All rights reserved.

사업자등록번호 746-08-03415 · hello@nariinfo.dev

LevelUp PianoMazzucchiVault