롤즈온(RawlsOn)

홈페이지의 설명에 따르면 롤즈온은 사람의 육체적, 정신적 능력 향상에 도움을 주는 도구를 만드는 곳이라고 합니다. 자가 연습을 하는 가장 좋은 방법은 짧은 구간을 집중적으로 반복하며 빠른 피드백을 통해 개선해 나가는 것이라고 하며, 이걸 Deep Practice라 부른다고 합니다.

롤즈온은 이 연습을 반복적으로 편리하게 하기 위한 웹과 iOS 앱을 개발하고 있습니다.

과제

iOS 앱을 외주 개발자와 함께 개발하였고, 앱스토어 출시 직전에 오디오 녹음 과정에서 iOS 앱이 자주 종료되는 문제가 있었습니다. 특히 오래된 iOS 기기에서 메모리 부족으로 앱이 종료되는 것을 확인하였습니다.

해결 과정

오디오를 녹음하고 재생하기 위해 사용하는 MTAudioProcessingTap에서 EXC_BAD_ACCESS가 발생하며 앱이 종료되었습니다. 이와 관련하여 스택오버플로우에 유사한 질문과 답변이 있음을 확인할 수 있었습니다.

매니지드 코드와 언매니지드 코드가 같이 작동하는 과정에서, 사용자 음성을 녹음하는 뷰가 종료되며 이전 화면으로 돌아갈 때 제대로 메모리 관리가 되지 않는 문제라 판단했습니다. 스택오버플로우의 답변을 참고하여 뷰가 전환될 때 제대로 메모리를 해제할 수 있도록 조정하였습니다.

테스트로 사용하고 있던 iPhone 6 기기에서 한 두 번의 뷰 전환만으로도 앱이 계속해서 종료되던 수준에서, 여러 번 녹음하고 화면을 전환해도 종료되지 않도록 개선되었습니다.

추가 작업

  • 앱의 종료 문제를 해결하고, 사용자 등록 과정에서 폼 검증 부분을 간소화하였습니다.
  • 앱의 초기 출시에 어떤 마케팅 전략이 도움이 될지 의견을 교환했습니다.

더 알아보기

  • Keychain Service
    • 애플의 macOS, iOS 등의 플랫폼에서 기밀 유지가 필요한 정보를 안전하게 저장하고 불러올 수 있는 서비스입니다.
  • SauceLab
    • 다양한 플랫폼과 브라우저에서의 테스트를 자동으로 수행하고, 결과를 영상으로 확인할 수 있는 온라인 도구입니다.
    • karma-sauce-launcher 등을 이용해 널리 사용되는 테스트 러너를 SuaceLab에서도 실행할 수 있습니다.
  • BrowserStack
    • 다양한 플랫폼과 브라우저에 원격으로 직접 접속해 개발하고 있는 서비스가 어떻게 실행되는지 직접 확인할 수 있는 온라인 도구입니다.
  • Firebase
    • 구글이 제공하는 웹/앱에서 별도의 인프라 구축 없이 사용자 인증, 데이터 저장, 웹 호스팅 등 서비스의 백엔드 구축을 가능하게 합니다.

영상