나는 개발이 재밌다.
난 정말로 개발이 재밌다.
나는 SW 개발이 재밌다. 12살에 코딩을 처음 접했을 때 부터 나는 코딩이 적성이라는 것을 느꼈다. 그 이후로 단 한번도 프로그래머외의 다른 장래희망을 가져본 적이 없다. 물론 어떤 걸 개발할지, 어떤 개발자가 될지는 지금까지도 고민이지만 개발자가 된 걸 후회한 적은 한번도 없다. 그리고 지금도 코딩이 즐겁다.
그렇다고 회사 일이 마냥 즐겁냐면 그렇지는 않다. 물론 개발자라고 하루 8시간 코딩만 주구장창 하지는 않기 때문에 다른 업무로 인해 재미가 없냐면.. 꼭 그렇지만은 않다. 회의하는 시간을 뺴고도 회사 코딩을 하는 순간에 늘 즐겁냐면 그렇지도 않다. 왜 회사일은 내가 좋아하는 개발 업무지만 즐겁지만은 않은 것일까? 에 대한 질문에 고찰을 해보았다.
MZ는 하고싶은걸 해
나도 MZ세대에 속하고, MZ라는 용어를 좋아하지는 않지만 흔히 말하는 MZ세대에게 나타나는 어느정도 공통된 특징이 있다. 개인화, 재미추구, 가치중심 소비 경향이다. 이것들이 합쳐지면서 더이상 남들 눈치 보지 않고 내가 재밌고 좋아하는 것에 과감히 돈을 지불하는 세대가 되었다. 소비자 입장에선 본전이나 생산성을 따지지 않고 재미만 있다면 얼마든지 값을 지불할 수 있다. 돈을 버는 입장도 마찬가지로 변했다. 이제는 하고 싶은 일로 돈을 벌 수 있는 시대가 되었다.
물론 취미로써 좋아하는 일과, 수익을 낼 수 있는 일은 다르다. 대표적인 예가 게임이다. 게임을 좋아하는 사람은 많다. 그러나 단순히 게임만으로 돈을 벌수는 없다. 즉 게임을 플레이하는 것을 좋아하더라도, 이 게임하는 것으로 돈을 버는 것은 또 별개의 일이다.
취미가 일이 되어버리면 더 이상 즐겁지 않다.
게임 플레이를 수입으로 잇기 위해서는 게임을 정말 너무 잘해서 프로게이머가 되거나, 게임 플레이를 재밌게 중계하는 스트리머가 되거나, 아니면 게임을 직접 만드는 게임 개발자가 될 수 있다. 그러나 어느 것이 되었든 더 이상 게임을 하기 싫어도 해야한다. 남들보다 게임을 더 잘하거나 더 재밌게 플레이하거나 어떤 것이 됐든 전문성과 경쟁력을 갖추어야 한다. 우리는 이것을 ‘프로’라고 부르기로 했다. 게임이 아무리 재밌어도 돈을 벌기 위해선 결국 일은 일인 셈이다.
취미코딩 VS 프로코딩
SW 개발도 마찬가지이다. 아무리 개발이 적성에 맞는다 하더라도 단순히 즐겁게 개발하는 것만으로는 돈을 벌 수 없다. 기업에 취업해서 직접 코드를 짜는 본업 개발자가 됐든, SW 개발을 가르치는 교육자가 됐든, 개발 유튜버가 됐든 전문성과 경쟁력을 갖추고 본인이 하고 싶은 코딩만 하는 것이 아니라 돈을 벌 수 있는 코딩을 해야 프로가 되는 것이다.
취미로 하는 사이드 프로젝트가 본업 프로젝트와 다른 점이 여기에 있다. 취미코딩은 하고 싶은 만큼만, 하고 싶은 대로 개발할 수 있다. 잡기 어려운 버그라면 언제까지고 미룰 수도 있고, 흥미가 떨어지면 새로운 프로젝트를 찾아 떠날수도 있다. 검증도 되지 않은 신기술들로 떡칠을 할수도 있고, 반대로 익숙하고 오래된 기술스택만 가지고 스트레스 받지 않으며 개발할 수도 있다.
역설적이게도 취미로 시작했더라도 결국 사이드 프로젝트로 수입을 내고 싶다면 어느 시점에서는 결국 회사일처럼 재미없고 고통스러워 질 수밖에 없다. 잡기 어려운 버그도 끝까지 붙잡고 고쳐나가야 하며, 흥미가 떨어져도 끝까지 유지보수 해야하고, 매순간 많은 고민들을 해야 한다.
그럼 현업코딩과 사이드프로젝트는 결국 재미가 없어야만 하는 걸까?
취미가 아닌 일로써 즐거운 코딩
취미로써 즐거운 것과 일로써 즐거운 것은 다르다.
바꿔말하면 일이라고 꼭 재미 없으리란 법은 없다. 취미와는 다른 의미의 즐거움이겠지만 다른 재미를 충분히 추구할 수 있다.
사이드 프로젝트에서 그나마 다행인 점은 내가 주인이니까 적어도 내가 결정할 수 있다는 것이다. 본인이 새로운 기술을 익하는 것이 재밌다면 기술스택에 투자 할 수도 있고, 시간을 적게 들이고 싶다면 서비스 기획을 단순화 할수도 있다. 개발에는 여러가지 방법과 방향성이 있기 때문에 본인이 즐길 수 있는 방향으로 결정한다면 재미와 수입 두가지 토끼를 둘다 잡을 수도 있다.
또한 여러가지 좋은 플랫폼과 프레임워크들로 이런 사이드 프로젝트를 시작하기가 점점 쉽고 간편해지고 있다. 모바일 앱의 경우는 앱스토어와 Google Play 혹은 써드파티 앱마켓을 통해 쉽게 앱을 출시 및 관리할 수 있다. 또한 Firebase와 같은 서비스를 이용하면 푸시, 간단한 DB, 크래시 레포트와 A/B 테스팅까지 무료로 이용할 수 있다. 극단적으로는 별도의 서버를 구축하지 않고도 앱 서비스를 운영할수도 있다. 아마 앞으로는 인공지능의 도움까지도 기대할 수 있을 것이다.
회사 코딩도 마찬가지이다. 회사의 업무의 주인이 된다면 어느정도 사이드 프로젝트와 마찬가지로 재미를 추구할 수 있다. 가령 예를 들어 본인이 주도적으로 개선점, 문제점을 직접 찾아내서서 해결하고 그 과정에서 본인이 새로운 기술 스택을 도입해볼 수도 있다. 아니면 업무에 필요한 자동화 툴과 같은 토이 프로젝트를 진행해서 팀원들에게 배포해볼 수도 있다. 회사 코딩의 장점은 사이드 프로젝트보다 성과와 요구사항이 훨씬 더 명확하다는데 있다. 덕분에 이런 시도들이 성공했을 땐 사이드 프로젝트보다 오히려 더 쉽게 성과에 대한 보람을 느낄 수 있다.
일이 즐거워야 인생이 즐겁다.
이렇게 얘기하는 나도 아직까진 업무 코딩이 그렇게 즐겁냐고 묻는다면 아직은 어렵다고 말할 수 있다. 하지만 정말 무아지경 물아일체가 되어 이렇게 즐거운데 월급을 받아도 되나?
싶을정도로 미친듯이 회사 코딩을 해본 적도 있다. 보통 적게 사용해도 우리는 일상의 1/3 이상을 일에 쏟고 있는데, 이것이 재미가 없다면 인생이 너무 불행해지지 않을까? 모든 과정이 즐거울 수만은 없겠지만, 이 글을 읽는 여러분도 즐거운 행복코딩을 하실 수 있으면 좋겠다.