또 다른 부업 – 강의와 멘토링

현재, 상주 프로젝트와 지인들을 통한 사이드잡과 위시캣과 같은 개발 부업등에 비하면 학원 강의나 멘토링 같은 부업은 사실 돈을 벌기 위해서라기 보다 강의를 준비하면서 공부를 하게 되고 강의를 하면서도 또한 공부를 하게 된다는 측면. 그리고, 공자의 군자삼락에 세번째 즐거움과 마찬가지로 남을 가르치고 얻는 즐거움이 또한 크기 때문에 아직까지도 하는거 같다.

학원 강의

맨 처음 학원 강의를 했던데는 강남역에 위치한 그린컴퓨터 아카데미 학원이였다. 박팀장님을 처음 만나고 학원에서 게임 강의가 필요하다고 해서 안드로이드 기반 게임 강의를 하게 되었다. 그 때가 2010년 정도였던걸로 기억한다.

강의를 듣는 인원은 불과 5명에 불과하였지만 강의는 석 달 정도 준비했던거 같다.

처음 환경설정부터해서 FPS의 개념, 그리고 적기를 생성하고 아군기를 생성한 후에 미사일을 쏴서 적기를 파괴하는 것까지 PPT 자료와 소스까지 준비하였다.

인원이 5명밖에 없었지만 첫 주 수업은 말이 제대로 나오지 않을 정도로 많이 떨렸다. 개발자들이 원래 다 소심하고 내성적이고 수동적이지 않은가. 나 또한 마찬가지 였으므로. 토요일 8시간 4주차 수업인데, 한 분이 엔씨소프트 인턴으로 갔는데, 거기서 프로토타입을 만들어 오라는 과제를 주었다고 하는데, 제 1주차 수업을 듣고는 무슨 의도인지 모르겠다고 따졌다. 그래서 30분 정도 다시 설명을 해주었다. 게임을 만들기 위해서 하는 과정과 원리 등을. 그리고, 그 분은 3주차에 다시 오더니, 이제 의도하는 바를 알겠다고 했다.

또, 한 분은 대학교 교수님인데 대학교에서 게임 강의를 하기 위해서 제 강의를 듣는다고 한다. 그 분은 4주차 수업을 다 듣고 너무 잘들었다고 책을 한번 쓰보라고 나한테 출판사를 소개시켜주었다. ( 그리고, 그 후에 출판사 관계자를 만나고 책을 쓰다가 중도에 포기하였다. 책을 쓰는 것도 어렵지만 안드로이드 게임이라는 적은 카테고리에 얼마나 많은 사람이 보겠느냐는 생각이 좀 들었다)

만일 게임에 관심이 있는 사람이 있다면 그 때 강의한 자료를 드릴수 있으니 연락하시기 바랍니다. 유니티 같은 고급 툴로 게임 개발을 하기 전에 게임 개발에 대한 기본 원리를 이해하는데 좋은 강의라고 아직도 생각하고 있습니다.

그 다음에는 자바 강의를 하게 되었다. 자바 강의는 대부분이 초급 개발자 혹은 개발자 입문자들이 듣는 수업이다 보니 내가 가르치기에는 좀 어려웠던거 같다. 실무에서 사용되는 코드는 설명할 수 있을거 같은데, 입문자들이 하는 질문들, 예를 들어, 함수가 머에요? 이런 질문을 한 번 받은적이 있는데, 준비하지 못한 질문이다보니, 그 때 그 질문을 받고 상당히 당황했던 기억이 있다. 자바 강의를 하기 위해서 자바의 정석 등 관련 서적 3권을 모아서 PPT 300장 정도를 준비했는데, 실제로 강의는 2-3번 밖에 하지 않았다.

그 다음에는 안드로이드 강의를 하게 되었다. 안드로이드 앱을 만드는 과정이다 보니, 초급자, 중급자 뿐만 입문자까지 다양한 분들이 수업을 들었다. 안드로이드 강의는 강의로 끝나는게 아니라 수업이 끝나고 나한테 앱 제작을 의뢰하시는 분도 많아서 또 다른 부업이 시작되곤 했다.

기억나는 분 한 분은 파주에서 오신 60대 초반 분인데, 본인이 asp 개발자인데, 다른 학원에서 안드로이드 강의를 들었는데, 본인이 만들고 싶은 앱을 만들수가 없었다고 한다. 그런데 내가 한 강의를 듣고 앱을 만들수 있을거 같다고 하셨다. 물론 내가 잘 가르쳤다기 보다 그 당시 나는 현업 안드로이드 개발자였고, 다른 학원은 학원 선생님이다보니 그런게 아닌가 싶다. 그리고, 한 달후에 다시 그 분이 찾아오셨다. 본인이 만들기에 좀 버거우니 먼저 좀 만들어 달라고 부탁하셨다. 물론 앱 개발비는 줄거라고 하셨는데, 원래 개발을 시작전에 개발비를 협의하고 개발하는 거지만 간곡히 부탁하는거라 그냥 개발해 주었다. 그 후에 약소하지만 작은 개발비를 주셨고, 그리고, 그 분이 사는 파주로 초대해서 비싼 한우를 우리 가족에게도 대접하고 과수원에 있는 배를 해마다 갖다 주시고 해서 오래 기억이 남아있다.

그 이후에는 강의를 3년 정도 쉬었다. 그러다가 강남역 그린컴퓨터에서 만난 박팀장님한테서 다시 연락이 왔는데, 가산 디지탈역쪽으로 학원을 옮겼다고 했다. 그리고, 학원에서 필요한 강의가 angular가 있는데 해줄수 있냐고 해서 angular 2.x 강의를 하게 되었다. anguar 현업 개발자이다 보니 material 디자인에 flex layout 에 거의 완전한 사이트를 만드는 걸 강의로 준비하다보니 내 강의를 듣고 얘기하는 부류는 딱 두 부류였다. 한 부류는 너무 어렵다, 강의가 너무 빠르다, 라는 대부분의 입문자 레벨. 그리고, 두번째 부류는 실무에 사용되는 지식들을 알려줘서 고맙다는 초급 개발자 레벨의 부류. 만일 학원 강의를 할 의향이 있으신 분들이라면 입문자, 초급자 레벨에 강의를 맞추길 바란다. 저는 욕심이 과해서 너무 많은걸 강의하다 보니, 오히려 역효과를 가져왔던거 같다.

