개발자 프리랜서 경험 공유 2 – 부업의 시작, MEAN 스택의 만남

첫번째 프로젝트가 종료되고, 또 첫번째 프로젝트를 소개시켜준 그 분이 두번째 프로젝트도 소개시켜주었습니다. 마찬가지로 LG CNS 프로젝트 였고 여기서는 홈 IOT 프로젝트를 수행하였습니다. LG CNS 에서 외주 받는 프로젝트가 아니라 내부에서 솔루션을 만드는 프로젝트라서 개발자가 많지는 않았습니다. 서버개발자 1명 그리고 안드로이드 개발자 1명 이렇게 두 명이였고 저는 안드로이드 개발을 처음에 했었고 나중에는 서버 개발까지 하게 되었습니다.

아마 우리나라에서 가장 먼저 홈 IOT 솔루션을 만드는 프로젝트가 아니었나 싶습니다. 그리고 이 CNS PM님은 나중에 헤어졌다 만났다를 두번이나 반복하게 되면서 나중에 스마트 팩토리 IOT 솔루션을 만드는 프로젝트까지 인연을 이어가게 됩니다.

여기서는 솔루션을 만드는 프로젝트이다보니 기획자 분이 디바이스를 선택해서 구매를 하게 되면 해당 디바이스를 연동하고 테스트를 하였습니다. 거의 모든 디바이스 기기는 다 연동 해보았던거 같습니다. 전등 제어, 도어폰 연동, CCTV 연동, 보일러 연동, 환기 제어, 도어락 제어, 무인택배 연동, 비콘 연동, 도어폰 연동, 온도 습도 제어 등등.

가장 기억에 남는거는 도어폰 연동이였습니다. 도어폰은 독일산 제품이였습니다. 영하 50도에도 견디고 360도 어안렌즈를 장착한 도어폰은 한국에는 없었고 기계를 잘 다루는 독일제품밖에 없었고 아마존을 통해서 구입을 했는데 약 300만원대의 고가 제품이였습니다. 그런데, 문제는 도어폰을 연동하는 규격이 좀 독특했는데, 영상은 MjPEG이라고 사진을 여러장 겹쳐서 보여주는 스펙이라서 별 문제가 없었는데, 보이스 소리가 ulaw G.711 스펙이라고만 되어있고, http 스펙만 덜렁 있었습니다. G.711 스펙의 오픈 소스를 구해서 적용했지만 목소리가 재생이 안되고 잡음만 나오는걸 반복하다가 G.711 스펙을 몇번 정독해서 읽다가 거의 일주일정도 걸려서 목소리를 재생했던 기억이 나네요. 그리고, 도어폰이 울리면 울리자 마자 사진을 찍어서 집 주인의 핸드폰으로 GCM으로 전송을 해줍니다. 그러면 집주인이 사진을 보고 통화를 하게 되는 시나리오였습니다.

상주 프로젝트는 정시 퇴근하면서 여유가 좀 생기면서 부업으로 다른 개발을 해볼려고 기획자와 개발자를 연결해주는 플랫폼인 위시캣에도 몇번 지원하고 면접을 봤습니다. 그런데 면접을 3-4번 정도 보긴했는데 프로젝트가 성사된 적은 없었습니다. 지금 생각해보면, 아마 기획자가 지원한 개발자를 몇 명 면접을 보고 아마 제가 떨어졌던거 같습니다. 위시캣에 지원도 하고 또 네이버 안드로이드 개발 카페에 글도 올리는 등 부업을 위해서 여러가지 홍보를 하였습니다.

카페를 통해서 어떤 분이 저한테 개발 강의 및 의뢰를 요청하였는데 이 시점이 제 기술 스택이 자바, 스프링, 안드로이드에서 자바스크립트와 풀스택으로 넓어지는 시작점 이였습니다. 그 분이 제가 사는 곳으로 직접 오셨고, 미팅을 하는데 저보고 MEAN 스택을 아냐고 하시더라구요. 모르겠다고 했더니 가방에서 책을 몇권 꺼내더군요. MEAN 스택 관련된 책이였는데, 아마 그 당시가 2013년 정도였던거 같은데, Angular 1.x 가 처음 나왔었던 시기였습니다. MEAN 스택은 MongoDB, Express, Angular, NodeJS 이 4개를 가르키는 약자입니다. 모두 자바스크립트 베이스의 기술들입니다.

