안녕하세요, DevBJ입니다! 🚀
개발자라면 누구나 한 번쯤은 이런 경험 해보셨을 거예요. “밤샘 코딩 끝에 겨우 완성했는데, 알고 보니 이미 있는 솔루션이었다니?!” 🤦♂️ 혹은 “이거 왜 내가 만들었지? 누가 만들었어도 됐을 텐데…” 이런 식의 후회 말이죠.
참고 글: Three constraints before I build anything
저도 정말 숱하게 겪었던 일이라, 지금은 어떤 프로젝트를 시작하기 전에 꼭 던지는 3가지 질문이 생겼습니다. 단순히 코드를 잘 짜는 것보다, 이 3가지 질문이 프로젝트의 성패와 저의 퇴근 시간을 좌우한다는 느낌이 팍팍 들어요. 오늘은 이 마법 같은 질문들을 아는 만큼 정리해 볼까 합니다. 💡
1. “진짜 이걸… 만들어야 해?” (Do I need to build this?)
이게 첫 번째이자 가장 중요한 질문입니다. 새로운 기능이나 시스템이 필요할 때, 우리는 본능적으로 “만들어야겠다!”라고 생각하는 경향이 있죠. 하지만 잠깐! 정말로 그걸 만들어야만 할까요?
- 기존 솔루션 확인: 세상에는 이미 수많은 오픈소스 프로젝트, SaaS(Software as a Service) 제품, 그리고 검증된 라이브러리들이 있습니다. 굳이 바퀴를 재발명할 필요가 없는 경우가 태반이죠.
- 예를 들어, 간단한 데이터베이스 기능이 필요할 때, 직접 ORM을 만들 필요 없이
SQLAlchemy나Django ORM같은 걸 쓰면 되죠. 굳이 API 게이트웨이를 직접 만들 필요 없이Nginx나Kong같은 걸 활용하는 것도 방법이고요.
- 예를 들어, 간단한 데이터베이스 기능이 필요할 때, 직접 ORM을 만들 필요 없이
- 비용-효율성 분석: 직접 개발하는 것은 시간, 인력, 유지보수 등 엄청난 비용이 듭니다. 기존 솔루션을 사용하는 것이 훨씬 저렴하고 효율적일 때가 많아요. 커스터마이징의 자유도는 조금 떨어질 수 있지만, 개발 기간 단축과 안정성은 비교 불가입니다.
DevBJ의 삽질 경험:
며칠 밤을 새워가며 복잡한 이미지 처리 파이프라인을 만들었던 기억이 나네요. “이거 우리가 직접 해야 완벽해!”라는 생각이었죠. 그런데 나중에 알고 보니, 이미 시장에 나와있는 클라우드 기반 서비스(AWS Rekognition, Google Vision AI)를 활용했다면 훨씬 적은 비용으로, 더 안정적이고 빠르게 구축할 수 있었을 거예요. 와… 정말 그때의 허탈함이란! 😅
2. “이걸… 내가 꼭 만들어야 해?” (Do I need to build this myself?)
첫 번째 질문을 통과했다면, 이제 두 번째 질문입니다. “좋아, 만들어야 하는 건 알겠어. 근데 그걸 꼭 내가 만들어야 할까?”
- 다른 개발자/팀에 위임: 우리 팀원 중 더 전문적인 사람이 있거나, 혹은 외주를 주는 것이 더 효율적인 경우도 많습니다. 모든 것을 다 잘할 수는 없으니까요.
- No-code/Low-code 툴 활용: 간단한 업무 자동화나 웹사이트 구축은
Zapier,Make (Integromat),Bubble,Webflow같은 No-code/Low-code 툴로 충분히 가능합니다. 코딩 지식이 없어도 빠르게 프로토타입을 만들거나 실제 서비스를 운영할 수 있죠. 저도 단순 데이터 연동은 무조건 Make를 먼저 검토합니다! - 오픈소스 기여/활용: 특정 기능이 필요할 때, 이미 존재하는 오픈소스 프로젝트에 기여하거나, 포크해서 수정하는 방법도 좋습니다. 완전 제로부터 시작하는 것보다 훨씬 빠르고 안정적이죠.
DevBJ의 삽질 경험:
회사 내 작은 내부 관리 툴이 필요해서 직접 웹 프레임워크부터 DB, 프론트엔드까지 다 건드리며 만들었었어요. 그런데 나중에 인턴이 Airtable과 Glide 같은 툴로 훨씬 쉽고 빠르게 비슷한 기능을 만들어 내는 걸 보고 충격받았습니다. “아, 내가 코딩으로 삽질할 시간에 다른 중요한 일에 집중할 수도 있었는데!” 하는 생각이 들었죠.
3. “이걸… 지금 당장 만들어야 해?” (Do I need to build this now?)
마지막 질문입니다. “만들어야 하고, 내가 만들어야 하는 것도 알겠어. 근데 정말 지금 당장 시작해야 할까?” 프로젝트의 우선순위를 결정하는 중요한 질문이죠.
- MVP(Minimum Viable Product) 접근: 모든 기능을 한 번에 완벽하게 만들려고 하기보다, 가장 핵심적인 기능만 먼저 구현하여 시장에 내놓고 피드백을 받는 것이 중요합니다. “일단 굴러가게 만들고, 그 다음에 개선하자!”
- 우선순위 재조정: 현재 진행 중인 다른 프로젝트나 더 시급한 업무가 있을 수 있습니다. 지금 당장 만들지 않아도 되는 기능이라면 과감히 다음 스프린트나 다음 단계로 미루는 용기가 필요해요.
- 기술 부채(Technical Debt) 고려: 급하게 만들어서 나중에 큰 기술 부채로 돌아올 수도 있습니다. “지금 당장”의 유혹에 빠져 품질을 포기하는 것은 장기적으로 더 큰 비용을 초래하죠. 이 질문은 품질과 속도 사이의 현명한 균형을 찾게 해줍니다.
DevBJ의 삽질 경험:
초기에 자동화 시스템을 구축할 때, “사용자들이 이런 기능도 필요할 거야!”라며 온갖 확장 기능까지 예상해서 만들다가 정작 핵심 기능 출시가 한참 늦어진 적이 있어요. 결국 나중에 보니 예상했던 기능의 80%는 아무도 쓰지 않았고, 핵심 기능만으로도 충분했었죠. 지금은 “일단 핵심부터, 나머지는 나중에!”를 외치며 개발하고 있습니다.
결론: 현명한 개발자의 길
이 세 가지 질문은 단순히 개발 시간을 줄이는 것을 넘어, 우리가 정말로 가치 있는 일에 집중하고, 최적의 자원을 효율적으로 사용하게 돕는 강력한 도구입니다. 복잡한 프로젝트든, 간단한 스크립트든, 개발을 시작하기 전에 이 질문들을 한 번쯤 던져보는 습관을 들이는 것을 강력 추천합니다! 🔥
-
추천 대상:
- 새로운 프로젝트를 시작하려는 개발자, PM, 기획자
- 업무 효율화를 고민하는 모든 분
- 삽질을 줄이고 현명하게 일하고 싶은 분들
-
한 줄 요약:
개발 전 “만들어야 해? 내가 해야 해? 지금 해야 해?” 3가지 질문으로 삽질을 줄이고 가치를 극대화하자!
오늘도 긴 글 읽어주셔서 감사합니다. 다음에도 꿀팁 가지고 돌아올게요! 🍯
DevBJ | No Bio, Just Log