프로젝트를 진행하다보면 초반에 있던 반짝임과 설레임은 마모되기 마련이다, 더군다나 토이 프로젝트의 경우 강제성이 없다보니 현실적인 문제에 놓이거나, 앱의 필요성에 대해 한계를 느끼면 프로젝트의 생명이 쉽게 꺼져버리곤 한다. 이 글에선 2020년 iOS 개발에 입문한 뒤로 다양한 이유로 중단된 프로젝트를 모아보기로 했다. 한 때 큰 노력을 쏟아 기대주로서 추앙받던 제품들이 코드뭉치로 한 구석에 방치되는 것이 안타깝기도 하고, 이들을 모아 함께 보다보면 차후 프로젝트를 진행할 시 교훈을 얻지 않을지도 모른다.

무제 (집중도 관리 앱)
iOS 개발을 시작하고 처음으로 완성한 앱이다. 당시 Design+Code의 강의를 보고 바로 SwiftUI로 만들게 된 앱이다. Meng To의 디자인 스타일을 그대로 차용한 걸 확인할 수 있다. 자료를 다시 찾는 와중에 확인해보니 앱의 제목도 정하지 않았음을 확인할 수 있었다! 깃헙에도 올라가 있지 않다! 여러모로 경악스러운데 당시 내 마음에 확실히 들지 않으면 깃헙에도 무언가 올리는 걸 싫어하는 요상한 신념이 있는 초보 개발자였기에 이런 참사가 일어나게 되었다. 다만 차후에 언급하게 될 다른 프로젝트와 달리 앱 자체는 완성되었다. Core Data를 통해, 앱 유저 데이터를 저장하고, 몰입할 주제와 시간을 정하고, 실제로 그 시간동안 얼마나 쉬었고, 진짜로 집중한 시간은 얼마인지 확인할 수 있게 해주는 앱이었다만.. 당시에도 시각적인 완성도를 무엇보다 중요시했기 때문에 일말의 상태관리도 이루어지지 않아 모델 자체가 없이 모든 로직이 뷰 안에 위치하게 되었고, 완성될 시기 쯤엔 다시는 그 시절 실력으로는 건들 수 없게 된 스파게티 덩어리가 되어 개선을 포기하게 되었다. 뼈를 내주고 살을 취한 셈인데 그래도 그 덕에 나름 괜찮은 인터렉션을 볼 수 있다. 특히 통계 화면에서 카드를 넘기는 제스처와 완성도는 지금 봐도 꽤나 자연스럽다. 아이폰 SE를 사용하던 시기라 해상도 별 대응도 완벽하다.
Statist
스터디 플래너를 아이폰으로 가져온 앱. 당시 AR의 미래는 Vision의 발전이라고 생각해서 해당 CoreML이나 애플의 Vision 프레임워크를 알아보고 있던 시기였는데, 초안은 실제 사람들이 쓰는 스터디 플래너를 카메라로 인식해서 데이터를 가져오고 이를 통계 같이 데이터를 활용할 수 있는 영역으로 가고져오는 것이 주 목표였으나 당시 실력에 비해 너무 큰 목표였고, 생산성 앱으로 만족하게 되었다. 당시 방학동안 낮에는 운전면허를 따러 학원에 가고 밤에는 앱을 만들던 추억이 떠오른다. 프로젝트를 접게 된 이유가 나에겐 여러번 반복된 레퍼토리면서도 타인이 듣기엔 다소 황당할 수 있는 이유인데, 특정 파트에서 도저히 좋은 디자인이 떠오르지 않아 그냥 접어버렸다. 앱의 주요기능인 투두, 타임테이블, 프로그레스 추적 기능은 2주만에 완성해버렸으면서 그 기간에 두세배는 더 되는 기간을 통계화면을 디자인하는데 쓰다 버려진 앱이라 지금 생각해보면 아깝다는 느낌이 든다.