그리고, 지금은 react 강의를 하고 있다. 리액트 강의도 angular 강의와 마찬가지로 처음에는 완전한 사이트를 만드는 강의에서 이제는 점점 강의 수준을 내려서 지금은 리액트 기본기와 리액트 훅, 리덕스, 웹팩 정도 초급 수준만 강의하고 있다.

만일 리액트 강의에 관심이 있다면 아래 정보를 보시기 바란다. 지금 코로나 시기라서 올해 강의는 5월에 개강 예정이다.

한국소프트웨어 인재개발원 리액트 강의

멘토링

1년에 한번 3월정도에 시작해서 11월 까지 하는 국가에서 지원하는 한이음 멘토링이 있다. IT 경력이 5년 이상이면 누구나 멘토로 지원해서 대학생들을 멘토링할 수 있다.

한이음 멘토링 사이트

멘토가 최대 5팀까지 지도할 수 있고 한 팀당 15만원/월 멘토비를 지원해준다. 올해 공고 메일을 보니 20만원으로 오른거 같기도 한데 확실치 않다.

약 5년정도 지도를 했는데, 제일 보람있었던 해가 2017년 한성대 학생들 3명을 지도했을때였다. 학생들이 열심히 했고, 배우기 힘들었을텐데도 프런트는 angular 백엔드는 spring 으로 해서 완성하였다. 공모전에서 입상은 못했지만 그 후에 취업은 모두 다 원하는 곳으로 하였다. 한 명은 삼성 SDS, 한명은 네이버, 한명은 직방으로.

국가에서 하는 한이음 멘토링 이외에 대학교에서 캡스톤 디자인으로 멘토를 모집하는데가 있다. 나도 주로 지인들 통해서 연락을 받는데 관심이 있다면 댓글이나 메일을 보내주시기 바란다. 요즘 모집 시기라서…

위시캣 후기 – 종합

기획자와 개발자를 연결해주는 아웃소싱 플랫폼은 위시캣과 프리모아, 이랜서 등 많이 있는데, 가입하고 자기 포트폴리오 등록을 각 사이트마다 하는게 너무 귀찮아서 첫번째 등록한 위시캣에서만 활동했습니다. 기획자는 기업보다 거의 1/2도 안되는 비용에 개발을 의뢰해서 좋고 개발자는 (물론 전업으로 하시는 분도 계시겠지만) 저처럼 부업을 할 수 있다는 점이 장점이라서 하게 되었습니다. 요즘은 상주와 도급이라고 카테고리가 아예 나눠져있더군요. 상주 프로젝트는 보통 이랜서가 주류였고 위시캣은 외주 도급이 주류였는데 상주도 취급을 하더군요. 물론 저는 상주는 이미 하고 있으므로 비상주로 할 수 있는 외주 도급 계약만 하였습니다.

전체 프로세스를 한번 보겠습니다. 보통 기획자를 클라이언트라고 하고 개발자를 파트너라고 부르는데 저는 그냥 알아보기 쉽게 기획자, 개발자라고 부르겠습니다. 기획자가 프로젝트를 등록하고 개발자가 지원하게 됩니다. 지원시에 개발금액을 명시해야 하는데 저는 보통 기획자가 제시한 금액에 수수료 10%를 더한 금액을 적습니다. 지원후에 기획자가 개발자를 선정하게 되면 기획자와 미팅을 하게 됩니다. 초창기에는 위시캣에서 카페를 잡아주고 카페에 기획자, 개발자 위시켓 담당자 이렇게 미팅을 진행합니다. 아마 위시캣에서 참석하는 이유는 직접 계약으로 이어지는 것을 방지하기 위한 목적이 아닌가 추측합니다. 기획자가 개발자 2-3명을 면접후에 개발자를 선정하면 계약이 이루어 집니다. 계약은 온라인으로 이루어 지는데 계약서에 반드시 요청사항 그리고 개발 후에 검수가 어떻게 이루어지는지 이 두가지는 반드시 체크해야 합니다. 그렇지 않으면 나중에 분쟁의 소지가 생기게 됩니다. 개발이 진행되면 기획자는 에스크로로 계약금을 위시켓에 입금하게 됩니다. 개발 완료후에 검수를 완료하면 개발자에게 개발 금액이 입금되는 프로세스입니다.

2018년 8월부터 지금까지 위시캣 프로젝트는 총 6건을 완료하였고 총 금액은 합산해보니 3970만입니다. 초반에는 지원을 해도 되지가 않아서 빈익빈부익부 같다고 생각했습니다. 프로젝트를 해 본 사람은 계속하고 안 해본 사람은 계속 못하는. 그래서 한 건이라도 시작을 한 번 해보자는 생각에 지원자가 없고 난이도가 어려운 프로젝트를 주로 지원했습니다.

총 프로젝트 지원한 건수는 102건이고 계약한 건수는 6건이고 누적 완료 금액이라는 통계는 위시캣에 명확히 나오네요. 미팅 건수는 안나오는데 미팅한 온라인/오프라인 모두 합쳐서 약 20건 정도 되지 않았나 생각됩니다. 계약이 성사되지는 않았어도 보람있었던 미팅도 많았습니다. 예를 들자면 실리콘밸리에서 AWS 아키텍처로 일하시다가 오는 분이랑 미팅을 한적이 있는데 AWS로 구성된 시스템 구성도를 보고 많이 배운적도 있고 그리고 mTurk 이라는 우리나라에는 개방되지 않는 플랫폼 같은 것도 보면서 새로운 시야도 넓힌적도 있고. 반대로 시간만 낭비하고 지식만 낭비한 미팅도 몇 건 있었습니다. 대체적으로 기획자와 미팅 그 자체도 새로운 지식과 시야를 넓히는데 모두 도움이 되었습니다.

