첫 앱을 출시하고 깨달은 3가지 사실들 (기획부터 개발까지, 시간낭비)

#Story

2025.02.08

앱 개발과 배포, 더 나아가 수익화까지 해보고 싶은 생각이 있는가? 아직 해보지 않았다면, 나의 경험이 분명히 도움이 될 것이라 확신한다.

이번 글은 나의 첫 앱인 Achieve를 만들면서 배운 점들을 담았다. 특히 부족했던 부분들에 초점을 맞추었는데, 이는 두 가지 이유 때문이다. 하나는 기록하는 이유 자체가 부족함을 메꾸기 위해서, 다른 하나는 1인 개발에 첫 발을 내딛는 사람들에게 실질적인 도움이 되었으면 해서이다.

어떤 앱이고, 왜 만들었나?

Achieve는 목표 중심의 투두리스트 앱이다. 기존 투두앱들과 차별화된 점은 모든 할 일이 목표로부터 시작된다는 것이다. 사용자는 먼저 목표를 설정하고, 그 목표를 달성하기 위한 세부 할 일들을 만들어나가는 방식이다.

목표를 먼저 만드는 대략적인 이유는 다음과 같았다.

그렇게 설레는 마음으로 기획부터 시작했다.

기능의 우선순위부터 정해야 한다

먼저 기능부터 생각했다.

"일단 투두 앱이니까 할 일 목록이 필요할 것 같아. 목표를 가시화한 카드나 아이콘도 있으면 좋을 것 같은데? 목표를 만들 땐 어떤 정보를 넣을까? 컬러는? 모양은? 어떤 아이콘을 넣지? 달력을 골라서 날짜를 선택할 수 있게 하면 좋겠는데?"

벌써 정신없다. 이것저것 다 좋게 만들고 싶다보니, 마구 떠오르는 아이디어를 주체할 수 없었다.

처음부터 의욕이 너무 앞섰던 것 같다. 빠르게, 그리고 다양한 기능을 가진 앱을 만들고 싶었다. 애초에 이 둘은 서로 공존할 수가 없는데 말이다.

결국, 이것도 좋아보이고 저것도 좋아보이는데? 라는 함정에 빠졌다. 디자인 작업 중에도 새로운 기능에 대한 아이디어가 계속 떠올랐고, 이로 인해 기획이 수시로 변경되었다. 자연스럽게 디자인도 변경되었다. 이처럼 코어 기능이 아닌, 부가적인 기능들을 검토하고 수정하면서 많은 시간이 지연됐다.

테스트코드를 작성하는 시간이 오히려 디버깅 시간보다 짧다

위에서도 말했듯이 나는 '빠르게' 완성하고 싶었다. 그래서 테스트 코드를 작성하는 시간이 아깝다고 생각했다. '테스트 코드 작성할 시간에 차라리 기능을 하나 더 만들자'는 게 내 생각이었다. 기획과 디자인에서 많이 지연된 것도 이러한 결론에 한 몫했다.

이는 내가 초보였기에 나온 판단이었다. 기능을 구현하는 것 외에는 뭐가 필요한지조차 몰랐기 때문이다. 오로지 '단순 기능 구현' 만 할 줄 알았다. 그리고 사실 테스트 코드에 대해서는 들어봤지만, 실제로 얼마나 중요한지는 느끼지 못했다.

그러다 프로젝트가 진행될수록 상황이 역전되기 시작했다. 새로운 기능을 개발하는 시간보다 버그를 잡는 시간이 훨씬 많아졌다. 특히 가장 답답했던 건, 대부분의 버그가 단순하고 사소한 실수에서 비롯됐다는 점이다. 테스트 코드만 제대로 작성했어도 쉽게 잡을 수 있었던 문제들이었다.

결국 하루 종일 디버깅만 하면서 "테스트 코드를 진작에 꼼꼼히 작성할 걸..." 하는 생각이 들었다. 그제서야 테스트 코드의 중요성을 직접 느꼈다.

물길이라도 먼저 찾은 뒤 배를 만들어라

배를 만들고 바다를 찾으려 하지 말고, 물길을 먼저 찾아보고 그곳에서 배를 만들라

물길은 실제 니즈를 가진 사용자 집단을 의미한다. 즉, 앱을 먼저 만들고 사용자를 찾기보다는, 명확한 니즈부터 발견하라는 말이다.

나는 처음에 "내 문제를 해결하는 앱이라면, 같은 고민을 가진 사람들이 자연스럽게 사용할 것" 이라고 생각했다. 하지만 이건 너무 막연했다. 다운로드 수가 내 친구들 말고는 잘 모르겠다😂. 지금 돌이켜보면 당연한 결과다. 아무리 좋은 해결책을 가지고 있어도, 접촉점 자체가 없다면 아무런 의미가 없다.

1인 개발을 하게 되면 개발 뿐 아니라 기획 디자인 마케팅에도 신경써야 한다는 것을 알고 있었지만, 생각보다 개발 외적인 비중이 굉장히 높다고 느꼈다.

그래서 이후 생각해본 방법은, 내가 만들고 싶은 앱의 분야와 관련된 커뮤니티로 간다. 그리고 그 커뮤니티에서 홍보를 하는 방법이 떠오르긴 했다. 아니면 SNS 컨텐츠로 사람들을 모으고 시작하는 것도 방법이 될 수 있겠다. 일단은 이렇게 시작해보려 한다.

이번 시행착오를 통해

첫 앱 개발 경험을 통해 깨달은 핵심적인 교훈은 세 가지다.

이런 원칙들은 누구나 알고 있는 기본적인 내용일 수 있다. 나 역시 어느정도 알고는 있었다. 하지만 실제 프로젝트에서 이를 실천하는 것은 전혀 달랐다. 의식적으로 신경쓰지 않으면 규칙에서 계속 벗어났다. 이건 마치 운동이 건강에 좋다는 것을 알면서도 실천하기 어려운 것과 같다.

부족했던 점, 신경써야 할 점들을 이 정도로 정리했다. 나의 경험이 앱 개발을 처음 시작하는 여러분께 도움이 됐으면 좋겠다.

추가로, 지금까지 부족했던 점들을 중심으로 이야기했지만, 이 프로젝트를 통해 얻은 긍정적인 성과도 많다.

역시 답은 직접 해보는 수밖에 없다고 다시 한번 느낀다. 계속 반복하고 메꾸면서 공백을 채워나갈 것이다.