이젠 쓸모가 없어져버린 나의 앱
나는 머신러닝을 좋아한다. 내가 적용할 수 있는 부분에 웬만하면 적용을 시도하고 높은 확률로 좋은 결과를 얻었다. 내가 이미지를 마스킹할 때 아이패드로 작업 중이라면 어피니티 포토로 마스킹을 했고 데스크탑이 있다면 포토샵으로 했다. 마스킹을 할 때마다 손떨림에 주의하며 집중해서 했다. 물론 머리카락처럼 세부적인 부분들은 포기했다. 바야흐로 2년 전 여느 때와 같이 웹서핑을 하던 도중 마스킹을 해주는 머신러닝 모델을 발견했고, 바로 적용을 해봤다. 아주 잘됐다. 빨랐고, 머리카락도 반투명하게 만들어주고, 머신러닝의 모델도 가벼웠다. 널리 알리고 싶었다. 핸드폰으로 마스킹할 일이 뭐가 있겠냐 생각하면서도 만들기 위한 일을 벌이기 시작했다. 계획을 세웠다. 리액트 네이티브로 앱을 만들면서 머신러닝 모델을 tfjs로 적용을 해보기로 했다. 지금 작성하면서 생각하는 것이지만 처음으로 서버를 사용하지 않고 핸드폰 자체에서 머신러닝을 적용해본 프로젝트였기에 두서없이 계획을 세운 것 같다. 애니웨이, 핸드폰 자체에서 돌아가는 머신러닝이라니 아주 흥미로웠다. torch를 기반으로 학습된 모델을 tfjs에서 로드할 수 있는 모델로 변환을 했고 앱을 빌드하여 핸드폰으로 돌려봤다. 당시 나의 핸드폰은 아이폰 se, 내 폰에서 돌아가면 웬만하면 돌아간다는 자신감을 갖고 있었다. 테스트 버튼을 눌렀다. 십 수 초 흘렀을까, 마스킹된 강아지가 날 바라보고 있었다. 성공이다. 그다음 앱 이름을 짓기 시작했다. 마스킹을 짠! 하고 해 주니까 뭔가 마법 같은 느낌이 들었으면 좋겠다는 생각으로 마치 해리포터 주문을 외듯이 REMOVE에 IO를 붙여 REMOVIO로 이름을 지었다. 그리고 배포를 했다. 2년 전에 한 일을 왜 이제야 작성하고 있냐고 질문할 수 있는데, 아이폰 사진 앱에서 물체를 꾹 누르고 있으면 알아서 마스킹을 해주는 기능을 발견했기 때문이다. 와우. 마법 같았다. 기본 앱으로 지원이 된 기능을 보며 그땐 그랬지 하며 회상을 하는 나 자신이 매우 나이 든 것 같은 느낌이 든다. 지금 다시 그 앱을 만든다면 CoreML과 ML Kit을 사용해서 했겠지만 당시엔 뭐든 만들고자 했기에 맨땅에 헤딩을 했다. 그때의 경험들이 지금의 나를 형성하고 있다고 믿으며 헛된 고생이 아니었다고 스스로를 위로해본다.