- 본 글은 독립서점 플랫폼 어플 '킨디'를 제작하는 기간 동안 남겼던 메모를 엮어 재가공한 글입니다.
- 따라서, 상당히 주관적인 글이며, 당시 제가 느꼈던 걱정, 불안감, 긴장, 즐거움, 자기반성 등의 감정이 소상히 적혀있습니다.
- 더군다나, 현시점에서 다시 더듬어보는 상황도 있기에 부정확한 내용이 포함될 수도 있습니다.
- 그러니, 재미로만 봐주세요.
- 혹시, 킨디가 궁금하시다면 이쪽으로 오세요.
#1
- 코로나에 걸렸다. 당시 주말부터 목이 붓더니 그 주 내내 아팠다. 감기 몸살 기운이 있었고, 자가 키트를 계속 실시했는데도 음성이 나오길래 단순 감기 몸살인줄 알았다. 목요일 밤에 혹시나 하는 마음에 다시 자가 진단 키트를 해보니 양성이 나왔고, 다음날 병원에 가서 최종 확진 판정을 받았다. 오랜만에 몸져 누워본 경험을 했다. 나는 코로나 안걸리나 했는데 드디어 걸려버렸다. 아파보니 역시 건강이 최고였다.
- 아픈 계기로 푹 쉬었다. (타의로 침대에 쓰러져있었다는 표현이 더 적절할 지도) 그러면서 일의 템포를 잃는 것에 대한 걱정을 하지 않을 수가 없었다. 실제로 나는 중간에 흐름을 잃는 것을 굉장히 경계하는 스타일이기도 하다. 휴식이건 무엇이건 중간에 흐름을 놓치면 깔끔히 제 궤도로 돌아오기가 힘드기 때문이다. 한 번 놀면 계속 놀고 싶어지는 초등학생에 버금가는 심리다. 어쨌든 꾸준히 하기 위해선 중간에 쉬는 법도 터득해야 하는데, 이번을 계기로 어떻게 하면 잘 쉬는지 고민해봐야겠다 .그런데 아직까지 드는 생각은, ‘잘 쉬는 법’을 고민하는 것이 오히려 ‘잘 쉬는’ 행위를 방해하는 것 같기도. 그렇다고 아무 생각 없이 쉬자니 예전처럼 흐름을 찾기 힘들까봐 걱정이 되기도 한다. 어쩌란 말이냐.
- 누워있는 시간이 많기 때문에 이런 저런 고민도 늘었다. 나는 나 자신을 최대한 빨리 증명하고 싶어 안달난 사람 같다. 하루 빨리 내 값어치를 증명하고, 가시적인 성과를 이루고 직접 보고 싶은 열망이 강한 사람같다. 열망이 강해서 조바심도 많은 것 같다. 나를 증명하기 위해선 무엇이 필요할까? 이런 저런 생각때문에 자기객관화가 더 흐려지는 것 같다. 지금 나에게 필요한 행동, 지녀야할 태도는 무엇인지 누군가의 조언을 듣고 싶다. 이렇게 하면 내가 바라는 대로 증명할 수 있을까?
- 킨디는 베타 버전 배포를 위해 이번주도 열심히 나아가고 있다. (아픈 나를 빼고) 요즘 들어 기획에서 우리가 너무 많은 것을 챙겨가려는 경향이 지나친 것 같다. 지금 중요한 것은, 제한된 시간 내에 우리가 할 수 있는 것을 선택해서 나아가는 것이다. 우리 팀은 각자 ‘나 선택지 이만큼 신경쓰고 있다’고 자랑 게임을 하는 것 같은 느낌이 들었다. 그래서 우리는 무엇 선택할 것인가? 하나를 선택했을 때 드는 기회비용을 고려하는 과정이 부족하다고 느껴지는 요즘이다. 문제에 몰입한 만큼 아쉬움도 큰 건 당연한 일. 어쨌든, 기능에도 MVP가 필요하지만, 지금은 기획의 MVP가 절실한 상황이다.
#2
우리 앱의 리스크는 양질의 정보가 없는 점, 정보가 정확하지 않을 수도 있다는 점이다. 독립서점의 특성상 서점의 생명주기(?)가 짧은 서점이 많기 때문에 갑자기 생기거나 폐업하는 경우가 많았다. 또한 서점의 사진을 무단으로 사용할 수 없기에 서점 점주 분들께 일일이 컨택하여 허락을 받은 서점만 데이터에 올렸다. 만약 유저가 찾는 서점이 없거나 잘못된 정보가 제공된다면 정보 제공 플랫폼으로써 신뢰도가 저하될 수 있는 문제가 있었고, 이를 해결할 방법으로 유저가 직접 독립서점을 제보하는 기능을 생각했다. '제보하기' 버튼을 누르면, 유저가 직접 메일로 서점을 제보할 수 있는 기능이었다.
그중 MessageUI 프레임워크를 사용하면서 개삽질을 하였다. 이런 상징적인 삽질을 기록하기 위해 몇 자 남겨본다.
구현에 앞서 학습한 예시 코드들은 UIViewController에서 메일 기능을 담당하는 프로토콜을 채택했다. 하지만 나는 검색 결과가 없는 상황에서 빈 테이블 내부에 제보하기 버튼을 포함하는 커스텀 뷰를 띄우는 구조였다. 즉, UIView를 할당하는 UITableView에서 메일 프로토콜을 채택해서 기능을 구현해야 하는 상황이었다.
예시 코드대로 구현하려면 테이블 뷰에서 상위 뷰 컨트롤러에 접근하는 방법을 찾아야 했고, 기존 방식대로 구글링으로 블로그 글을 토대로 찾았지만, 해결 방법을 쉽게 찾을 수 없었다. 나는 하는 수 없이 ... 어렵다고 느껴 뒷전으로 미뤄뒀던 공식 문서를 뒤져봤다. 처음엔 어디서부터 찾아야 할지 몰라 막막함을 느꼈다. 평소에 공식문서 보는 습관을 기룰 걸 하고 후회를 해봤지만 소용없었다. 지금부터라도 습관 길러야지 어쩌겠나... 어쨌든 기능을 구현하기 위해 공식문서를 몇 시간 동안 끈질기게 탐색했다. 그 결과 우연히 상위 계층의 UIResponder에 접근할 수 있는 next라는 메서드를 발견했고, 이거면 뭔가 될 것 같다는 생각이 들었다. 바로 뷰 컨트롤러 타입에 접근할 때까지 재귀적으로 수행하는 메서드를 만들었고, 이를 활용하여 현재 뷰를 관리하는 뷰 컨트롤러를 반환하는 코드를 만들어봤더니 ... 됐다. 내 코드 구조에서 적용할 수 있었다.
다음 날, 나와 함께 고민해주었던 팀원들에게 이 방법을 공유하였고, 메일 기능이 필요한 다른 팀원들을 위해 extension으로 할당해주었다. 이 경험을 계기로 공식 문서를 보는 것이 훨씬 정확하고 효율적인 방법임을 깨달았고, 공식 문서는 보기 어렵다는 고정관념을 탈피할 수 있었다.
#3
두 달간 달린 탓에 팀원들의 컨디션, 체력에 무리가 오기 시작했다. 저마가 스트레스가 가득 찬 상태였고, 나 또한 그랬다. 사실 당시 나는 해야할 일만 신경써서 팀원들의 저하된 체력, 고조된 스트레스를 인지하지 못하였다. 팀원들이 진지하게 말하고 건의해준 덕에 경주로 워케이션을 떠났고, 우리 팀에도 숨통을 트일 수 있었다. 워케이션의 목표는 베타 버전 출시였다. 베타 버전에는 독립서점 정보 탐색 기능만 있었다. (다음 버전은 큐레이션 커뮤니티 기능 구현이 목표였다.) 맛있는 음식도 먹고, 밤에 술도 한 잔 하면서, 쉬기도 쉬고, 각자 맺혔던 말이나 하고 싶었던 말들, 알게 모르게 쌓였던 갈등을 풀 수 있었던 시간이었다. 내가 너무 몰아붙인 탓에 팀원들의 피로도가 더 쌓였던 것 같아서 생각할수록 미안해진다.
'Retrospective' 카테고리의 다른 글
독립서점 플랫폼 어플 '킨디' 제작 일지 (2) - 팀 샌들즈 어셈블 (0) | 2022.12.20 |
---|---|
독립서점 플랫폼 어플 '킨디' 제작 일지 (1) - '서점, 독자, 작가를 이어주는 독립서점 플랫폼' (0) | 2022.12.20 |
독립서점 플랫폼 어플 '킨디' 제작 일지 (4) - 개발 시작 (Feat. 애자일, 스크럼, 칸반, PR 문화, 플래닝 포커) (0) | 2022.10.29 |
독립서점 플랫폼 어플 '킨디' 제작 일지 (3) - 기획 과정 (Feat. 유저 리서치, 페인 포인트) (0) | 2022.10.09 |
그간 일들을 정리하며 (0) | 2022.05.05 |