새해 복 많이 받으세요, 커뮤니티!

발행: (2026년 1월 1일 오후 11:35 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Introduction

이 블로그를 찾아주신 모든 분들께 인사드리며, 새해 복 많이 받으세요!

Project Overview

이 프로젝트의 최종 목표는 순수히 장식용으로 만든 애플리케이션, 즉 오디오 스펙트럼 시각화 도구입니다.
현재는 최종 애플리케이션의 개념 단계에 불과합니다.

First Learning Step

다음과 같은 간단한 애플리케이션을 구현했습니다:

  • 텍스트 필드 3개
  • 값을 증가시키는 버튼 1개

새해를 맞아 작은 이스터 에그를 넣었습니다: 버튼을 26번 누르면 음악이 재생됩니다.

Fields

  • 첫 번째 필드 – 값이 26에 도달하면 텍스트가 바뀌고, 그때 음악이 재생됩니다.
  • 두 번째 필드 – 앱이 실행된 이후 경과 시간을 표시하는 타이머(250 ms마다 업데이트).
  • 세 번째 필드 – 버튼 누른 횟수를 표시하며, 이 역시 이스터 에그 트리거 역할을 합니다.

Development Details

개발은 약 이틀 정도 걸렸으며, 대부분은 도구와 SDK에 익숙해지는 데 사용되었습니다.

Devices

  • Xiaomi Redmi Note 11 NFC (2022) – Android 13 (커스텀 ROM)
  • Xiaomi Mi 5 (2016) – Android 14 (커스텀 ROM)

디바이스 제어는 AnyDesk (AD1)를 사용합니다. 두 디바이스 모두에서 애플리케이션이 실행되지만, 몇 가지 주의점이 있습니다.

Issues

Suspected Memory Leak

프로파일러에서 톱니 모양의 메모리 사용 그래프가 보입니다. 이는 JVM 동작 및 UI 상태 업데이트(아마 StateFlow와 관련)와 연관된 것으로 추정됩니다. 아직 가설 단계입니다.

Crash During Audio Playback

값이 26에 도달했을 때 첫 번째 오디오 재생이 끝난 뒤 앱이 크래시됩니다. 하지만 값이 26을 초과하면 크래시가 발생하지 않습니다. 대부분은 오디오 재생 프로세스를 반복적으로 재생성하는 것이 원인으로 보이며, 이를 수정해야 합니다.

Conclusion

버그(특히 치명적인 버그)도 존재하지만, 안드로이드 개발을 처음 배우는 첫 이틀 동안 만든 결과물이라 꽤 만족스럽다고 생각합니다.

관심이 있으시면 프로젝트 저장소 링크를 공유해 드릴 수 있습니다. 앞으로 유지보수나 업데이트는 할 계획이 없으며, 순수히 학습 목적의 프로젝트임을 알려드립니다.

Repository

GitHub – Hatsumi-Mihari/android-learning-new-year

Back to Blog

관련 글

더 보기 »

Android 권한 완벽 가이드

markdown !dss99911https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuplo...