본문으로 바로가기

정말로 정도가(1인개발자)의 길을 걷겠소이까..

딱 잘라 말하자면 혼자서 웹이나 앱을 만든다는건 자신의 멘탈이 어디까지 견딜 수 있는지 테스트해보겠다는 것과 같습니다. 프로젝트의 규모와 난이도에 따라서 다르겠지만 1인 개발이라는건 정말, 정말 열받고 빡치는 일의 연속이거든요.

 

혼자서 개발을 진행하다 못견뎌 멘탈이 붕괴되는 모습이다

프로젝트를 팀 단위로 구성해 진행하는데에는 분업화나 모티베이션등의 이유도 있겠지만 제가 생각하기에 개발이라는건 혼자서는 견딜 수 없는 스트레스의 연속이라고 생각합니다.

 

물론 결국에는 개발은 책상에 앉아서 하는 혼자만의 싸움이 되겠지만 이를 뒷받침해줄 팀원과 멘토(상급자)가 있고 자신의 업무 범위만큼만 끝내놓으면 일정이 굴러간다는 안도감이 있습니다.

 

하지만 1인 개발은 팀단위의 개발과는 그 개념자체가 틀립니다. 기획도, 이슈대응도, 고객관리도, 디자인 수정도, 서버 개발도, 모니터링도, 배포도 오로지 나 혼자서 한개의 몸뚱아리만으로 해내야 한다는것을 의미하죠. 그게 어때서? 여유있게 천천히 하면 되는거아닌가? 라고 생각할수 있겠지만 이는 큰 오산입니다.

 

1인개발이 빡센 진짜 이유는, 내가 A파트를 전부 끝내놔도 다른파트 업무를 하지 않으면 프로젝트가 굴러가질 않습니니다.

 

그러다보니 A파트(개발) 조금, B파트(디자인) 조금, C파트(인프라) 조금 하다보니 전체 규모로 봤을때 분명 열심히 했는데(세가지 파트를 돌아가면서 작업했으니까) 전체적인 진행률은 조금밖에 안나가있고..

 

이러한 환경은 개발자의 모티베이션을 절망적일정도로 떨어트립니다. 분업과 모티베이션은 소프트웨어 개발에 있어서 생각 이상으로 큰 영향을 끼칩니다.

 

1인 개발이 빡센 이유

혼자서 개발을 진행할경우 배우고 습득해야 할 기술/능력이 너무 많습니다. 예를들어 HTML, CSS, Javascript만 다룰줄아는 프론트엔드 개발자가 웹 풀스택 프로젝트를 진행하겠다고 마음먹었다고 가정해보겠습니다.

 

만들려고 하는 사이트는 간단한 게시판이고 웹툰 업로드 기능이 들어가있기를 원합니다. 이 경우 공부/습득 해야할 기술 스택을 나열해보자면

 

기획/디자인 : 서비스 아이템 기획, 사이트맵 기획, Adobe XD, Zeplin

  • 프론트엔드 : HTML, CSS, Sass, Javascript, SPA Framework - Vue.js, Vuex, Nuxt.js, Vuetify Framework, Axios, endpoint, cors
  • 백엔드 : Serverside lang - PHP, MVC Framework - Codeigniter, Jwt token, Secure Coding, Mysql Query, DB Schema Build, Rest API, Git, Endpoint, HTTP/HTTPS, SSL
  • 서버 : AWS Cloud Platform(ec2, rds, s3, route53), Linux, Apache, Mysql, Docker, Monitoring/Analytics tools
  • 운영 : 페이스북 페이지, 인스타그램 페이지, 서비스 블로그, 서비스 홍보, 유지보수 인력 보충

 

적당히 생각나는 스택만 써도 이정도입니다. 이런것들이 우리가 흔히 사용하는 네이버나 다음, 넷플릭스, 유튜브에 사용된 기술들이며 자신이 만들고자 하는 프로젝트가 보안성 최악에다가 오류 투성이 사이트가 아닌 이상 이정도의 기술 스택은 보유하고 사용할 줄 알아야 합니다.

 

사실상 이게 1인 개발이 어려운 가장 큰 이유입니다. 배워야할게 너무 많다는것. 이 많은 스택을 한사람이 보유하고 능숙하게 사용하기는 정말 어렵기때문에 분업화와 아웃소싱을 통해 서비스를 구축하고 유지보수하며 리팩토링 작업을 해나가는것입니다.

 

그렇다고 해도 1인 개발을 하겠다면 