공공기관과 대기업에서 일하면 사용하는 기술만 사용하게 됩니다. 위시켓에 프로젝트가 머가 있는지 읽어 보는것만도 시야를 넓히는데 도움이 됩니다. 시간될 때 마다 한번 읽어보시고 할만하다고 생각되면 한번 도전해보세요. 아마 첫 프로젝트 시작하는게 어려울텐데 어떻게든 첫 프로젝트를 하도록 노력해보세요.

가장 최근에 했던 프로젝트부터 한번 간단히 리뷰해볼게요.

WebRTC 기반 내부용 화상회의 PC 웹 및 앱 개발

공고 내용에 올라온 내용은 다음과 같습니다.

필요요소– WebRTC 기반 내부용 화상회의 PC웹 및 앱 개발
– 서버 개발
개발환경/언어/방식 – WebRTC
주요기능1) 내부에서 테스트하는 목적으로 파일럿 웹 및 앱을 개발하고자 합니다.
– PC웹 및 Android, iOS에서 모두 동작하는지 테스트하는 것이 목적입니다.
2) 주요 기능
– 화상회의 개설
– 화상회의 리스트
– 멀티 사용자 참가 화상회의 : 약 30명 정도 참가자 화면이 보여주면 좋겠음.
– 스크린 공유
– RestAPI : 타 시스템에서 연동해서 사용
3) 소스 이전 및 적용 기술 설명
기타– 상주 개발은 필요 없으며 중간중간 필요시 협의하면 됩니다.
– Jitsi Meet 오픈소스 기반 구축해보신 경험이 있으신 분을 우대합니다.

zoom 같은 화상미팅 프로그램을 만드는 프로젝트입니다. webRTC라는 프로토콜을 알아야 개발할 수 있기 때문에 지원자도 제한적이고 비대면 시대에 많이 사용될 거 같아서 개발하게 되었습니다. zoom에 있는 기본 기능들은 거의 포함되었습니다. 화면 공유, 비디오 꺼기 및 켜기, 오디오 켜기 및 끄기, 선택된 화면 크게 보기 등등.

기술스택에는 제한이 없어서프런트는 React + Ant design +Redux 로 개발하였고 백엔드는 NodeJS + MariaDB + typescript + typeORM 을 사용하였습니다. WebRTC 를 Web API로 개발한거는 아니고 Jitsi 라는 오픈 소스를 사용해서 개발하였습니다. 이 프로젝트는 기획부터 설계, 개발 과 배포 및 설치까지 저 혼자서 모두 하였습니다.

화면은 많지 않아서 개발 기간이 많이 걸리지는 않았지만 WebRTC라는 프로토콜과 오픈소스 라이브러리를 사용하면서 여러가지 어려움을 많이 만났습니다. 예를 들어 화상미팅중 이어폰을 장착시 소리가 안나온다던가 등.

WebRTC는 원래 P2P 목적으로 나온 프로토콜 이였지만 다중 화상 형태가 많이 사용되면서 MCU, SNU와 같은 형태의 프로토콜을 지원하는 서버가 필요하게 되었습니다. 가장 많이 사용되는 서버는 Janus 서버이고 이 프로젝트에서는 Jitsi 서버를 사용하게 되었습니다.

IOT 디바이스 모니터링 웹 개발

공고 내용에 올라온 내용은 다음과 같습니다.

개요2종류의 디바이스로 부터 수집된 데이터 (프로토콜)를 시각화 하는 웹 개발
개발환경– angular(7버전), Node.js 사용
– MongoDB, MariaDB
– AWS
요구사항1) 웹 기반 대시보드 제공, 데이터 수집 그래프 등의 시각화 작업
– 데이터 시각화 라이브러리 : amCharts
– 데이터 갱신 주기 : 10분
2) 데이터 수집 및 간단한 DB 설계 및 백단의 작업 필요
필요요소– 화면 퍼블리싱
– 웹 프런트엔드 개발/데이터 연동
– DB 설계/개발
기타DB데이터를 바로 출력해주는 기능이며,
복잡한 로직은 구현하지 않을 예정입니다.

오프라인 미팅을 하러 갔는데, 오히려 제가 컨설팅을 많이 해준 기억이 나네요. 제가 LGU+ 홈IOT 프로젝트를 하면서 oneM2M 프로토콜을 많이 사용했었는데, 이 회사에서 구축할려는 솔루션이 oneM2M 프로토콜을 연동해서 NB-IOT 같은 센서 데이터를 연동하는 걸 필요로 해서 였습니다.

프로젝트는 서버의 데이터를 화면에 보여주는 건데 프런트가 angular 여서 지원자가 거의 없어서 제가 하게 되었습니다. 어려운 난이도는 없었는데, 권한별 사이트가 존재한다는 전제 조건이 하나 있었습니다.

프런트는 angular 7 으로 이미 개발되어 있었는데 안되어있는 부분을 제가 채우는 일이였습니다. 또한 특이한 점은 amCharts라는 차트 라이브러리를 사용했는데 지도 관련 데이터 시각화에 최적화된 라이브러리 였습니다. 주로 프런트만 작업하였고 SASS 그리고 Material Design 과 flexbox 라이브러리를 사용했습니다. 프런트만 작업하였고 기존에 작업된 소스가 있어서 기존 소스에 약 50% 정도 더 채운거 같습니다.

Vue.js 기반 홈페이지 디버깅 및 플랫폼 마무리 개발 작업

공공기관 프로젝트였는데 벤처 기업이 초급 개발자 한명을 뽑아서 개발 진행을 하다가 에러가 너무 많이 발생해서 발견된 버그에 대한 디버깅과 플랫폼 마무리 개발작업을 하는 것이였습니다.

프런트는 Vue였고 백엔드는 파이썬 장고로 이미 개발된 상태였습니다. 지금까지 한 위시캣 프로젝트 중 가장 후회되는 프로젝트였습니다. 중간에 그만할려고 했지만 대표가 또 제 학교 후배이고 해서 부탁하고 해서 어쩔수 없이 끝까지 하게 되었습니다.

아무것도 개발되지 않는 상태에서 개발하는게 차라리 편한 프로젝트입니다. 남이 한 프로젝트를 디버깅하는게 난이도가 더 높은 프로젝트이고 이런 프로젝트는 필히 피해야 합니다.

이 프로젝트의 문제점 몇가지를 짚어 볼께요. 차트를 보여줘야 하는 곳에 차트 라이브러리를 사용하면 되는데 D3 라이브러리로 차트를 그리고 있었습니다. 제가 왜 그렇게 했냐고 물어보니까 잘몰라서 그렇게 했다고 하네요. 그리고 초급 개발자가 처음부터 개발하다 보니 구조가 설계가 잘못되었습니다. 또한 Vue 인데도 불구하고 토큰 인증을 하지 않고 세션인증을 사용하고 있어서 매번 세션 정보를 가져오고 있어서 퍼포먼스가 떨어지고 있었습니다. 결정적으로 원래는 제가 프런트만 하기로 되어있었는데 웹 사이트가 한시간만 되면 죽는다고 서버를 좀 봐달라고 부탁해서 파이썬으로 된 장고 소스를 보게 되었는데 장고 ORM 설계시 many to many 관계를 너무 많이 사용해서 화면 하나를 보게 되면 쿼리가 백개 이상 실행되는 현상이 있었습니다.

결론적으로 개고생한 프로젝트였습니다. 개발 금액은 고작 400이였습니다.

mturk를 이용한 데이터 수집 웹 페이지 유지보수

이 프로젝트는 서울대 컴퓨터공학과 연구소에서 의뢰한 건데 약간의 개발과 유지보수 정도였습니다. 제가 이 프로젝트를 하게 된 것은 mturk이라는 플랫폼에 관심이 있어서 였습니다. mturk은 우리나라 croudworks 와 유사한 플랫폼입니다. 예를 들어 어떤 job을 건당 삼천원으로 올려 놓으면 사람들이 job을 수행하고 천원을 받아가는 형태인데 주로 빅데이터를 모으기 위한 job 들입니다.

프런트는 Vue로 되어있었고 제가 기존 소스에 약 30% 정도 추가한 정도였습니다.

서비스 소개 및 데이터 제공 웹 사이트 제작

공고 내용에 올라온 내용은 다음과 같습니다.

개요개발중인 서비스는 유전자 분석 서비스 입니다.
필요한 기능은 기본적인 웹사이트 기능이며 특별한 기술이 들어가는 부분은 없습니다.
핵심 서비스는 마이크로 서비스형태로 저희가 나중에 붙일 예정입니다.
필요요소+ 상세 화면 및 기능 기획
+ 시스템 설계
+ PC 웹 디자인 및 개발
+ 서버 구축 및 관리자 페이지 개발
사용 프레임워크저희 팀에서는 기존에 frontend에서는 nuxtjs, vuejs, vuetify를 사용했고 backend는 golang의 echo를 사용했습니다.
데이터베이스는 postgresql을 사용했습니다.
업무범위회원가입, 제품 소개 페이지, 게시판 기능, 특정한 데이터를 잘 보여줄 수 있는 테이블,
별점을 통한 데이터 평가 시스템 등
기타서비스 제작이 끝난다고 해도 실제 제품 출시까지는 오랜 기간이 걸릴 것으로 예상되기 때문에
외주 내용은 비밀에 부쳤으면 합니다.
또한 저희 제품 개요에 대해서 어느정도 설명을 드려야하기 때문에 비밀유지계약서를 작성하길 원합니다.
관련 기술

서울대 유전공학 연구소에서 의뢰한 프로젝트인데 비밀유지협약(NDA) 계약을 맺고 진행하였습니다. 클라이언트가 요구한 사용자 사이트와 관리자 사이트 두 개의 사이트를 만들었습니다.

프런트는 Vue + Vuetify 로 만들었고 백엔드는 Spring Boot으로 진행하였습니다. 서버는 AWS에 포팅하였고 설계, 개발, 배포 까지 혼자서 모두 개발하였습니다. 개발 기간이 25일로 촉박해서 밤새서 개발한 기억이 나네요.

웹 기반 딥러닝 프로그램 프로토타입 제작

제가 위시캣에서 한 첫 프로젝트이면서 지금까지 생각해봐도 가장 난이도가 어려웠던 프로젝트 였습니다. 이 프로젝트도 NDS 계약을 체결하고 진행했습니다. 요구사항은 대용량 이미지 업로드/다운로드 및 그리기 도구 구현, 업로드된 이미지 리스트의 정보 변경 및 필터 기능 구현, 추가되는 정보에 따른 visibility 옵션 구현 등 윈도우 WPF 응용 프로그램을 웹으로 개발하는 프로젝트였습니다.

프런트는 Vue + typescript + vuetify 로 개발하였고 백엔드는 Spring Boot + JNI 연동을 하였습니다. OS는 openCV를 연동해야 해서 윈도우 2000으로 포팅했습니다.

이미지를 불러와서 그 위에 그림을 그리는 부분 그리고 이미지 확대 축소시도 동일하게 위에 그려진 도형이 동기화가 되어야 하는 부분 등 그리기 구현이 좀 쉽지는 않았습니다. 이 프로젝트도 제가 설계부터 개발과 포팅까지 모두 혼자 하였습니다.

위시캣 후기 – 시작이 어렵다

상주 프로젝트를 하면서 실력도 쌓이고 여유가 늘면서 이제 부업 개발을 해봐야 겠다고 생각하고 여러가지 방법을 찾던 중에 위시캣을 접하게 되었습니다. 기획자와 개발자를 연결해 주는 플랫폼은 여러가지 사이트가 있었는데 그 중 위시캣 한군데만 선택해서 해보기로 했습니다.

먼저 로그인을 하고 그리고 프로파일을 등록했습니다. 그리고 프로젝트 찾기를 눌러서 제가 할만하다고 판단되는 프로젝트 몇개에 지원했습니다. 지원을 10개 정도 지원했는데 아무 연락이 없더군요. 먼가 유령사이트인가 하는 생각도 했지만 다시 10개 정도 프로젝트에 더 지원을 했습니다. 이번에는 미팅을 하자는 연락이 왔습니다. 미팅을 한 후에는 프로젝트가 진행이 되겠구나 생각을 했지만 그렇지는 않았습니다. 프로젝트가 성사되지 않았다는 메시지가 오네요. 이렇게 미팅을 2-3번 했는데 진척이 없었습니다. 그래서 위시캣에서 프로젝트 하기는 어렵구나 생각하고 그 후에는 더이상 시도해보지를 않았습니다.

위시캣은 기획자에게 굉장히 유리한 시스템입니다. 기획자가 개발자를 몇명 찍어서 미팅한다고 해도 기획자한테는 전혀 손해가 없습니다. 페이워크같은 회사는 미팅만 하더라도 미팅 비용을 개발자한테 주는데 위시캣은 그렇지 않습니다. 그런걸 악용하는건지 모르겠지만 미팅하러 왔다갔다 하는 시간도 아까운데 개발자 의견만 참고하는 식으로 미팅하러 오라고 하는 기획자도 종종 있습니다. 게다가 프로젝트가 성사되면 개발 비용의 10%를 위시캣에 줘야 합니다. 미팅 등은 좀 보완이 되어야 할 부분이라고 생각되네요.

네이버 개발자 카페에 글을 올려서 부업을 4 ~ 5건 정도 진행을 하였는데, 하다보니 치명적인 단점 몇가지가 발생합니다. 주로 개발을 의뢰하시는 분이 개발 시스템을 잘 모르다 보니 개발을 구두로 설명을 해주시고 제가 기획, 설계, 개발을 진행하는데 개발이 완성되는가는 시점 혹은 결과물을 보시고 이게 아닌거 같으니 다른걸 해달라 혹은 다른 기능을 추가해달라 는 식의 개발 추가 사항을 요청하게 되면 안해줄수도 없고 해줄수 밖에 없는 난감한 사항에 빠지게 되었습니다.

그래서, 개발사항을 계약서에 모두 명시적으로 정하고 더 이상의 개발 추가 사항은 할 수 없도록 하는 시스템이 필요했고 다시 위시켓을 찾게 되었습니다. 이번에는 전략을 좀 바꾸었습니다. 지원자가 좀 적고 개발 난이도가 좀 어려운 프로젝트를 골라서 지원을 해보았습니다. 계약될 때까지 한번 해보자는 생각으로 20 ~ 30 번의 지원끝에 한 건의 미팅이 성사되었습니다. 서울대 내부의 벤처 기업인데 딥러닝을 전문으로 하는 회사였습니다.

미팅을 했는데 그 쪽에서는 저 외에는 다른 지원자와는 미팅을 하지 않았고 그 쪽에서는 제가 프로젝트 수주를 승인하면 진행하겠다는 식으로 얘기를 했습니다. 그래서 저도 고민에 빠졌습니다. 프로젝트 개발 난이도가 높아서 과연 내가 이걸 할 수 있을까. 게다가 비상주 프로젝트라서 상주 프로젝트가 끝나면 저녁이나 주말에 해야 하는데 이걸 정해진 30일안에 할 수 있을까 하는 고민에 다시 빠졌습니다.

개발 내용은 c# WPF로 개발된 윈도우 응용 프로그램을 웹으로 바꾸는 거였는데, 로컬에 있는 이미지를 서버로 업로드 한 뒤에 이미지를 불러와서 이미지 위에 이상한 점이 있으면 도형이나 다각형 선으로 색칠을 한뒤 해당 좌표값을 서버로 보내서 학습시키는 프로그램이였고 서버에서는 해당 좌표를 받아서 openGL과 JNI로 dll과 연동하여 결과값을 학습시키는 것이였습니다. 일반적인 웹개발에 캔버스위에 도형을 그리는 부분이 프런트의 주요 내용이였고 백엔드는 REST API는 기본이고 JNI와 연동하는 부분이 핵심적인 내용이였습니다.

고민을 거듭하다가 처음 시작이 어려운거다 지금 안하면 평생 못할거다. 그러니 시작해보자라고 마음 먹고 계약을 했습니다. 위시켓이 하는 일은 개발 요청 사항을 정리해서 계약서를 작성하고 기획자측에서 개발 비용을 입금하면 에스크로로 가지고 있습니다. 그리고, 개발자가 개발을 완료하면 클라이언트가 개발 요청 사항에 따라서 개발 검수를 하게 되고 개발 검수가 완료되면 위시켓에서 10%를 떼고 개발자에게 개발 비용을 입금하게 됩니다. 위시켓이 하는 일은 계약서 작성과 에스크로입니다.

프런트는 vue와 vuetify로 개발하였고, 백엔드는 spring boot으로 개발하였습니다. 계약은 비밀유지계약서(NDA)로 했기 때문에 회사명은 공개가 어렵고 프로젝트 비용은 500이였습니다. 첫 프로젝트라서 평일 저녁과 심야 그리고 주말 동안 작업을 하였고 약속한 30일 기간안에 개발을 완료하고 위시켓에 수수료 10%를 뗀 450을 입금 받았습니다.

부업으로 용돈을 벌었다는 것보다 어려운 먼가를 이루었다는 성취감이 더 컸던거 같습니다. 밤 늦게도 일하고 공휴일에도 일하면서 힘들었다기보다 공부한다는 느낌이여서 힘들지는 않았고 오히려 재미있었던거 같네요. 물론 안풀리는 부분이 있으면 좀 힘들기도 했지만. 무엇보다 처음에 정한 개발사항들을 개발 완료하고 검수하고 마무리되는 시스템이 좋았던거 같습니다.

개발자 프리랜서 – Q&A

개발자 프리랜서 관련해서 많이 하는 질문에 대해서 전적으로 제 개인적인 의견을 피력해보고자 합니다. 객관적인게 아니라 제 개인적인 의견이라는거를 명심하시기 바랍니다.

Q. 프리랜서로 일하면 임금 체불이나 못받을 가능성이 있나요?

A. 저 같은 경우는 프리랜서 초창기에는 프리랜서 파견업체를 끼고 일을 하였기 때문에 임금 체불이 일어날 가능성이 업었고 업체와 직접 계약을 하면 해당 회사가 어려워지면 임금 체불의 가능성이 있겠지만 저같은 경우는 그런 경우가 한번도 없었습니다. 제가 직장 생활을 할때 프리랜서를 고용해서 일 한 경우를 한번 예를 들어보겠습니다.

프로젝트에 php 개발자가 급히 필요해서 프리랜서를 어렵게 구해서 투입했습니다. 그런데 그 프리랜서가 하는 첫번째 질문이 월급은 제 때 주느냐 였습니다. 그래서 저는 그런 일은 없었고 그럴 일이 없다고 대답해주었습니다. 그런데, 실제 일을 해보니 일의 성과가 나지 않았습니다. 일정이 급해서 그 프리랜서가 몇일 밤을 새서 일을 했지만 도무지 일의 진척이 되지 않았고 업무 관련해서 질문을 몇가지 해보니 그 프리랜서 개발자가 실력이 너무 떨어진다고 판단이 되었습니다. 그러다 보니 회사입장에서는 진퇴양난의 입장이 되었습니다. 밤새서 야근을 했으니 돈을 줘야하긴하는데 일의 성과가 전혀 없으니 주기도 곤란하고. 그러니 불현듯 프리랜서가 첫날 했던 질문이 떠오르더군요. 이 회사는 임금 체불이 없냐고 한 질문이. 그때서야 아~ 이 질문이 이런 의미구나 라는 생각이 들더군요. 저는 임금체불이 일어난다면 50%는 본인한테 있는게 아닌지 한번 생각해봐야 한다고 생각합니다.

아, 실제로 저도 임금체불을 당한적이 있습니다. 제가 풀타임으로 강사생활할 때였네요. 3개월했는데, 강사 월급을 안줘서 12개월이 지나서 제가 임금 체불로 신고를 하고서야 그때서야 지급 받은 기억이 나네요.

Q. 프리랜서의 단점이 중간에 프로젝트가 끊겨서 쉬는 기간이 많지 않나요?

A. 저도 프리랜서 커뮤니티 사이트에서 프리랜서의 단점이 단기 프로젝트를 2 ~ 6개월 수행후에 다음 프로젝트를 구할때 까지 쉬는 기간이 많은거라는걸 본적이 있습니다. 저 같은 경우는 10년 정도 프리랜서로 일하면서 프로젝트가 끊겨서 단 하루도 쉰적이 없습니다. CNS나 SDS 같은 대기업에서 프로젝트를 한번 하게 되면 프로젝트 PM이 프로젝트 계약 종료 후에 그 사람에 대한 평가를 기록하게 됩니다. 일을 잘 못했다면 평가가 안좋겠조. 그러면 그 사람은 다음에 그 기업에 다시 일하게 되면 해당 PM은 먼저 평가부터 살펴봅니다. 평이 좋지 않으면 당연히 뽑지 않겠조. 이렇게 본인의 실력이 부족해서 프로젝트 수행을 못하게 되면 시간이 지날수록 정말 급구하는 프로젝트에만 투입되고 점점 프로젝트 끊기는 기간이 늘어날겁니다. 실력이 좋다면 예전 프로젝트를 했던 사람들한테 다시 연락이 오고 프로젝트 종료전에 이미 예약이 되어서 갈 데가 정해질겁니다.

그래서 저는 프로젝트가 끊긴다면 먼저 자기 자신에게 문제가 있는지 살펴봐야 합니다.

Q. 프리랜서 개발을 하면 야근이 많나요?

A. 회사에서 정말 급한 일정이 생겨서 야근을 하는 경우가 아니라면 야근을 자주 한다면 그건 본인의 실력이 부족해서 야근을 하는 경우라고 저는 생각합니다. 업무에 대한 문제는 누구나 부딪히는 것이고 그 업무에 대한 문제 해결 능력은 영어라든가 프로그래밍 언어 같은 기본기만 있다면 충분히 해결할 수 있습니다. 애자일 개발방법론으로 개발을 진행하면 단기간 스프린트 기간동안 개발자마다 해야 할 일들이 정해져있고 본인의 역량에 따라서 훨씬 더 여유롭게 일할 수 있다고 생각합니다. 개발 후 QA 기간에 야근한 기억 빼고는 1년 통틀어서 야근을 한 경우가 손에 꼽을 정도입니다. 저는 SI 개발을 주로 해서 만일 SM 이라면 경우가 다를 수도 있겠지만 그렇게 차이는 없을거라 생각되네요.

Q. 프리랜서 단가는 어떻게 되나요?

A. 정부에서 정한 2018년 SW 노임 단가를 보면 아래와 같습니다.

