1. 6개월 동안 만든 나의 '쓰레기'
개발을 막 시작했을 때, 저는 "세상을 바꿀 SNS"를 만들겠다고 결심했습니다. React, node.js, AWS, Kubernetes... 좋다는 건 다 갖다 썼습니다. 주말마다 카페에 박혀서 6개월을 코딩했습니다.
그리고 마침내 배포한 날, 사용자는 0명이었습니다. 심지어 제 친구들도 가입하다가 귀찮다고 나갔습니다. 버그는 터지고, 서버비만 매달 5만 원씩 나갔습니다.
동료 개발자는 제 '거대한 아키텍처'에 별로 관심이 없었습니다. "그래서 이게 해결하려는 문제가 뭐죠?" 라는 질문에 저는 말문이 막혔습니다. 저는 문제를 해결한 게 아니라, 그저 기술 쇼(Tech Show)를 했을 뿐이었으니까요.
2. 주말에 대충 만든 '도구'의 반전
프로젝트에서 엑셀 데이터를 JSON으로 변환하는 일이 너무 귀찮았습니다. 토요일 오후에 3시간 정도 뚝딱거려서 "Excel to JSON 변환기" 웹페이지를 만들었습니다. 디자인? 없었습니다. 로그인? 안 넣었습니다. 기능은 딱 하나, 파일 올리면 변환 끝.
GitHub에 코드를 올리고, 개발자 커뮤니티에 "필요하신 분 쓰세요"라고 한 줄 남겼습니다.
다음 날, GitHub Star가 100개가 넘었습니다. 트래픽이 폭주해서 서버가 터질 뻔했습니다. 심지어 다른 곳에서 협업 제안까지 왔습니다. "코드를 보니 문제를 아주 실용적으로 해결하시네요. 저희 팀에 필요합니다."
충격이었습니다. 6개월 공들인 SNS보다, 3시간짜리 변환기가 나를 증명해 주다니.
3. 사이드 프로젝트의 진짜 가치
많은 개발자가 착각합니다. "사이드 프로젝트 = 기술력을 뽐내는 포트폴리오"
아닙니다. 사이드 프로젝트의 진짜 가치는 "처음부터 끝까지(End-to-End) 결정해 보는 경험"입니다.
- 클라이언트 프로젝트에서는: "AWS 써라", "React 써라" 정해져 있음.
- 사이드에서는: "Vercel 쓸까 AWS 쓸까?", "DB는 굳이 필요한가?" 모든 걸 내가 결정해야 함.
이 과정에서 "왜?"라는 질문에 대답할 수 있는 '엔지니어링 근육'이 생깁니다. 그리고 무엇보다 "완성(Done)"의 힘을 배우게 됩니다.
4. 완성이 완벽보다 낫다 (Done is better than Perfect)
제가 SNS를 만들 때 망했던 이유는 완벽주의 때문이었습니다. "코드가 아직 더러워서 공개 못 해", "기능 하나만 더 넣고 배포하자."
하지만 사용자가 없는 소프트웨어는 코드가 아무리 깨끗해도 죽은 코드입니다. 배포되지 않은 코드는 가치가 0입니다.
사이드 프로젝트 성공의 핵심은 "작게 시작해서(Start Small), 빨리 배포하고(Ship Fast), 피드백을 받는 것"입니다.
- 로그인 기능? 빼세요.
- 디자인? Bootstrap 쓰세요.
- 일단 핵심 기능 하나만 작동하게 해서 세상에 내놓으세요.
5. 무엇을 만들어야 할까?
"아이디어가 없어요"라고 하는 분들에게 제가 추천하는 방법은 3가지입니다.
- 내 가려운 곳 긁기 (Scratch your own itch): 내가 쓰려고 만든 게 최고입니다. 내가 첫 번째 사용자니까요. (예: 내 블로그 테마, 내 가계부)
- 클론 코딩 + α: 기존 서비스를 따라 만들되, 딱 하나만 다르게 만드세요. (예: 인스타그램인데 강아지 전용)
- 오픈소스 기여: 남이 만든 사이드 프로젝트를 고쳐주는 것도 훌륭한 프로젝트입니다.
7. 사이드 프로젝트로 돈 벌기 (Monetization)
"그냥 재미로 만들었어요"도 좋지만, "돈이 벌리는 구조"를 고민해보는 것은 엔지니어링 실력을 한 단계 높여줍니다. 트래픽이 돈이 되려면 비용(서버비)보다 수익이 커야 하기 때문입니다. 즉, 최적화를 강제로 하게 됩니다.
수익화 모델 3가지
- 광고 (Ads): 가장 쉽지만 수익이 적습니다. 구글 애드센스를 붙여보세요. "어디에 배치를 해야 사용자가 덜 불편할까?"를 고민하는 것도 UX 공부입니다.
- 구독 (SaaS): 월 1,000원이라도 결제를 받아보세요. PG사 연동, 결제 실패 처리, 환불 규정 등을 구현하면서 "진짜 비지니스 로직"을 배우게 됩니다.
- 기부 (Donation): Buy Me a Coffee 등을 연동하세요. 오픈소스라면 의외로 커피 한 잔 사주는 분들이 많습니다.
돈을 벌어본 경험은 커리어에서 강력한 무기가 됩니다. "사용자 1,000명을 모아서 월 서버비 5만 원을 메꿨습니다"라는 이야기는 "AWS EC2 써봤습니다"보다 훨씬 섹시합니다.
8. 마케팅 - 개발자가 가장 못하는 것
제품을 만들었다고 끝이 아닙니다. 알리지 않으면 존재하지 않는 것입니다. 개발자는 코딩 90%, 마케팅 10%를 쓰지만, 성공하려면 코딩 50%, 마케팅 50%를 써야 합니다.
- Product Hunt에 런칭하세요.
- Reddit과 Hacker News에 "Show HN"으로 올리세요.
- 트위터(X)에 개발 과정을 공유하세요 (#buildinpublic).
마케팅을 배우면, "팔리는 기능"과 "안 팔리는 기능"을 구분하는 눈이 생깁니다. 이는 기획력 향상으로 이어집니다.
9. 실패로부터 배우기 (Failure Stories)
제 첫 SaaS는 망했습니다. 6개월 동안 코딩만 하고 마케팅은 하루도 안 했거든요. 사용자가 0명인데 쿠버네티스로 "완벽한" 아키텍처를 구축했습니다.
피해야 할 실수들:
- 과도한 엔지니어링 (Over-engineering): 사이드 프로젝트에 마이크로서비스 하지 마세요. 모놀리식으로 시작하세요.
- SEO 무시: 구글이 당신을 모르면, 세상도 당신을 모릅니다.
- 너무 빠른 포기: 처음에 반짝하고 흥미가 떨어지는 "Dip" 구간이 옵니다. 그때가 진짜 시작입니다.
10. 마무리 - 그냥 좀 하세요 (Just Ship It)
이 글을 읽고 계신 분들 중 90%는 "나중에 시간 나면 해야지"라고 생각할 겁니다. 하지만 "시간 날 때"는 영원히 오지 않습니다.
지금 당장 컴퓨터를 켜고 npm create vite@latest를 입력하세요.
거창한 계획은 필요 없습니다.
오늘 저녁에 만들어서 내일 친구에게 보여줄 수 있는 것.
그 작은 "완성"의 경험이 쌓여서, 당신을 진짜 개발자로 만들어 줄 겁니다.
제 연봉을 올려준 건 화려한 기술 스택이 아니라, "불편함을 코드로 해결해서 배포해 본 경험"이었습니다.