만약에 정말 대단한 열정을 가지고 1인 개발을 하고자 하는 사람이 있다면 이 모든 기술을 습득하고 결국에는 보안 기준에 맞춘 서비스를 런칭할지도 모릅니다. 그렇게 고통과도 같은 1인 개발을 뚫은후 얻게되는 이점은 아래와 같습니다.

 

  1. 서버 개발 해본경험 있다고 이력서에 기재 가능
  2. 서비스가 잘되서 광고 수익나면 혼자 다 먹을수 있음

 

이 두개뿐입니다. 다른건 없어요. 혼자 개발에 성공해서 느끼는 성취감보다 여러명이서 힘을 합쳐 만들어낸 결과물이 더 큰 성취감을 가져다 줍니다(사람따라 다르겠지만).

 

이력서에 서버 개발 경험있다고 써봤자 내 직군은 프론트엔드 개발자이고 회사에서 하는 일은 프론트엔드 개발입니다. 사람 몸은 하나이고 업무 일정에 맞춰 개발을 진행하다 보면 한사람은 결국 한사람치 일밖에 할수 없게됩니다. 머릿속에 3개 직군의 지식이 있다고 해서 그걸 실무에서 죄다 쏟아낼 수 있는게 아니니까요.

 

괜히 1인, 3~5인 규모의 프로젝트를 '토이 프로젝트'라고 부르는게 아닐겁니다. 실무자분들은 아실겁니다. 자신들이 만든 앱/웹이 시장 수준에 비해 사업적, 기술적 측면에서 얼마나 뒤떨어지는지. 그래서 토이(장난감)이라는 이름을 붙혀 프로젝트를 진행한다고 말하는거겠죠.

 

전문적 기술자로 구성된 팀이 아닌이상 프로젝트의 완성도는 처음부터 이미 결정되어 있습니다. 실제 필드에서 활동하시는분들이 몇명씩이나 시간 쪼개가며 만든 프로젝트가 '장난감' 수준인데, 1인 개발자. 아니, 초보 개발자가 만드는 서비스의 완성도는 어느정도일지 대충 상상이 가시나요? 대부분이 상업적 카테고리에 들지도 못할정도의 작업물일겁니다.

 

글을 쓰다보니 1인 개발에 대해서 부정적인 면을 많이 쓰게 됬네요ㅋㅋㅋㅋ 이렇게 1인 개발을 적극적으로 만류할 수 있는 이유는 제가 지금까지 그렇게 개발해왔기 때문입니다.

 

혼자서 기획하고, 개발하고, 오류와 씨름하다 지쳐 포기해버린 프로젝트가 수없이 많습니다. 그런 수많은 시행착오를 거치다보니 어떻게 위에서 말했던 기술 스택을 대부분 장착하게 되었다만.. 현 시점에서는 런칭을 앞둔 프로젝트가 두개 있는 상태네요.

 

1인 개발을 지속해오면서 배운건 팀원없이 혼자서 서비스를 개발한다는건 강력한 의지가 있더라도 정말 힘든 일이라는것. 그리고 그것에서 알게된 또다른 깨달음인 주기적으로 사람들을 만나가며 프로젝트/기획에 대한 이야기를 하는 그룹이 있다면 1인 개발도 불가능하지는 않다는 것 입니다.

 

스터디던, 팀이던간에 기술직에 있는 분들을 만나가며 서로 애기하고 자신이 생각하는 주제에 대해 토론하는것만으로 개발하는데 힘이 된다는 신기한 사실을 알게 되었습니다. 이는 물론 그분들과 함께 진행하는 프로젝트가 있기 때문에 더욱 효과적이였을수도 있겠지만 주기적인 소통과 토론이 개발을 지속해나갈수 있는 체력이 된다는것을 알게 되었습니다.

 

결론

제 주관적인 생각이지만 사람이 혼자서 해낼 수 있는 일은 한계가 정해져있는것 같습니다. 그렇기 때문에 서비스를 좋아하는 사람들이 모여 고민하고 노력하며 만들어가는 웹/앱 프로젝트서야 말로 개발의 정수이지 않을까, 라는 생각이 듭니다.

 

고객이 필요로 할만한 서비스를 고민하고 구상해서 구체화시키고 이를 서비스로 만들어 나가는 과정을 처음부터 끝까지 경험해볼수 있다는데 토이 프로젝트로만 얻을 수 있는 경험이지 않을까 싶네요.

 

1인개발에 대한 부정적 의견이 많이 들어갔지만 능력이 된다면 혼자서 서비스를 개발하는것도 나쁘지만은 않습니다. 그저 굳이 혼자서 그 길을 가야할 필요는 없다는거죠. 소프트웨어 개발에 있어서 협업또한 능력만큼 중요하기에 마음이 맞는 사람들과 함께 서비스를 만드는게 더욱 도움이 되지 않을까 싶습니다.