2018년 고급 기술자 월 평균 임금이 약 635만원입니다. 이 임금은 갑을병정 관계에서 갑이 을에게 주는 단가입니다. 예를 들어서 LG전자, 삼성전자 => LG cns, 삼성 sds => 파견업체 => 프리랜서 의 관계에서 갑에서 을로 지급되는 임금입니다. 그리고 단가를 계산시에 임금에 재경비가 포함됩니다. 대략 재경비를 100% 를 잡게 되면 곱하기 2가 되니까 1200만원 정도가 되겠조. 그러면 을이 받아서 거기서 평균적으로 20% 를 제하고 파견업체에 지급됩니다. 그러면 800 정도가 되겠조. 그러면 파견업체가 150 정도 제하고 650 정도를 지급합니다. 이 금액이 실제 프리랜서 고급 개발자가 받는 임금이라고 생각하면 됩니다.

물론, 이 계산이 틀렸을 수도 있겠지만 저는 대기업에서도 일한 경험이 있고 단가 책정도 해본 경험이 있어서 대략적으로 저렇게 계산된다는 것을 참고하시면 될거 같습니다. 그래서 실제 프리랜서의 단가는, 저한테 하루 평균 4 ~ 5통의 프로젝트 소개메일에서 언급되는 단가를 참고로 책정해보면, 초급 400 ~ 450 중급 500 ~ 550 고급 600 ~ 650 정도입니다. 파견업체를 통해서 받는것은 이렇게 한계가 있습니다. 단가를 더 올리기 위해서는 파견업체가 아니라 프로젝트를 수주 받아서 직접 수행하는 업체와 직접 계약을 해야 하고 본인의 능력을 보여줘야 가능합니다.

Q. 프리랜서 개발자의 장점은?

A. 개인차가 크니 제 개인적인 견해만 얘기하겠습니다. 저는 회사 생활도 11년을 했습니다. 회사 생활을 하면 일과 직접적인 관련이 없는 다른일들을 마지 못해서 하는 경우가 굉장히 많은데 프리랜서는 개발이라는 일에만 집중할 수 있어서 그게 제일 좋은거 같습니다. 회사 생활을 하면 전화, 이메일, 회의를 하면 거의 하루가 다 가고 연초에 목표수립, 연말에 평가 잦은 회식 등 사람 관계도 일못지 않게 중요한데 프리랜서 개발은 소프트웨어에만 집중할 수있다는거.

Q. 종합소득세와 4대 보험은 어떻게 되나요?

프리랜서는 5월에 종합소득세 신고를 해야 합니다. 저는 세무사한테 안 맡기고 세무 비용을 줄여볼려고 세무 공부를 한 적이 있었습니다. 결론은 자기가 잘하는 분야에만 집중하자입니다. 세무는 세무사에게 개발은 개발자에게. 물론 세무 공부를 한 것은 지금도 아주 도움이 되고 개발자도 세무 공부를 꼭 해야 한다고 생각합니다.

개인사업자를 내는게 유리한가는 소득이 많으면 개인 사업자를 내는게 유리합니다. 왜냐하면 개인사업자가 되면 부가가치세에서 이득을 좀 더 볼 수 있습니다. 부가가치세는 7월과 1월에 해야 하고 4월과 10월에 반기 납부를 합니다.

매출이 많아서 저한테 법인으로 하라고 하시는 분이 계셔서 세무사랑 상담을 했더니, 법인을 하게되면 돈을 마음대로 가져다 쓸 수 없는 구조라서 매출 5억이 넘지 않는 이상 개인사업자가 낫다고 합니다.

건강보험료는 재산 + 소득으로 계산하기 때문에 집이 있고 자동차가 많으면 많이 내야 합니다. 국민 연금은 타협이 가능하다고 합니다. 소득이 불규칙하니 10만원만 내겠다 이런식으로. 가장 좋은 방법은 4대 보험을 내주는 업체를 찾아서 정규직으로 등록하는 방법입니다. 해당 업체에는 개발을 좀 도와주고 업체는 4대 보험을 내주는 식으로 상부상조할 수 있습니다. 그렇게 되면 건강보험료는지역으로 나오지 않고 직장으로 나가게 됩니다.

개발자 프리랜서 경험 공유 3 – 상주와 비상주의 조화

지금까지는 프리랜서 파견업체를 통해서 프로젝트를 소개를 받았는데, 이번에는 프로젝트를 직접 수주받아서 일을 하는 개발업체와 직접 계약을 하게 되었습니다. LG cns와 프로젝트가 갑자기 종료가 되어서 다음 프로젝트를 구하기가 어려울것이라 생각했는데, 사람인, 잡코리아에 이력서를 올리자마자 연락이 와서 그 다음날부터 바로 출근을 했네요. 그런데 역시나 이렇게 급구하는 프로젝트는 먼가 있긴 있네요. 제 프로젝트 경력에 IOT를 적었는데 그걸 보고 연락이 왔었고, 홈 IOT 를 우리나라에서 제일 먼저 상용화를 한 회사가 LG UPLUS인데 여기 1차 협력 업체 였습니다.

여기서는 oneM2M이라는 프로토콜로 홈 IOT를 구현하였고 이 회사에서 개발한 oneM2M 라이브러리가 웹 용인데 이걸 모바일에 넣도록 해달라는게 제 업무였습니다. 처음에는 별로 어렵지 않게 생각하고 시작했는데, 실제 해보니 그렇지는 않았습니다. 제가 안드로이드 경험과 IOT 경험이 모두 있으니 저한테 연락이 온것인데, oneM2M 프로토콜에서 JaxB라는 XML 포맷을 사용했는데, 이 라이브러리가 너무 무거워서 모바일에서 아예 스펙이 빠져있는겁니다. 내부 개발자는 아예 불가능하다고 얘기하고 있었고 일정이 빡빡하니 모바일로 새로 개발하는것보다 웹으로 개발한것을 모바일로 전환하는게 비용과 일정이 줄어드니 저한테 해당 업무를 맡긴것이긴 한데 이걸 제가 할거라고 기대하고 저한테 준것인지 의문이 드는 상황이였습니다.

