levelsio는 개인 프로젝트로 성공한 해외 개발자다. 이 사람은 커리어 초기에 12개월동안 12개의 프로젝트를 런칭하는 챌린지를 했다. 인상깊었다. 챌린지는 프로젝트를 완료할 수 있게 도와준다. 많은 개발자들이 개인 프로젝트를 시작하고 완료하지 못한다. 나도 그렇다.
작년부터 개발하다 때려친 프로젝트가 있다. 웹사이트의 오픈그래픽 이미지를 동적으로 만들어주는 서비스다. 만들다보니 생각보다 오래걸렸다. 지쳐서 중간에 한번 포기도 했다. 그리고 얼마전까지는 범위를 좁혀서 쇼피파이 앱으로 다시 시도했지만, 현재는 완전히 포기한 상태다. 프로젝트가 끝이 안보여서 손을 놨다.
프로젝트를 끝까지 완료하는데 실패하는 이유는 두가지다. 첫째는 일을 과소평가한다. 개인 프로젝트다보니 계획한 기능들이 작고 단순하다. 맘대로 개발 할 수 있어서 쉬워보인다. 그런데 개발을 진행할 수록 생각보다 진도가 안나간다. 계획대로 일이 진행되지 않으니 열정은 점점 식는다.
다른 이유는 마감기한이 없다는 것이다. 끝이 없으니 별로 중요하지 않은데에 파고들고 시간을 버린다. 정작 중요한 부분은 개발을 못했는데 말이다. 작업시간은 길어지고 런칭할 수는 있을지 의심되기 시작한다. 결국 포기한다. 오픈그래픽 이미지 프로젝트처럼.
챌린지는 강제로 마감일을 만들어준다. 의식적으로 마감일을 만들어두면 작업에 도움이 된다. 세부사항에 시간을 덜 낭비하게 한다. 만약 마감일을 지키지 못한다면? 마감일까지 런칭하지 못하면 프로젝트를 즉시 포기하자. 리스크가 있어야 룰을 지킨다.
대신 조금 조정이 필요하다. 한달마다 런칭하는 대신 분기마다 하나의 프로젝트를 런칭하겠다. 회사를 다니다보니 한달만에 완성하긴 현실적으로 어렵다. 그리고 프로젝트마다 하나둘씩은 몰랐던 개발방식이나 신기술을 쓰려고 한다. 아는대로만 개발하면 재미없다. 그에 대한 학습비용도 있으니 3개월은 잡아야한다.
이번 분기에 만들 프로젝트는 요리레시피 검색 앱이다. 난 요리할 때 주로 유튜브에서 레시피를 찾아본다. 그런데 유튜브 검색창은 기능적으로 부족하다. 범용 텍스트 검색이라서 카테고리나 요리 난이도 같은 세부적인 요리 정보를 포함하기 어렵다. 그리고 유튜브 알고리즘 영향으로 요리와 전혀 상관없는 영상들도 검색되기도 한다. 이게 좀 불편하다.
앱에는 재료, 요리 난이도, 요리 카테고리 (한,중,일식 등등), 다이어트 여부 등등 정보들을 필터링하는 기능을 추가한다. ai를 통해서 요리 정보를 추출하고 잘 정리해서 저장한다. 그리고 상용 검색엔진을 써서 검색 기능을 구현한다. 찾아보니 meilisearch가 괜찮은 것 같다.
지금은 5월 초다. 4월에 시작해서 2분기에 완성하면 좋았겠지만, 애매하게 5월에 시작했으니 7월까지 완성하겠다. 개발 과정은 블로그에 올릴예정이다.