Sticker
당시 발표된 iOS 14의 신기능인 위젯을 추가해주는 앱. iOS 업데이트 이후에 예쁜 위젯을 다채롭게 제공해주는 앱이 인기를 끄는 걸 보면서 다소 저평가하던 위젯에 대해 다시 생각해보는 계기가 되었었다. 이 앱만의 개성이 있었다면, 스티커라는 제목 이름에 맞게 투명 배경을 가진 위젯을 추가할 수 있었다는 점. 물론 비공식 API를 써서 사용하진 않았고, 단순히 기기 사이즈와 위젯 위치, 그리고 배경화면 정보를 구해 보여줄 스티커를 제외한 나머지 부분을 뒷면 배경 이미지과 똑같이 맞춰 착시를 주는 방식이었다. 문제는 홈화면을 좌우로 스크롤하면 어쩔 수 없이 허접해보이는 면이 있었다는 점.. 스스로도 그 부분에서 가치를 잘 믿지 못했고, 출시로 이어지진 못했다. 나중에 비슷한 기능을 다른 앱에서 제공하고 꽤 인기가 있었던 것으로 보아, 역시나 뭐든지 부족하더라도 일단 내고 보는게 맞는 선택이었다는 생각이 든다.
Sequence
갑자기 널뛰기 해서 2023년으로 넘어가보자. 사실 그 사이에는 개발력도 어느정도 성장하고, 여러 실패를 통한 경험을 바탕으로 프로젝트를 성공적으로 완성해서 출시하는 경우가 많아졌고, 이어진 애플 개발자 아카데미 활동으로 왠만해서 프로젝트를 접을 일이 없어졌다. 다만 이 시기부터 다시 프로젝트의 실패율이 높아지는데 완성도에 대한 기대의 역치가 높아지면서 쉽사리 그만두게 되는 케이스가 많았던 탓이다. 시퀀스의 경우, WWDC 영상을 보고 이를 노션으로 정리하는 과정에서 많은 시간 소모로 최적화를 하면 좋겠다는 생각이 예전에도 많았고 직장생활로 더더욱 아껴야 하는 시간을 위해 개발하게 된 앱이다. WWDC 세션번호와 년도를 기입하면 해당 영상을 플레이할 수 있게 되고, 스크린샷을 버튼 하나로 간편히 찍고, 스크린샷 사이 간격에는 그동안 흘러간 자막 내용을 추가해 하나의 마크다운 파일로 만들 수 있도록 한 앱이다. 기능 자체는 완성했으나, 초기에 목표로 하던 gif 기능을 구현하는데 난항이 있었고, 실제로 앱을 사용해서 WWDC 영상을 정리하는 등 활용은 꽤 했다만, 아무래도 시간단축이라는 키워드로 대표되는 앱이다보니 빠른 MVP 개발에 초점을 두었고, 차후 개발 및 출시를 위해선 어느정도 리팩토링이 필요로 한데 그것이 미뤄지게 되면서 방치되었다. 작년에도 간간히 완성시켜볼까 생각도 들었으나 현재에 와선 ChatGPT를 비롯한 LLM의 발전으로 더 이상 학습 속도를 높여준다는 이점이 유명무실해지며 결국 레거시로 남게 되었다.
레이서
나는 개발자로서 새로운 것들을 배우는 걸 좋아하고, 그것이 내 주된 강점이라고 생각한다. 허나 커리어면에 있어선 얕고 넓은 지식보단 나만의 강력한 니들이 필요로 하고, 그 뾰족한 부분을 찾다가 선택한 것이 iOS다. 유려한 인터페이스와 개발환경도 주된 이유지만, 다른 큰 이유로는 AR 관련 플랫폼도 있었다. 2020년 기준에서도 애플은 ARKit을 WWDC에서 미뤄주고 있었고, AR글래스를 준비중이라는 소문이 매년마다 들려왔기 때문에 아이폰이 가져온 새로운 파도를 경험해본 나로선 만약 혁신이 또 다시 왔을 때 이에 대비해두지 않으면 아쉬울 것 같다는 생각이 컸고, 동질의 성격이 큰 iOS를 베이스로 두고있으면 해당 차후 AR 관련 플랫폼과 기기가 나왔을때 적절히 대응할 수 있지 않을까 싶은 마음이 있었기 때문이다. 현시점으로 돌아와서 여러 우여곡절 끝에 비전프로의 현재는 실패라고 보는 것이 맞겠다. 특히나 나는 AR 쪽에서 제시하는 가치중에 Scene Understanding. 현실 인지 능력에 큰 기대를 걸고 있던 터라, 카메라 엑세스 자체가 불가능한 비전프로를 경험하고 굉장히 절망적인 기분이 들었다. 다만 어떻게든 앱을 내보자는 마음으로 여러 아이디어를 내보곤 했는데, 그 중에서 메타 퀘스트를 어느정도 의식하고 기획한 것이 이 앱이다. 글래스라고 보기 힘든 현재 비전프로의 상황상 엔터테이먼트를 가진 앱을 만들어보는 것이 낫겠다는 생각이 들었고 레이싱 게임을 만들고자 했는데.. 일단 컴퓨터 그래픽스를 어느정도 알고 있고, 이전에도 ARKit도 학습해놓은 터라 꽤 진도가 나가는 듯 싶었으나 고려하지 못한 건 비전프로의 카메라는 유저 헤드에서 고정된다는 점이었다. 즉 이동을 구현하려면 나는 고정되어있으니 맵이 역방향으로 이동해야했고, 다소 z축까지 고려한 앱의 기획에서 계산의 복잡성을 늘리는 이러한 점은 꽤나 치명적이었다. 더 이상 진행에는 리소스가 많이 투자된다고 판단하고 결국 포기한 프로젝트.
Spatial Timer
프로젝트의 큰 부피로 쓴 맛을 본 나는 간결히 내가 AR 플랫폼에 대응하기 위해 생각해둔, 기대한 형태를 표현할 수 있는 단순한 앱을 만들고자 했다. AR기기의 장점은 양손의 자유로움과 이를 활용한 다른 인풋 메커니즘이라고 생각했고 이를 활용해 손목을 비틀 시 step을 변동하고 상하로 드래그 시 목표로 하는 시간을 바꿀 수 있는 간단한 프로토타입을 위시한 앱을 만들기로 했다...만 당시 불분명한 장 통증으로 병원을 오가던 시기라 어느순간 자연스레 손을 놓게 되었고 비전프로는 그 사이에 외부 여론에서 완전히 실패작으로 낙인 찍힌 뒤였다. 애플이 아직 이 플랫폼에 대해 포기하지 않았고, 메타의 오리온 등 글래스 형태의 경량화와 발전한 AI 능력이 결합한다면 언젠가 다시 이런 류의 공간 컴퓨팅 앱을 개발해볼 기회가 올 것이라 믿어 의심치 않는다.
Phoenix
목록중 유일한 패키지 오픈소스 프로젝트. 예전부터 블렌더를 다뤄보며 3D 오브젝트를 디자인 요소로서 활용하는 것에 관심이 많았고 최근 애플 인터페이스에서 쉐이더를 사용하는 경향이 많이 보여 공부하는 과정에서, 예전에 구매해둔 Three.js 강의에서 쉐이더 파트가 있었던 것이 생각이 났다. glsl 파트가 잘 나와있기도 했고, 쉐이더 특성상 빠른 변동사항을 확인하기 편한 동적 타입 언어를 사용하는게 이해에 더 빠를 것 같아 Three.JS를 학습하게 되었고 이 도중에 R3F를 접하게 되었다. 학습하면서 든 생각이 앱 내에서 3D 오브젝트 활용도 늘고 있는데, 거의 deprecated된 Scenekit이나 ar을 위한 realitykit 대신 적절히 R3F처럼 선언형으로 3D 모델을 SwiftUI 상에서 쓸 수 있는 라이브러리를 개발해보는 건 어떨까 하는 생각이 들어 개발을 시작했었다. 학습한 쉐이더 지식을 iOS 개발경험에 이식하려면 메탈에 대해 학습이 필요하기도 했으니 겸사겸사 패키지 개발을 시도했으나 주제의 무거움도 있었고 수요에 대한 한계가 있다고 판단. 현재 보류중에 있다. 차후에 취업 후 경제적 및 커리어적으로 안정화되면 다시 개발해 보는 것도 나쁘지 않을 듯 하다.
칼을 뽑았으면 무라도 썰었아야했다. 자료를 정리하며 크게 느낀 점이다. 오랜만에 예전 작업들을 당시의 감정에서 벗어난 채 바라보며 여러모로 새로운 느낌이 들었고, 이대로 버리기엔 아쉽다는 생각이 들었다. 차후에는 이런 글을 쓰는 대신에 기꺼이 타인에게 내보여지는 제품을 만들어나가는 사람이 될 수 있길.