jaxB를 모바일에서 사용하는 방법을 구글링해서 시행착오를 거치면서 거의 2주 걸려서 모바일용 라이브러리를 완성하였습니다. 이렇게 어려운 일을 하고 일을 하기가 훨씬 수월해졌습니다.일단 능력을 인정 받으니 저한테 별로 터치하는것도 없고 좀 자유롭게 일을 했던거 같습니다. 여기서는 oneM2M이라는 프로토콜을 이해해야만 개발이 가능했고, old한 기술들을 사용하고 있었지만 그냥 저는 그 기술들에 맞춰주고 말았습니다.

그러다가 1년정도 지나서 예전에 LG cns에서 홈 IOT 프로젝트를 했던 PM님한테 다시 연락이 왔습니다. 이번에는 스마트 팩토리 IOT를 한다고 다시 와달라고 하네요. 단가도 더 올려준다고 하니 저는 가지 않을 이유가 없었고 다시 cns로 가서 일하게 되었습니다. 이 때 받은 단가는 700입니다. 희안하게 프리랜서 급여가 10년전이나 지금이나 별로 차이가 없어서 단가 인상이 된적이 그전에는 한 번도 없었네요. 물론 이 금액에서 파견업체한테 3%를 떼고 받았습니다. 이렇게 수수료를 적게 뗀 이유는 파견업체가 저한테 프로젝트를 소개시켜준게 아니라 제가 파견업체를 골랐기 때문입니다. 이 프로젝트에서는 많은 공장들의 센서 데이터들을 모아서 분석하는 솔루션을 만드는 프로젝트 였습니다. 사용한 기술 스택은 빅데이터를 구축하는 hadoop, storm, kafka, Redis 등이였고 DB는 oracle, mariadb 그리고 실시간성 데이터인 influxDB 등을 사용했습니다.

여기서 1년정도 프로젝트를 진행하다가 해당 프로젝트가 다른 사업과 영역이 겹친다고 다시 중단되었습니다. 이번에는 프로젝트 종료 1개월 전에 통보를 받아서 사람인과 잡코리아에 이력서를 올리고 여러 업체에서 제안을 받고 회사 위치가 집에서 가깝고 프로젝트 업무내용도 마음에 드는 걸로 골라서 갈 수 있었습니다. 그리고 파견업체가 아니고 프로젝트를 수주한 업체라서 중간 수수료 없이 단가를 받게 되었습니다. 그리고 거기서 1년정도 일아하다가 다시 cns PM님한테 연락이 왔습니다. 스마트 팩토리 IOT가 사업팀이 합쳐지면서 다시 PM을 맡게되었으니 다시 와달라고. 그러면서 단가를 현재 받고 있는거보다 더 올려주겠다고 합니다. 이 때 받은 단가는 800입니다. CNS에서 프리랜서 한테 지급되는 최고 단가가 700정도라서 저한테 800을 지급하기 위해서는 내부적으로 기안을 다시 했다고 합니다. 처음에는 제가 cns에 기록된 평가가 좋고 그리고 학력이 대학원이라서 840으로 기안했다고 합니다. 그랬더니 심사하는 부서에서 다른 개발자보다 단가가 너무 높다고 800으로 깍였다고 합니다. 아마 지금도 cns에서 이 단가보다 많이 받는 사람은 없을겁니다. 물론 저는 제가 받은 단가보다 일해준게 더 많다고 생각합니다. jquery 기반으로 된 작화화면이 3명이서 3년 걸려서 개발한 솔루션인데 제가 혼자서 3개월 정도 작업하면서 vue 기반으로 80% 정도 전환 작업을 하였고, 개발하다가 막히는 부분은 제가 다 해결해주었습니다. 저만 프리랜서였고 나머지 분들은 다 cns 직원이였습니다.

비상주 프로젝트 개발 부업은 카페 활동을 넘어서 위시캣 같은 아웃소싱 플랫폼을 통해서도 영역을 넓혀 갔습니다. 비상주 프로젝트를 통한 기술 스택도 백엔드는 nodeJS, sequelize or typeORM 같은 ORM 파이썬 장고, 플라스크까지 영역을 넓혀 갔고 프런트는 angular 부터 react, vue 까지 그리고 sass 같은 퍼블리싱, ant design, Material UI, bootstrap UI 같은 CSS 프레임웍까지 영역을 넓혀 갔습니다.

상주 프로젝트보다 이제는 비상주 프로젝트의 경력이 더 많아지고 기술 스택이 많아지다보니까 이제는 사람인이나 잡코리아 통해서 연락오는 케이스가 점점 많아졌고 이제는 상주 프로젝트에서 비상주 프로젝트의 기술 스택을 그대로 사용해서 풀스택 개발자로 일하고 있습니다.

학원 강의도 처음에는 자바, 안드로이드로 시작해서 angular, 그리고 지금은 리액트 강의를 하고 있는데 가끔씩 강의를 들으신 분들 통해서 개발 의뢰가 들어오거나 아니면 컨설팅 요청건이 들어오기도 합니다. 부업이 4 ~ 5개가 겹치면서 2020년 3월에 월 기준 최고 매출을 기록하기도 했습니다. 상주근무 800 + 위시캣 비상주 800 + 강의와 컨설팅 등 기타로 400해서. 물론 최소는 아무 부업도 없을때 상주 프로젝트 비용 800 이긴 합니다.

제가 처음 프리랜서를 시작할때는 과연 내가 프리랜서를 몇살까지 할 수 있을까? 라는 의문을 많이 가졌습니다. 지금은 60 넘어서까지도 충분히 프리랜서 생활이 가능하다고 생각이 드네요. 상주가 아니면 창업이나 비상주 등 본인이 개척하기 나름인거 같습니다.

개발자 프리랜서 경험 공유 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 등으로 경험이 계속 확대 되는 시기 였습니다.