[창업이야기] 5. Chavatar(계속)

[창업이야기] 5. Chavatar(계속)

서비스 사용자 수를 바탕으로 Chavatar에서 지원할 서비스들을 대략 정리해보니 개수가 제법 됐다. 그중에 일부는 API를 전혀 지원하지 않았고, 몇몇은 API를 지원하지만, 프로파일과 관련한 API는 지원하지 않았다. 그래서 우리는 먼저 몇 가지의 대표적인 서비스들을 첫 버전에서 지원하고, 앱에 요청버튼 같은 것을 포함해서 아직 프로파일 관련 API를 지원하지 않는 서비스들에 대해 사용자들이 직접 긍정적인 압력(?)을 행사할 수 있게끔 하는 방법을 사용하는 것을 계획했다. 만약 앱이 인기를 얻어 많은 사용자가 다른 서비스들도 이 앱에서 이용하고 싶다고 해당 서비스에 지속해서 많은 요청을 한다면 대상 서비스도 그것에 대해 고려하지 않을 수 없을 것으로 생각했다.

서비스 조사 작업문서

우리는 처음에 SNS의 양대산맥이라 할 수 있는 페이스북과 트위터를 지원하는 것을 시작으로 본격적으로 Chavatar 개발을 시작했다. 그때까지만 해도 팀 내에 iOS 개발에 대해 지식이 조금이나마 있는 사람은 나뿐이어서 내가 개발을 맡고 션이 그래픽 부분을 맡아 일했다. 초기화면, 메뉴 화면 그리고 각각의 단계들에 사용할 임시화면들을 만들어 놓고 카메라를 동작시키는 기능을 구현했다. 그 후 나는 트위터와 페이스북 중 트위터 API를 연동하는 것을 먼저 구현하기로 했다. 물론 한 번도 해본 적이 없던 작업이었다. 그때까지의 나의 개발일은 대부분 한번도 해보지 않은 작업을 처음 해보는 것으로 시작했다. 하지만 해보지 못한 것에 대한 걱정이나 두려움은 별로 없었고, 오히려 새로운 것을 배운다는 설렘이 컸다. 보통 한 번도 해보지 않은 것을 구현하기 위해 내가 사용하는 방법은 구현하고자 하는 것과 같거나 비슷한 소스를 웹에서 찾아서 직접 실행해 본 후 뜯어보고 고쳐보는 실험을 통해서 어떻게 동작하는지 감을 잡고 이해를 한다. 그러고 나서 필요한 부분을 구현하는데, Chavatar개발시에도 같은 방법을 사용했다. 트위터 API 사용하는 공개된 프로그램 소스를 찾아서 이것 저것 테스트해보고 하나하나 배워나갔다. 원하는 기능을 구현하기 위해서는 API  사용방법뿐만 아니라 RESTful, OAuth의 개념과 사용방법도 알아야 했다. 이것들은 모두 처음 접하는 것이었고 처음 접하는 것을 Objective-C언어를 이용하여 구현하기가 쉽지 않았지만, 새로운 것을 배우는 기쁨이 더 커서 그리 어렵지는 않았다.

그렇게 해서 트위터 사용자 인증, 아이폰 내에 트위터 사용자 계정관리, 트위터 사용자 프로파일 가져오기 등의 기능을 구현했다. 하지만 트위터에 사진을 올리는 기능에서 일이 막혔다. RESTful API와 관련해 깊은 지식이 없이 바로 라이브러리를 이용해서 구현하기 때문에 어려움이 있었다. 그렇게 하루, 이틀 오직 이 기능 하나를 구현하기 위해 많은 시간을 사용해야만 했고, 어디가 잘못됐는지 원인이 발견되지 않아 답답한 시간이 계속 흘렀다. 일주일여 동안 이 문제와 씨름하다 마침내 성공적으로 트위터 API를 이용하여 사진을 변경하는 기능을 구현했다. 나는 매우 기뻤고, 다른 팀원들도 함께 기뻐했다.

내가 코드 작업을 하는 동안 션이 여러 그래픽 작업을 진행했다. 앱 아이콘은 렌스의 제안으로 회사 캐릭터인 Fomo를 이용하여 Fomo가 셀카를 찍는 모습을 이용하기로 결정했고, 션이 그것을 그래픽으로 만들어 냈다. 또 메뉴로 사용할 그래픽들과 우리 팀 소개에 들어갈 그래픽들도 션의 손을 거쳐 완성됐다. 션의 솜씨를 제대로 본건 처음이었는데 그림에 잼뱅이인 나는 놀라울 따름이었다. 나는 다음 작업을 하기 전 시간을 내어 그것들을 프로그램과 연동했다. 그렇게 하고 나니 앱이 제법 그럴듯해 보였다.

앱 아이콘
앱 초기화면 : Chavatar는 나중에 이름이 AvaChanger로 바뀌었다.
앱 메뉴화면
(팀소개에 사용된 사진들)

