cleanUrl: /retrospect/2019-first-half

2019년이 절반이 넘게 지났네요. 정신 없었던 반년이었습니다. 작년 회고의 마지막을 보니, “올해 목표를 명확히 하자”는 얘기가 있던데, 음.. 명시적으로 목표를 제대로 정리해 놓지는 않았네요. 그래도 “테스트 커버리지 증가” 와 “접근성 향상”을 중요 목표로 잡았었고, 이 목표에는 나름 부합하는 전반기 였던 것 같습니다.

아케이드 비디오 타입 추가

“프레임워크 분리”라는 작업의 진가를 느낄 수 있었던 작업이었습니다. 아케이드라는 기능을 별도의 프레임워크로 빼 놓았기에, 상당히 큰 규모의 작업이었음에도 병렬로 진행되던 다른 작업들과 컨플릭 거의 없이 순조롭게 기능을 만들 수 있었습니다.

특히 동영상 재생 모듈을 만들 때도, 딱 동영상 재생 모듈만 개발 할 수 있는 환경을 만들 수 있었기에, 생각보다 많은 시행착오를 겪었음에도 불구하고 빠른 시일 안에 개발을 끝낼 수 있었습니다.

다만 현재는 Youtube의 iframe을 활용하는 방식의 동영상 재생 방식을 쓰고 있는데, 여러가지 한계를 느끼고 있습니다. 무엇보다도 Youtube의 경우에는 일시정지를 했을 때, 내가 딱 일시정지를 한 시점의 프레임에 일시정지가 되지 않고, “가장 가까운 일시정지 가능한 프레임”으로 이동해 일시정지가 되는 시스템이어서 그만큼 정교함이 떨어집니다.

추후 비디오 파일을 자체적으로 우리 서버 및 앱에서 다루게 되거나, 혹은 Vimeo등의 다른 비디오 서비스 API를 활용하게 되더라도 그런 변화에 유연하게 대처 할 수 있도록 API를 만든다고 만들었는데, 음… 정말 그런지는, 나중에 그런 순간이 왔을 때 알게 되겠죠?

OSS 라이센스 표시 추가

입사하고 가장 잘 한 일이라고 스스로 생각하는 일입니다. 오픈소스 소프트웨어를 쓴다면, 마땅히 라이센스에 따라서 Credit을 표시 해 줘야만 합니다. 이런 걸 존중해야 한다는 건, 학부생 시절이나 혹은 학원 수강생 시절에 충분히 교육을 받아야 하는 부분이라고 생각하는데, 안타깝게도 OSS를 쓰는 방법을 가르치는 곳들은 많아도 그것을 존중하는 법은 그 만큼 중요하게 여겨지지 않는 것 같습니다.

저도 우리 앱이 이런 라이센스를 제대로 표시하지 않고 있다는 걸 깨닫고 처음에는 꽤 충격을 받았습니다. 하지만 곧바로 동료들을 설득했고, 동료들은 다행히 제 의견에 빠르게 동의 해 주었습니다.

처음에는 앱 내부의 설정 페이지 등에 라이센스란을 따로 만드는 방식으로 만들었다가, 아예 iOS설정 앱의 Settings.bundle안에 Acknowledgement를 넣는 방식으로 바꿨습니다. 왜냐면 설정페이지 같은 경우는, 로그인 유무에 따라 접근 하지 못 할 수도 있지만, Settings.bundle안에 넣는 방식은 언제 어디서든 접근 가능 하기 때문이지요.

이 작업은 민소네 님의 블로그 글을 참고해서 진행했습니다. 좋은 튜토리얼 올려주신 민소네님께 감사드립니다.

앱 런칭타임 측정 시작

WWDC의 여러 세션 및 문서를 보면, 애플은 앱런칭타임을 굉장히 중요하게 생각한다는 것을 알 수 있습니다. 실제로도 애플이 만든 아이폰앱들을 실행해보면, LaunchScreen을 볼 일이 거의 없이 순식간에 켜지는 것을 볼 수 있습니다.

빠른 런칭타임은, 고객에게 편리함을 줄 뿐만 아니라 “신뢰감”을 줍니다.

라는 인상은, 그대로 DAU로 이어지게 됩니다.

하지만 많은 개발자들이 앱런칭타임에 대해 우리가 할 수 있는 일이 별로 없을 것이다 라던가 그 짧은 몇 초는 체감하기 어려울 것이다 같은 이유로 앱런칭타임에 신경을 많이 안 쓰시는 것 같습니다.