[개발자에서 CTO 까지] 클라이언트 와 서버중 어디에 전념할 것인가?

예전에는 혼자서 개발하면서 성장할 수 있는 시기가 있었지만, 요즘은 팀단위로 개발을 진행하기 때문에 빠르게 성장할 수 있지만, 자신의 파트에 특화되는 경향이 있습니다. 물론 지금도 파트를 오가면서 개발을 할 수는 있지만 예전만큼 쉽지 않습니다. 저도 실제로 클라이언트 개발을 하다가 서버 사이드로 옮긴 경우 입니다. 


  예전 다니던 회사에서 공개 개발자 모집을 한 적이 있습니다. 들어온 원서의 비율을 체크 해보니 안드로이드, iOS, 백엔드 개발자의 비율이 8:1:1 이였습니다. 클라이언트와 서버 비율로 따져보면 9:1 입니다. 

  클라이언트 사이드에서 안드로이드 개발자가 iOS 보다 많은 이유를 몇 가지 짐작해 볼 수가 있습니다. 

  안드로이드 폰을 가진 사람이 월등하게 많습니다. 자신이 가진 폰에 맞는 앱을 개발하다보면 당연히 안드로이드 개발이 많을 수 밖에 없다고 생각할 수 있습니다. 

  안드로이드 개발 환경 구축이 훨신 쉽습니다. iOS 는 맥에서 개발을 해야 하지만 안드로이드는 일반 윈도우 환경에서도 개발이 가능합니다. 또한 iOS 는 스토어에 올리려면 개발자 인증서를 사야 하는데 이 비용도 초기 비용에 해당합니다. 또한 지금은 추세가 바꼈지만 예전에 iOS 는 object-c 로 개발을 해야 했는데 이는 java 보다 난이도가 높습니다. java 는 학교 수업시간에도 배우는 언어이기 때문입니다. 

  여러가지 이유로 안드로이드 개발이 iOS 보다 많은 이유를 짐작해 볼 수가 있습니다. 

  그러면 클라이언트와 서버 개발은 어째서 차이가 날까? 
  
  클라이언트 개발은 접근성이 편합니다. 그리고 결과물을 바로 볼 수가 있다는 장점이 있기 때문에 개발에 흥미를 가지고 시작하기가 좋습니다. 그리고 개발 -> 개발 완성까지의 가야 하는 길이 짧습니다. 

  서버 사이드는 개발을 시작하기 위해서 알아야 할 것들이 많습니다. 데이타베이스도 알아야 하고 디플로이도 제대로 할려면 리눅스 관련 명령도 배워야 합니다. 요즘은 클라우드가 대세이기 때문에 AWS (Amazon Web Service) 나 GCP (Google Cloud Platform)을 알아야 하는 시기가 됐습니다. 개발 언어도 알아야 하고 웹 서비스면 웹프레임워크도 알아야 합니다. 게다가 국내에서 가장 많이 쓰이는 자바 관련 개발 환경이라면 스프링 프레임워크를 많이 쓰는데 이 또한 학습곡선이 높고 많은 기간을 필요로 합니다. 만약에 결과를 눈으로 확인 하기 위해서는 프론트엔드도 최소한으로 알아야 하는데 이 또한 만만치 않은 노력을 필요로 합니다. 

  즉 클라이언트 개발은 접근성이 좋고 바로 바로 아웃풋이 확인 가능하니 개발의 재미를 줄 수가 있습니다. 서버 개발은 개발 접근성이 좋지 않고 바로 바로 아웃풋 확인 하기까지가 배워야 할 것들이 많습니다. 하지만 이러한 난이도가 시니어급에 이르렀을 때 연봉의 차이를 가져옵니다. 9:1 클라이언트대 서버 개발자의 비율입니다. 이게 펑균이라고 보기에는 사실상 무리가 있는 특이 케이스 일 수도 있지만 인력시장에서 알아보면 확실히 서버 개발자의 숫자가 적습니다. 

  그래서 내가 클라이언트와 서버 개발중에서 어떤걸 할까 고민을 한다면 각각의 특장점이 있습니다. 

  클라 개발에 전념해서 장인급이 되신다면 회사를다니면서 또는 프리랜서를 하시면서 '돈'만 바라보고 여러가지 일을 동시에 진행한다면 단기간에 큰 돈을 벌 수가 있다는 것입니다. 제 주변에는 프리랜서 시절에 연 1억을 넘게 벌어들인 아이폰 개발자와 연 2억을 넘게 돈을 버는 클라이언트 개발자들이 있습니다. 

  서버는 이후에 올라갈 수 있는 테크가 있습니다. 아키텍트 - 개발 총괄 - CTO 등으로 커 나아갈 수 있는 기회가 열려 있습니다. 물론 클라이언트 개발자 출신으로도 가능합니다. 그리고 클라이언트 개발자 분들의 역량을 무시하는 건 절대 아니지만 이후 실제로 서비스를 론칭해서 운영하는 경우에는 절대적으로 서버쪽의 지식이 필요합니다.

  물론 이런 것들이 생각처럼 잘 되기 위해서는 그에 따르는 노력들이 필요하지만 대체로 이렇습니다.