: 구겨진 종이를 배경으로 하고 그 위에 여러 이미지들을 넣었다. 마지막 팀원들이 액자로 되어있는 사진은 스크롤영역 경계에 있어서 다 보려면 스크롤을 끝까지 아래로 내려야만 했다. 이것은 마치 숨은 기능을 찾은 듯한 느낌을 주었다.

트위터 API구현을 끝내고 페이스북 API를 이용하여 프로파일 사진을 변경하는 기능을 구현하려고 할 때, 한 가지 큰 장애물을 만나게 되었다. 그것은 다름 아닌 페이스북 API는 프로파일 사진을 가져오는 API는 지원했지만, 반대로 프로파일 사진을 변경하는 API는 지원하지 않는 것이었다. 조금 더 조사해보니 보안상의 이유로 페이스북에서 정한 제약이었다. 이 문제를 발견하고 나서 팀원들 모두에게 알렸다. 우리는 모두 거실에 둘러앉아 이 문제를 어떻게 다뤄야 할지에 대해 의논했다. 결론은 페이스북이 이 앱에서 차지하고 있는 비중은 절대적이기 때문에 아무리 다른 많은 서비스를 지원한다고 해도 페이스북이 지원되지 않는다면 그 의미가 퇴색될 것이라는 생각으로 결론이 모아졌다. 우리는 이 프로젝트를 포기하기로 했다. 준비단계에서 더욱 치밀한 사전조사가 있었다면 이렇게 많은 것을 낭비하지 않았을 것이다. 그렇게 하지 않아서 우리는 거의  2.5개월이라는 시간을 낭비했다. 이번 일로 하나의 교훈을 얻긴 했지만, 시간이 금쪽같은 스타트업에서 그 대가가 적지 않았다. 비록 프로젝트를 포기하기로 하긴 했지만, 마치  첫아이와도 같은 앱이라 마음을 접기가 쉽지 않았다. 그만큼 열정을 가지고 개발했었다. 하지만 그렇다고 해서 더 많은 자원을 투입할 수는 없었다. 팀워크를 다지기 위해 시작한 프로젝트인 Chavatar가 이렇게 중단되고 나서 우리는 다른 프로젝트를 찾아야만 했다.

Read more

카카오모빌리티 5년, 그 경험과 생각

2018년부터 2024년까지 5년 동안 카카오모빌리티에서 개발자로 일하며 얻은 경험과 느낀 점을 정리해 보았습니다. 개인적인 관점에서 작성된 내용이며, 제 경험이 회사 전체를 대표하지는 않습니다. 일 * 리더의 변화가 회사 분위기를 바꾼다. * 재직 중 CEO가 한 번 교체되었고, 그 후 CTO를 비롯한 여러 리더들이 함께 교체되었습니다. * 리더가 바뀌니 마치 다른 회사에 다니는 것처럼

By 토미
복잡한 마음이 든다면 적어보세요.

복잡한 마음이 든다면 적어보세요.

살다보면 분노, 불안, 우울 등 부정적인 감정이 찾아옵니다. 이런 감정은 시간이 지나면 금새 사라지기도 하지만, 때로는 계속 불쑥 불쑥 올라와서 마음을 혼란에 빠뜨립니다. 이럴 땐 한번 적어보세요. 내 마음은  왜 화가 났는지, 왜 불안한지, 왜 우울한지, 적다보면 부정정인 감정의 근본 원인이 무엇인지 그 감정을 어떻게 정리해야 할지 실마리를 찾을 수

By 토미
인생이란 책

인생이란 책

사람은 누구나 인생이란 책의 저자입니다.  모든 사람은 단 한 권의 책을 쓰고, 모든 책의 주인공은 저자 자신입니다.  1년의 삶을 한 페이지에 적는다고 했을 때, 책은 보통 80페이지 정도 되고, 많아도 120페이지를 넘기진 않습니다.  책에 한 번 써진 내용은 수정하거나 삭제할 수 없습니다. 마음에 들지 않는 페이지가 있더라도 찢어버릴 수 없습니다.

By 토미
박경리 - 산다는 것

박경리 - 산다는 것

체하면 바늘로 손톱 밑 찔러서 피 내고 감기들면 바쁜듯이 뜰 안을 왔다갔다 상처나면 소독하고 밴드하나 붙이고 정말 병원에는 가기 싫었다 약도 죽어라 안 먹었다 인명재천 나를 달래는 데 그보다 더 생광스런 말이 또 있을까 팔십이 가까워지고 어느 날부터 아침마다 나는 혈압약을 꼬박꼬박 먹게 되었다 어쩐지 민망하고 부끄러웠다 허리를 다쳐서 입원했을

By 토미


[책] 토미의 Git with 소스트리

Git을 제대로 알고 싶으신 분들께 추천드립니다.



[온라인 강의] 토미의 Git & Github

Git을 제대로 알고 싶으신 분들께 추천드립니다.