jquery 없이 Angular로만 프런트를 개발하는 방식이 그 이전에는 상상할 수 없었는데 Angular는 그것을 가능하게 했다는 점에서 매력을 느끼고 MEAN 관련 서적을 공부하기 시작했습니다. 그리고, 배운것을 써먹기 위해서 커뮤니티에서 수주받은 업무에 MEAN 스택을 적용해서 개발도 해보았습니다. 저에게는 부업 개발이 돈을 버는 수단이 되기도 했지만 새로운 기술을 배우고 또한 그 기술을 다시 적용할 수 있는 수단이기도 했습니다.

홈 IOT 솔루션을 만드는 프로젝트는 약 3년정도 했고 종료되었습니다. 그렇다고 프로젝트 계약을 3년을 한게 아닙니다. 보통 프로젝트 계약은 2개월을 하고 계속 2개월씩 연장을 하는 방식입니다. 만일 개발을 잘 못하면 2개월하고 짤리게 되겠조. 프리랜서 개발자 사이트 보면 프리랜서 개발자의 단점이 프로젝트가 중도에 끊기게 되서 1년 기준으로 6개월 일하고 6개월 쉬는게 단점이라고 말씀하시는 분이 있던데, 이건 본인이 개발을 못하게 때문에 생기는 현상입니다. 저는 프리랜서 개발을 약 10년 넘게 했지만 지금까지 단 하루도 중간에 끊겨서 쉰적이 없습니다. 본인이 개발을 못하면 보통 2-3 개월 단기 계약후에 계약이 갱신되지 않고 종료가 됩니다. 그러면 또 급구하게 되는 프로젝트에 투입이 되고 또 2-3개월후에 종료되는 악순환이 반복이 되는겁니다. 그리고, 대기업은 프로젝트를 한번하게 되면 PM분이 프리랜서 개발자에 대한 평가를 적어 놓게 되고 CNS 프로젝트를 한번 한 경험이 있으면 해당 PM은 먼저 이 평가를 보게 되는데 한번 프로젝트를 못하게 되면 그 사람은 영영 그 기업은 일을 못하게 되는 일이 발생하게 됩니다.

제가 처음에도 계속 말씀드린 얘기지만, 만일 개발자 프리랜서로 일을 하고싶으시면 반드시 기본기는 착실히 닦으시고 시작하시는게 바람직합니다. 한번 꼬인 실타래는 다시 풀기 힘듭니다.

이 상주 프로젝트 3년정도 하는 동안 부업으로 한 개발은 5건 정도 였던거 같습니다. 안드로이드 네이티브 개발이 2건정도 MEAN스택기반 풀스택으로 개발한게 3건 정도 였던거 같습니다. 그 동안 많은 프리랜서 개발자들을 만나왔지만 대부분이 상주 프로젝트만 수행하지 부업 개발이라는거는 생각도 안하는 분들이 대부분이였습니다. 상주 프로젝트는 대부분 대기업이나 공공기업이다보니 자바, 전자정부 프레임웍, 스프링, Mybatis 같은 old 한 프레임워크, 그리고 UI는 넥사크로, x플랫폼, 마이플랫폼 같은 표준화 되지 않은 UI 프레임웍들을 주로 사용하다 보니 거기에 안주하면 결국 언젠가는 한계에 도달하게 될거라고 저는 생각합니다.

제가 생각하는 프리랜서 개발자란 물론 본인이 원한다면 쉴 쉬도 있겠지만 마음만 먹는다면 2-3건의 부업도 할 수 있는 능력도 갖춰야 된다고 생각합니다. 저는 개발을 의뢰하는 사람을 만나기 위해서 홍보, 영업도 했고, 미팅을 하면서 기획을 하고 설계, 개발도 했거니와 개발 후에 배포 운영까지 모든것을 경험하면서 이 시기에 시야가 많이 넓어지면서 향후 AWS, GCP, docker, devops 등으로 경험이 계속 확대 되는 시기 였습니다.