본문 바로가기

IT

[펌] 개발자, 시작하는 것이 고민될 때...

출저: 개발자, 시작하는 것이 고민될 때...

 

개발자, 시작하는 것이 고민될 때...

개발자의 장점과 단점 | 한 번쯤은 내가 일하는 것이 너무 반복적이고 재미가 없고 새로운 일을 꿈꾸어보다가 문득, 개발자로 사는 것은 어떨까? 꿈꿔보신 분들이 계실지도 모르겠네요. 그리고 이미 이 세계에 발을 들여놓았거나 학생 입장으로 많은 환상 속에서 여러 가지 소문들과 함께 개발자를 꿈꾸는 사람들까지 또, 이제 막 개발자를 꿈꾸기 시작한 사람과 이미 꿈꾸고 계신 분들

brunch.co.kr

 

한 번쯤은
내가 일하는 것이 너무 반복적이고재미가 없고 새로운 일을 꿈꾸어보다가문득,
개발자로 사는 것은 어떨까?꿈꿔보신 분들이 계실지도 모르겠네요.
그리고 이미 이 세계에 발을 들여놓았거나학생 입장으로 많은 환상 속에서여러 가지 소문들과 함께 개발자를 꿈꾸는 사람들까지
또, 이제 막 개발자를 꿈꾸기 시작한 사람과이미 꿈꾸고 계신 분들까지,
이제 예전의 전산실을 생각하던 풍경과는 달리개발자의 삶에 대한 시각들이 많이 바뀌고 있습니다.
개발자로 산다는 건 어떤 것인지개발자에 대해 오해하고 있는 점이나실제 개발자에게 필요한 것은 무엇이고장점은 무엇이고단점은 무엇인지
말씀드려보려 합니다.
물론 모든 개발자를 대변할 수 없고현실과 다른 부분도 있습니다만,
현직에서 겪으면서 바라본 관점과학생 때의 관점, 그리고 실제로 필요한 정보에 대해서풀어서 써보려고 합니다.



꿈꾸는 개발자

야근 없고 자유롭고 프리 한 개발

 몽상은 아닙니다. 제가 꿈꾸었던 개발자는 사실 좀 그러했습니다. 비지니스 캐주얼 복장도 아니었고, (요샌 비케라고 하던데요?) 그냥 후드티에, 반바지, 그리고 슬리퍼를 신고 출근하는 모습을 그려보곤 했습니다. 아마 개발자를 처음 생각해 보거나 상상하신 분들은 그러하실 수 있습니다. 하지만 처음 출근한 이후에, 이 모든 것들이 동일한 요건이 아니라는 것을 알았습니다. 고객사(현업)이라고 불리는 사람들의 복장 문화에 익숙해져야 했고, 수많은 다른 개발자들을 만나다 보니, 각자의 사정에 따라 복장도 다르고, 규율도 다르고, 그리고 문화도 다르다는 것을요. 어찌 되었든 간에 야근을 안 하려고 발버둥 쳤습니다만, 상황이 여의치 않는 경우도 있습니다. 제가 야근 안 하기로 마음먹고 출근한 지 6개월째 되던 날, 야근을 시작했거든요...

뭔가 막 멋있게 해킹하는 장면

 사실 학생들은 이런 장면을 많이 떠올리곤 합니다. 영화나 드라마 같은 것들이 망쳐놨습니다. 사실 뭐 망칠 것도 없죠. 뭐가 없었는데요.. ㅎ 그럼에도 불구하고 많은 어린 친구들이 꿈을 찾아서 헤맬 때 등장하는 수많은 단어... 보안전문가입니다.. 이게 꿈을 꾸어도 좋지만, 실제로 보안에서 하는 일과 자기가 하고 싶은 일이 얼마나 비슷한지는 알고 접근하는 것이 좋을 것 같습니다. 물론 보안 쪽으로도 잘 나가는 경우가 있고, 국정원에서 일하는 친구부터 시작해서 다양한 보안 업무들이 있습니다. 사소한 일로는 WireShark와 같은 오픈 패킷 분석 프로그램부터 시작해서 트래픽을 모니터링하는 일부터 시작해서, CCNA, CCNP 등을 따고 인프라 영역이나 TA 가 되는 경우도 있겠죠. 하지만 학원에서 이야기하는 것들과 본인이 생각하는 일, 그리고 뭔가 그렇게 막 멋있게 그렇게 일하는 경우는 많지 않습니다. 그리고 잘 생각해 보시면 법적으로도 문제 소지가 많아요. 곰곰이 생각해 보시길!

카페에서 코딩

 사실 카페에서 코딩하는 개발자가 많은 것은 사실입니다. 이 카페에 있는 개발자 중에는 사실 학생들인 경우들도 있고, 직장에서 근무하다 잠시 바람 쐬러 나온 개발자가 아니라, 그냥 휴가 중이거나, 비상주 프리랜서 개발자일 수도 있습니다. 하지만, 점차 다양한 공간에서 개발일을 할 수 있게 되다 보니 카페 코딩도 일상이 되어가고 있습니다. 모각코라는 문화가 뜨고 있습니다!

해외에서 코딩

 이제 디지털 노마드라는 말은 매우 자연스럽게 사용되는 용어입니다. 디지털 유목민처럼, 장소와 때를 가리지 않고 일을 할 수 있는, 시대를 의미합니다. 개발자를 생각하면 해외에서도 코딩할 수 있습니다. 이제 몇몇 회사들은 100% 자택 근무를 가능하게 하고 있습니다. 우리가 해외에서 근무해도 됩니다. 실제로 행아웃으로 함께 회의하고, 협업을 해보았습니다. 다양한 공간에서 회의할 수 있고 소통도 가능합니다. 다만 가까운 데서 소통하는 것보다는 확실히 소통이 느리긴 합니다만, 이렇게 일이 가능하다는 게 개발자의 묘미겠죠?

자유로운 출퇴근

 회사원이라고 하면, 정해진 시간에 나가서, 시계를 바라보다가 딱 정시가 되면 나오는 회사원의 삶이 이곳저곳에서 다루어집니다. 물론 야근은 어느 드라마에나 나오는 단골이죠. 특히 공무원을 생각하면 출퇴근이 매우 일정한 생활을 상상하게 됩니다. 한편으로 개발자의 경우는 프리한 느낌이 듭니다. 밤샘 코딩을 하다가, 뉘적뉘적 일어나서 11시 12시쯤 출근하며, 밥 먹고, 다시 일하면서 또 늦게까지 작업하는 모습들을 많이 상상하실 것입니다. 첫 회사는 8 - 5 제8시 출근 5시 퇴근이었습니다. 근무지가 바뀌면서 9 -6 제9시 출근 6시 퇴근이었습니다. 스타트업에 이직해서는 9시 30분 출근 6시 반 퇴근이었습니다. 확실한 것은 삶의 만족도는 9시 30분 출근 6시 반 퇴근이 가장 만족도가 높습니다. 6시에 일어났다가 8시에 일어나는 것은 큰 차이가 있습니다. 피부도 뽀송뽀송.... 꿈꾸는 것은 자율 출퇴근이지만, 회사의 사정에 따라 매우 달라진다는 점.

빅데이터를 소유하며 모든 정보를 자유롭게 다룸

 영화의 한 장면 마이너리티 리포트를 보신 적이 있으실 겁니다. 정보가 집약화되고, 모든 정보를 소유한 회사나 정보들을 토대로, 분석의 시대가 도래합니다. 이처럼 데이터 전문가라는 영역이 매우 활발하게 소개되고 있습니다. 개발자는 그럼 데이터를 다루는 입장에서 데이터 전문가라는 이름을 붙일 수 있을까? 데이터의 분석, 수집, 가공 등등 데이터만을 다루는 직종들과 개발자는 조금 분리가 되어있습니다. 그렇기 때문에 데이터 전문가를 꿈꾸면서 개발자를 생각하는 건 또 다른 문제가 될 수도 있겠죠.

지나가는 사람 핸드폰 들여다보기

 해킹과 같은 느낌입니다. 지나가는 사람의 핸드폰을 도청한다던지, 와이파이로 다른 사람의 노트북을 들여다보고, 혹은 뭔가 정보들을 가지고 노는 영화 속 인물을 보면서, 개발자를 하면 그런 입장에서 뭔가 할 수 있지 않을까 하는 기대감이 들기도 할지도 모릅니다.


현실의 개발자

매일 야근 (아닌 경우도 많음)

 매일은 아니더라도, 현실의 개발자는 이상적인 출퇴근 시간을 가지는 개발자와 달리 회사원과 동일하게 혹은 더 많은 시간 야근을 하기도 합니다. 특히나 개발자의 업무 특성에 따라서 야근을 밥먹듯이 한다. 라는 표현에 적합한 경우가 있기도 한데요. 서버 개발자. 특히나 요샌 클라우드 서비스를 토대로 어디서나 접속하거나 접근할 수 있고, 물리 서버가 죽었을 때, 출근해서 서버를 올려야 하는 경우들이 많이 없지만, 실제로 회사 내에 서비스를 운영할 때는 가까이 사는 사람이 가장 먼저 출근해서 서버를 올려야 했습니다. 그렇기 때문에 프론트 개발이나 퍼블리싱 등등 그냥 개발에 관여하거나 프리랜서의 경우는 지나칠 수도 있지만, 회사의 핵심 관계자, 혹은 서버 개발자, 인프라 담당자 등등은 잦은 서버의 다운으로 야근에 시달릴 수도 있습니다.
 그리고 런칭 시점이 다가오는 순간에는 야근에 시달릴 가능성이 농후합니다. 물론 계획된 업무량보다 훨씬 더 빠르게 일을 처리할 수 있다면 다행이지만, 사람마다 그 일정이라는 게 매우 기준치가 다르다 보니, 기준을 채우지 못하면 고스란히 그 책임과 업무량은 서로에게 배분되게 되어있습니다. 일종의 복불복이죠...
물론 그렇다고 해서 모든 개발자가 매일 야근을 하는 것은 아닙니다. 케바케와 부바부, 요새 표현이지만, 널널하고 좋은 곳도 많습니다. 다양한 방향성이 있습니다.

복장은 프리

 실제로, 비지니스 캐주얼이라고 했지만, 넥타이를 하지 않아도 되고, 꼭 와이셔츠는 아니어도 된다는 등, 어느 정도는 편한 복장이었습니다. 그리고 실제로 여러 회사들을 보면 복장 가지고 뭐라고 하는 회사는.... 있긴 합니다. 특히 반바지. 그 외의 복장으로는 터치가 심하지 않은 듯하네요. 양복 같은 것들은 사실, 결혼식 갈 때 이외에는 거의 입을 일이 없어서, 좋은 점은 약속이 있더라도, 마치 회사에 가지 않은 것처럼 자연스러운 복장으로 약속과 모임에 갈 수 있습니다.

해킹은커녕 보안이 계속 뚫림, 보안 처리 급급

이상적인 개발자는 해킹을 꿈꾸어 볼 수도 있었지만, 실제로 개발일에 있어서 여러 가지 인젝션에 대비해야 한다던지, 시큐리티 같은 것들을 토대로 보안 설정 처리하는 것에 급급합니다. SSL 인증서를 넣는다던지, 혹은 인프라 담당자의 경우는 여러 가지 공격이 오는지 등을 체크하면서 방화벽을 하나씩 열어주어야 하는 귀찮은 절차들을 진행하게 됩니다. 즉 해킹 같은걸 하는 것보다도, 보안이 허술 한 곳이 없는지 체크하는 일이 더 많다는 것이죠.

회사에서 코딩

 실제 개발자의 경우 업무는 코딩, 설계, DB 등등 다양한 코딩의 업무가 될 가능성이 높습니다. 그러다 보니 다른 여타 PPT 나 엑셀 같은 문서 작업보다는 개발 업무에 몰두하다 보니 업무 능력 중에 코드 작성 능력만큼 다른 문서 작성 능력이 향상되지는 않을 수도 있습니다. 물론 개발보다 운영 업무에 치중된 경우는 이 마저도 없을 수도 있습니다.  

집에서도 코딩

 물론 대부분의 회사는 집과 회사의 일을 분리하고 집까지는 일을 가져가지 않게 합니다. 보안 때문이기도 하지만, 회사의 일을 집에서 까지 처리하라고는 하지 않는데요. 요새 포괄임금이다 뭐다, 그리고 스타트업이나 중소 중견의 경우는 때때로 집과 회사를 분리하지 않고 일을 가져가게 하기도 합니다. 아니면, 시키지 않았지만 짧은 업무 기간 때문에 집까지 가져가기도 합니다. 업무가 능숙해지지 않을 때는 익숙해지기 전까지는 생각보다 개발 기간이라는 것이 산정되지도 않지만 꽤 오래 걸리기 때문입니다.

자유로운데 일을 집까지 가져가는 경우도 있음

 어떤 회사의 경우는 자율 출퇴근이지만 집까지 일을 가져가야 하는 경우도 있고, 빨리 퇴근은 하되 집에서도 일을 해야 하는 경우도 있습니다. 원격 근무가 가능하다는 점은 장점이기도 하지만 단점이기도 합니다. 어디서나 일을 할 수 있다는 건 어디서나 일을 시킬 수도 있다는 것이기 때문입니다. 대신 프리랜서라고 생각해보면, 늘 어디서든 돈을 벌 수 있다는 소리가 되기도 하겠죠? :)

빅데이터가 문제가 아니라 가끔씩 소스가 날아감

 꿈꾸는 것은 빅데이터 같이 데이터를 가지고 노는 것을 꿈꾸지만, 현실은 소스코드를 반영하지 못한 채 PC가 부팅되면서 벌어지는 웃지 못할 해프닝 들입니다. 현실적인 것은 반영하지 못한 소스들 그리고 Git에 올렸을 때 여러 사람의 소스와 충돌 나면서 벌어지는 Conflict 상황입니다. 어디서 꼬인 건지 누가 잘못한 것인지.. 그나마 svn에서는 이런 충돌 문제는 개인이 해결하면 되는데, 종종 Git의 경우는 꼬인 소스를 다시 서버에 올리면서 벌어지는 웃지 못할 재작업들입니다. 웃어야 할지 울어야 할지... 종종 일어나는 일...

핸드폰 해킹이 문제가 아니라 마감이 코앞

 뭐 핸드폰을 해킹한다 뭐 한다 이런 게 중요한 게 아닙니다. 당장 마감이 코앞입니다. 일정이 코앞입니다. 눈에 보이는 게 없습니다. 대학교 마감도 이렇게 심장이 쫄깃하지는 않습니다. 마감이 현실입니다.

영화를 보면서 개발자 묘사할 때마다 감탄(저런 식으로 말이 안 됨)

 영화를 보면서 개발자가 되기 전에는 우와우와 감탄하지만, 개발자가 된 이후로는 우와우와 똑같이 감탄하지만, 정작 감탄하는 이유가 다릅니다. 개발자가 아닐 때 감탄하는 이유는 멋있어서 이지만, 개발자일 때 감탄하는 이유는 어떻게 말이 안 되는걸 저렇게 표현했을까? 막 리눅스 들어가서 뭐 이것저것 하는데 해킹이 다 되고 막 보안이 다 뚫리고, 뭐 위성 접근해서 제어하고 등등... 흠... 영화가 사람들을 망쳐놨네요 ㅠ


직장인과 개발자의 차이

매일 새로운 것은 맞음

 일단 업무에 있어서 루틴 한 업무는 없다고 보면 됩니다. 물론 개발이라는 것도 한편으로 보면 비슷한 원칙과 로직이 있습니다. 개발 회의 > 일정 > 개발 양 산정 > 개발 배분 > 개발 시작 > 개발 중간 점검 > 소스 반영 > 소스 리뷰 > 문제 체크 > 테스트 > 릴리즈, 러프하게 작성을 했는데요. 개발에 있어서 어느 정도 기획이 진행되었다면, 그 개발에 따라서 일을 진행하는 부분은 새로움은 없습니다. 어느 정도는 예측 가능한 업무들인 상황인 것입니다. 다만, 개발에 있어서 늘 이슈들이 존재하는데, 그런 이슈를 해결하는 과정들이 새로움입니다. 어떤 업무는 아예 처음 해야 하는 업무도 있고, 배워야만 할 수 있는 업무들도 있습니다. 이런 새로움 들은 존재합니다.

퇴근 시간 예측이 불가한 경우가 많음

 여느 회사가 퇴근을 예측할 수 있을까요? 팀장님의 퇴근시간이 우리의 퇴근 시간이에요 ---..
 사실 뭐 개발자라고 해서 뭐 다를까 싶습니다만, 좋은 회사일 수록 계급의 구조와 무관하게 각자의 업무와 업무 할당량에 따라서 퇴근 시간이 달라집니다. 하지만 경직되어있고, 조직적이고 상하관계까 뚜렷한 곳일수록, 업무의 양, 능력에 따라서 퇴근시간이 결정되는 것이 아니라, 오직, 윗사람의 눈치 여부에 따라서 퇴근시간이 결정됩니다. 그리고 그것을 비롯 무시하고 퇴근을 감행했다고 하더라도, 그 결과는 고과라는 처참함으로 다가오기 마련이죠. 개발자가 된다고 해서 그것이 달라질 것이라고 생각하신다면 오산입니다. 물론 약간은 더 개인화되고, 개인의 의견을 존중하지만, 퇴근 시간을 예측할 수 있다는 것은 그만큼의 자기 일에 대한 어느 정도 명확함이 생긴 이후입니다. 이 일을 얼마의 시간 동안 끝내겠어. 라고 예측하는 경우는 매우 드문 경우입니다. 일정을 예측하는 사람, 그리고 그 일정을 맞추는 사람이 그 실력을 대변합니다.

일정이 제멋대로인 경우가 많음

 회사에 입사해서 제일 처음 궁금했던 건, 연봉 테이블보다(물론 이게 제일 궁금합니다. 자기 회사 연봉 테이블) 고과에 대함 체계와 어떤 방식으로 평가를 받는지에 대한 의문이었습니다. KPI라고 본인 개인의 성과 지표를 작성하고 그것에 대해서 매년 자기 스스로를 어필하게 하는 방식인데 개인에 대한 셀프컨트롤이 얼마나 잘되어있는지, 어떤 역량을 스스로 높이려고 노력했는지 등등이 지표가 되었는데, 개발 역량의 경우는 표현이 어렵기 때문에 실제로 개발을 잘하지만 문서작성이나 자기 어필을 잘 못하는 동료는 고과에서 누락되는 경우도 있었습니다.
이처럼 일정도 조율이라는 차원과 현업의 마음이 합쳐져서 일정이 빡빡하기도 하고 여유롭기도 하다는 것이 함정입니다.
어느 정도의 일정 가이드라인이 있긴 해도, 이런 일정이 시키는 사람의 생각에 따라 뒤죽박죽 하기 때문에 예측이 더 불가능한 부분도 있습니다. 따라서 연차가 쌓일수록 개발양을 보고 일정을 측정해서 해당 일정에 대해 설명할 수 있도록 표현하는 능력도 매우 중요한 능력중에 하나가 되었습니다.

진입장벽이 높음(업무, 개발)

 회사원이면 아시겠지만, 까라면 까야합니다. 이점은 개발자나 일반 회사원이 큰 차이가 없습니다. 문제는 서로 같은 일반인인 경우에는 생각하는 부분에 큰차이가 없고(상사와의 생각에 큰 갭이 있는건 사실입니다) 그나마 일정이 말이 되는 경우도 있습니다.
 개발의 경우는 보통 새로운 기술을 배우는 시간이라는 것이 필요합니다. 보통 러닝커브(배우는 시간) 이라 부르는데, 이 시간을 투입할 수 있는 여력이 있는 회사가 있는 반면, 그것을 할 수 없는 회사도 있습니다. IT 회사의 경우 특히 IT로 시작해서 커진 기업들의 특성은 IT에서 기술의 중요성을 절실하게 알고 있다는 점입니다. 그렇기 때문에 새로운 기술의 적용이나 라이브러리의 교체등등에 크게 변경하는 것을 두려워하지 않습니다. 하지만 금융, 제조 등등 기능이 중요한 회사의 경우는 괜히 소스를 변경했다가 발생하거나 벌어질 일들을 두려워합니다.
흔히 레거시라고 부르는 꽤 오래된 소스들 중에는 이미 라이브러리의 개발이 멈춘곳도 있고 없어진 회사도 있고 만든 개발자를 절대 찾을수 없는 경우도 있기 때문에 새로 만들 생각을 하지 않는 이상 절대 손을 대지 않기도 합니다.
 새로 만드는건 돈이 드는데, 그래도 그 새로 만들도 난 다음에 매출의 증가로 당장 이어지지 않기 때문에 쓸데 없는 개발 공수 낭비로 보기 때문인데요. 다만, 너무 오래되서 절대 못쓴다라고 이야기가 나오면 차세대라는 이름의 리뉴얼 프로젝트를 통해서 기술을 업그레이드 하기도 합니다. 그때까진 참으시는 것도...
 중요한건 기술이라는 효용이 각각 다르기 때문에 이직을 하더라도 또 새롭게 배워야 할수 있고 회사마다 요구하는 기술 스펙이 다르기 때문에 하나의 언어만 생각하는 경우는 생존이 어려울 수도 있습니다.
 개발자가 힘든 이유중에 하나는 한국어 하나 배우기 힘든 곳에서 영어까지 겨우했는데 이제와서 불어, 독일어, 스페인어도 하라니... 뭐 언어 규격이 비슷하니까 대충 이해가지 않냐고?! 이렇게 될 수도 있습니다. Php 하다가 자바 스프링하라고 하고, 갑자기 jsp만 줄 하다가 vue가 뜬다고 프론트할 줄 알테니 vue로 개발하라고 하고 이렇게 하루 아침에 뭔가 다른걸 습득해야하는 상황이 옵니다.

해야할 일이 많음

 배움이 끝이 없듯, 할 것도 많습니다. 회사원의 경우, 업무만을 생각하면 될 경우가 있는데, 개발을 하는 입장에서는 개발이 곧 업무이지만, 가끔은 데이터 마이그레이션도 해야하고, svn이나 git을 관리할 때도 있고, 사람을 관리하거나, 디비가 꼬이면 디비를 관리해야 할 수도 있습니다. ERD가 필요하다고 하면 설계 문서도 작성해야하고 API 문서가 필요하다고 하면 문서도 써야하고, 주석처리나 기술규격, SNS 로그인도 생각해야하고, 알람기능 같이 기본적인 기능까지도 생각해야하기도 합니다. 이 모든 일정에 대해서 고민이 안된 채로 뭔가 일정이 떨어지면 이게 밤을 새서 될 문제인가 멍하고 하늘을 바라보기도 하는 거죠. 특히 개발을 잘 모르는데, 무조건 시키면 다 되는 것으로 여기는 사람과 만났다면 진짜 도주가 필요할 수도 있습니다.
 다만 내성이 중요하긴 합니다. 내성이 생기면 이런 모든 일정들은 비용으로 머릿속에 산정되어서 이야기 하게 되니까요. 내성이 없을땐 원래 개발자가 다 그런건지 누가 내대신 대표에게 말해줄 순 없는건지 심각하게 고민하게 됩니다.

성취감이 있음

그래도 좋은 점이라면 성취감입니다. 일이 해결되는 순간 찾아오는 버그가 없어지고, 문제라고 여겼던 것들이 풀릴때의 쾌감은... 그게 없다면 이 길에 대해 좀 더 고민해 보심이 좋을 듯하네요.

운이 좋다면 기회가 더 열리긴함

 어떤 직장이든 일을 잘하면 기회가 열리긴 합니다. 공부를 잘하는 것과 일을 잘하는것에는 차이가 있는데 공부는 그 공부의 양을 내가 설정할 수 있고 기간은 그렇게 중요하지는 않으며 정확하기만 하거나 암기할 수 있으면 됩니다. 일이라는 것은 내가 중요한 것이 아니라 상대가 더 중요합니다. 내가 못해도 그 상대의 관점에서 최대한 할 만큼의 노력을 다해야하고 상대의 일정을 맞추려고 해야하고, 상대가 가지고 있는 생각을 바꾸지 못한다면 그 생각의 기준에 맞추어 주어야 합니다. 이 윗사람의 마음을 맞추는 과정을 통과하면 일을 잘한다 라는 이야기를 들을 수 있게 되는데요. 상대의 눈높이를 측정하도 그 눈높이로 말할 수 있게 되면 보통 문이 열리는데, 개발자의 경우 이런 일들을 잘하게 되면, 가능성들이 생깁니다. 물론 큰 기업에서는 개발을 잘한다고 기회가 더 열린다거나 하진 않습니다. 조직이 커질수록 윗사람에게 요구하는 역량이 달라지기 때문입니다. 하지만 작은 회사일 수록 기술에 대한 많은 역량을 필요로하게 되어있고, 그것이 지분이든 연봉이든 이제 막 투자를 받은 커지는 회사의 경우는 기술관련 책임자를 높게 쳐주게 되어있습니다. 그런 기회는 아무에게나 오는 것은 아닙니다. 개발자에게 열려있는 기회이기도 합니다.

업무의 연속성(전문성)

다른 직군이나 회사원에 비해 업무의 범주가 정해져있는 경우가 많습니다. 즉, 이직을 하더라도 과거 하던일에 비해서 일이 크게 달라지지 않을 수 있다는 것인데요. 회사를 몇 군데 거쳐가면서 새로운 곳에 갈 때마다 하는 일이 너무 다르거나 적응이 안되면 어떻할 것인가 하는 걱정들이 살짝 있었지만, 개발자의 일과 역할이 크게 예상하는 범위를 벗어나진 않았습니다. 배워놓은 것들이 쓸모가 있다는 말이죠. 너무 특화된 곳이 아니라면, 전문성이 있다는 점은 큰 강점 입니다.


개발자의 장점

새로움을 추구하면 배움이 많음

 개발자로써, 여러가지 배울 수 있다는 점은 매우 고무 적입니다. 물론 어떤 회사든 역량에 대해서 떠먹여주는 일은 잘 없습니다. 대학에서 전공을 알아서 선택해야하는 것처럼 회사에서도 본인이 공부해야합니다. 다만 공부하던 것들이 실무에서 사용되는것을 동시에 실습할 수 있다는 점은 매우 유익합니다. 수많은 공부의 결과들은 세상에서 빛을 보기도 전에 그 기억에서 지워지는데요. 개발자는 이 기술을 익히고 배우면 이것을 바로바로 써먹을 수 있다는데 큰 장점이 있습니다. 백엔드에 관심이 있어서 Rest를 공부했다면 API를 만들때 이 기술을 써먹을 수 있습니다. 디비를 공부하면 데이터를 조회하거나 데이터를 호출하는 쿼리를 좀 더 효율적으로 작성하거나 속도를 단축시켜 볼 수도 있습니다. 프론트를 공부했다면, 해당 언어들을 공부한 것들을 적용해 볼 수도 있겠죠. 다만 이미 정해져있는 것을 바꾸긴 어려워도, 새롭게 뭔가를 만드는 곳이라면 기술들을 적용해 볼 수도 있을 것입니다.

좋은 기기를 쓸 확률이 높음

컴퓨터가 좋아서 프로게이머가 된 사람도 있고, 컴퓨터가 좋아서 프로그래머를 선택한 경우도 있습니다. 물론 SI의 경우 좋은 컴퓨터가 지급되지 않을 경우들도 있지만, 좋은 회사들의 경우 좋은 기기들이 지급되는 경우가 다른 직종 보다 높습니다. 좋은 기기가 곧 좋은 효율이니 말이죠.

서울 지역에 있을 확률이 높음

 처음에 회사에서 여러 직군과 현업을 선택하는데 금융 프로젝트나 제조쪽이 서울이 많다더라고 해서, 흠칫했습니다.
 서울이 아닌 곳도 있다는 말인가...
 일부 프로젝트의 경우 거제에 있을수도 있고 수원, 청주, 더 내려가면 전주까지도 고려해야 한단 소리에 사색이 되었는데요...
 마치 공군 배치 받을때 어딜 가야하는 것인가와 같은 심정의 주사위... 다행스럽게 제조 였기에 망정이지...
영영 못올라올뻔 했습니다. 이처럼 많은 직군의 경우 지방에도 다양한 프로젝트들이 있습니다. 물론 서울만 길이냐, 다른 곳은 무시하는가 하는 발언으로 생각할 수 있지만, 각자 사는 곳 가까운곳이 좋으니까요.
가까운 곳에서 좋은 처우가 있다면 가장 베스트 하다고 생각합니다. 일단 자동차 업계나 기계, 섬유 등등의 다양한 다른 업종들은 공장이 그쪽이기 때문에 서울에 근무하기 어려운 경우들이 있습니다. 출장이 멀어질 수도 있고요. 하지만 IT의 경우 제주도나 대전 등등을 제외하고 서울에 밀집하고 서울에서 시작하는 경우가 많습니다.
판교, 강남, 수원, 가디, 구디, 삼성역 근처, 서울역 등등 다양한 곳이 중심 거점이지만, 근처에 어떤 회사가 있는지에 대한 조사도 필수적 입니다. 근무지가 곧 복지가 될 수도 있으니 말이죠.

좋은 회사의 경우 복지로 자율 출퇴근이 많음

 개발자로써 장점중 하나는 자율 출퇴근이 용이하다는 점입니다. 특이점으로 회의가 겹치거나 하는 경우라면 제외이지만, 실제 업무를 할 때 이미 업무의 배정이 끝나있다면 어디서나 근무를 할 수 있습니다. 그리고 자기일의 분량만 처리할 수 있다면 되기 때문에 자율 출퇴근이 있는 경우도 볼 수 있습니다.

일정상 출시 이후에는 널널한 경우도 있음

 대부분은 타이트한 일정으로 바쁩니다만, 테스트 기간이나, 릴리즈 이후의 경우에는 널널한 경우도 있습니다. 물론 일이 잘 끝난 경우겠지만 말이죠.

서비스 운영자의 경우 개발을 안하는 경우도 있음

  이건 개발자의 입장에서 장점인지 단점인지 헷깔리는 경우이지만, 운영의 입장에서 서비스가 잘 돌아가는 경우는 개발이 필요 없을 수도 있습니다. 그럼 대응하는 부분 이외에는 자유로운 경우가 발생하는 거죠. 늘 그래서 업무에 대한 할당과 협의 등등에 따라 복불복이 발생됩니다.

좋은 회사의 경우 의사소통이 자유로운 경우도 있음

 드문 경우지만, 합리적인 의사 소통이 가능한 경우도 있습니다. 합당하다면 의사 결정에 반영해 주는 시스템이 있는 경우 일단 일정의 질이 올라갑니다.

재미있음

 업무가 어떻게 재미있을 수 있는지에 대해서 복잡한 내용이지만, 이건 케바케, 정말 사람마다 다른 영역입니다. 업무나 일이 재밌는 경우도 있습니다. 내가 개발한 것이 동작할 때 느껴지는 것이나, 새로운 기술을 습득하고 적용해볼 때 느껴지는 재미 등등 다양한 것들에 재미를 느낄 수 있습니다.

성취감이 있음

 어떤 일이든 성취감이 있습니다. 이 개발 업무는 모든 것들이 잘 돌아갈때, 문제가 없을때, 고객이 만족할때, 버그가 없을때 성취감이 오게됩니다. 물론 자잘한 버그와 화면상의 이슈, IE 등등의 문제 등등, 안드로이드의 경우는 버젼별로 상이한 문제들을 잡는데 시간을 보내는 것들이 허송세월로 느껴질때도 있지만, 해결하고 나면, 돈은 더 안줘도 일단 뿌듯하긴 합니다.

한번 해 놓은 것은 쉽다.

 뭐든 처음이 어렵죠. 개발이나 일도 마찬가지 입니다. 처음 세팅은 진짜 힘든데 일단 거의 완성하고 나서 수정이나 비슷한것을 만드는 과정은 그리 어렵지 않습니다. 엑셀 양식도 복붙이라는 스킬이 있듯이 소스도 복붙이라는 스킬이 있기 때문에 너무나 오용하면 안되지만 타인의 소스를 이해하고 분석해서 재사용하는 것은 해당 소스의 품질을 비슷하게 가져갈 수 있습니다. 다만 새로 만들때는 완전히 다른 영역입니다. 이해하지 않고는 모든 것들이 문제 투성이 일테니까요.

뭔가 멋있음

또 하나의 장점중에 하나는 개발자 하면 풍기는 것이 뭔가 멋있....지만 현실은 삽질과 노가다... 잡부라는 표현이 있습니다만, 나의 분야를 지키는 것이 얼마나 어려운지...
프론트 하다가 백엔드 하다가, 리눅스... 퍼블리싱... 이것저것 다하는... 안드로이드 하다가.. 정신 없습니다.
이런 경험의 혼재는 전문 성을 떨어뜨린다는 지적도 있네요. 과감하게 기타 경험들은 이력서에서 삭제하는 편입니다.


개발자의 단점

매번 새로운 기술을 배워야 함

 장점이자 단점입니다. 도태에 가장 예민한 곳입니다. 물론 안그런 곳도 많습니다. 모든 개발자가 꼭 새로운 기술에 예민할 것이라는 것은 편견입니다. 그냥 익숙한게 좋은것이 사람입니다. 연차가 높을 수록 과거 사용하던 기술 스펙이 옛날것일수도 있습니다. 물론 빠르게 적응하시는 분들도 요샌 워낙 많지만, 하루가 다르게 변하는 이 바닥에서 아예 변화의 주축을 넘겨주는 사람도 많습니다. 여튼 이 새로운 기술을 배워야 한다는 압박은 늘상 존재합니다.

금액과 가치에 대해서 스스로도 그 재산정을 해야함

 어떤 일을 할때 들어가는 비용과 개발자 본인의 가치에 대해서 재산정할 필요가 있습니다. 이게 왜 단점이 될 수 있는가 하면, 이 것이 정상적으로 잘 산정하지 못하면, 일은 뭔가 계속 많이 하지만, 계속 제대로된 대우를 받지 못한채로 회사를 계속 다니는 경우도 많기 때문입니다. 대부분 이직이나 좋은 기회들을 만나는 것을 꿈꾸지만 현실적으로는 다니던 곳이외에서 잘 적응할 수 있을지, 혹은 너무 기술 난이도가 높거나 어려워서 다른 곳은 꿈꾸지도 않는 다던지, 현재의 회사에서 중요한 부분을 맡아본적이 없기 때문에 다른 회사에서도 똑같진 않을까 싶은 두려움들이 지배할 때 성장이 더뎌집니다. 물론 같은 회사 내에서 인정 받는 경우도 많지만, 다른 도약을 토대로 더 성장 하는 케이스 들도 많이 있습니다. 도전도 안하고 주눅들 필요는 없다고 생각합니다.

클린 코드의 어려움

 뭔가 클린 코드라는 책도 있지만, 소스를 잘 짠다는건 정말 시간과 노력이 들고 어려운 일입니다. 필요하지 않는 소스를 걷어내야하고 이 과정에서 남이 짜놓은 문제있는 소스까지 신경 써야한다면 진도가 나가지 않으니 말이죠. 이런 저런일로 많은것을 신경쓰다보면 머리가 남아나지 않는 것이 현실입니다.

시간과 여유가 너무 없다

 뭔가를 하기 위해서는 충분한 시간이 필요합니다. 개발자를 찾는 곳에선 교육할 여력이 없습니다. 늘 경력자를 찾죠. 그래서 신입입장에서는 적은 금액의 일이라도 찾으려고 하는 모양새가 되어버리고 말았습니다. 10년전의 초봉이나 지금의 초봉이나 기준 점도 없고 큰 차이도 없고 큰 기업의 초봉만 올랐지, 아직도 이 시작점은 혼잡합니다. 이런 도약을 위한 시간이 없다는 점, 이해할 수 있는 여력이 없다는 점은 조급함을 만들게 되고 결과적으로는 그냥 찍어내는 개발자를 만드는데 일조해버리고 맙니다. 오히려 천천히 체계를 잡아가는 곳은 그 문화 하나만으로도 실력있는 사람들을 키워내버리지만 말이죠.

체계가 없는 곳에서의 실망

 또 하나의 단점은 교육 체계가 부족하다는 점입니다. 많은 스터디 문화과 강좌들... 우후죽순 생겨나는 것은 대학이나 교육과정에서는 배울수 없는 실무가 너무나 많습니다. 학교 교육에 익숙한 세대는 회사에서 가르쳐주지 않고 시키는 것이 너무나 이해되지 않는 것일 것입니다. 체계 있는 곳은 실제로 매우 적습니다. 따라서 해야할 일을 찾아야 하고, 문제점을 찾아야하고, 소스를 개선해야 합니다. 좋은 사수를 만나는 일이 꿈같은 일인지라, 실망할 준비도 해야합니다.

일정과 야근이 한몸인 경우가 많음

일정이 짧으면 야근도 당연히 생깁니다. 처음부터 잘하긴 힘들고 그렇다고 이해를 해준다면 오산입니다. 물론 조정이 있을순 있겠지만 대부분은 짧은 일정으로 오는 야근의 결과는 개발자의 몫입니다. 이게 줄어야지 살만해집니다.

상사, 대표, 체계가 많은 것을 결정

 어딜가나 그렇지만 윗사람이 많은 것을 결정합니다. 심지어 개발일정 조차 대표나 의사결정자가 해주는 경우가 많습니다. 정확하게 일정을 산출하지 못하면 모든 것이 리스크가 됩니다.

밤낮이 없는 경우도 있음

개발자의 경우 밤과 낮이 바뀌거나 밤낮없이 일하는 경우들이 있습니다. 심장을 조심 해야합니다. 운동도 꾸준히 해야합니다.

어려움

개발 누가 쉽다고 했나요. 이게 늘 하던걸 하는것도 어려운데, 새로운걸 배우는 것도 어렵고, 오류를 찾는 일도 어렵고, 소통도 어렵고, 다 어렵습니다. 어려운걸 쉽게 풀어가야 하는 문제에 직면하게 됩니다.

배움은 길지만 결과를 보기 위해서는 길게 달려야 함

이렇게 오랜 시간의 배움의 결과가, 게시판 하나라니...게시판 하나 만드는것도 두어달 걸리고 나면, 뭔가 모든 프로세스가 거기에 있다는걸 깨닫게 됩니다. 입력과 수정과 삭제와 뷰... 여기서부터 시작이라는게 문제입니다. 이제부터 긴 달리기 시간입니다.


학생때 오해하는 부분

개발자가 되면 억대 연봉은 될 수 있지 않을까?

물론 좋은 몇몇 회사는 억대 연봉이 될 수도 있습니다. 예전엔 꿈도 못 꿀 이야기였지만, 이제 상황이 많이 변한게 사실입니다. 좋은 기업들은 더 공격적으로 투자할 준비가 되어있습니다. 하지만 모두가 좋은 기업이 될 순 없습니다. 다들 규모의 경제이며, 공급과 수요의 법칙처럼, 좋은 기업이 아닌 기업들은 여전히 처우가 힘든 경우가 많습니다.

인공지능 기술 같은 것을 적용해 볼 수 있지 않을까?

인공지능의 기술들 중에 openAPI들은 실험해 볼 것들이 확실히 생기고 있습니다. 일반 사람에게 더 많은 기회와 가능성들이 열리고 있습니다. 하지만 아직 제약 사항이 많고, 기술 범위와 스펙도 제한이 되어있습니다. 결국 데이터가 없으면 아무런 소용도 없습니다.

게임같은건 혼자 뚝딱 뚝딱?!

학생들의 경우, 게임 개발자를 꿈꾸는 경우들이 많습니다. 가장 친숙하기도 하고 hack 과 같은 것들을 만들어 배포하고 떼돈을 벌고 싶은 욕심도 있죠. 아이템 거래만으로도 많은 돈이 오고가는 걸 보다보면 세상의 모든 돈은 게임 안에서만 거래 되는 것처럼 느껴지기도 하는데요. 그만큼 시장에서 게임의 위상과 위치가 높아진 것은 사실이지만, 실제로 잘나가는 게임사 이외에는 힘든 것이 사실입니다. 게임이 질리면, 다른 게임으로 갈아타듯이, 시장은 늘 변합니다. 이 상황에서 게임 개발은 절대 혼자 할 수도 없고 특히나 디자인이 많이 필요한 회사의 경우, 운이 좋아야만 잭팟이 나오는 것이 현실입니다.

해커? 혹은 화이트 해커?

학생들의 경우 해커같은, 보안 전문가를 꿈꾸고 많은 학원에서는 감언이설로, CCNA와 CCNP를 이야기 합니다. 이런 케이스로 외국계에 취업하는 경우들도 간혹 있지만, 선택된 소수만이 영광을 차지할 것입니다. 뭐 어떤 일이든 마찬가지입니다. 잘해야합니다. 잘할 수 있는 일인지 확인해 볼 필요가 있습니다.

학원에서 이야기 하는 수많은 속삭임

 요새는 자바 개발자를 양성합니다. 예전에는 네트워크 쪽이었습니다. 좋은 강사를 선택할 권한과 권리도 없이, 무엇이 좋은지 모른채 학원을 선택하는 경우가 많습니다. 물론 학교에 한계가 있고 학원을 다니는 것이 도움이 될 순 있습니다. 가려운 부분을 긁어줄테니 말이죠. 하지만 학원의 교육으로 마치 기계적으로 뽑아내는 경우, 새로움이라는 측면에 한계성을 지닐 수 밖에 없습니다. 물론 학원을 토대로 열심히 공부해서 실무를 뛰어넘는 경우도 많습니다. 하지만 학교 공부가 싫고 대학가기 싫어서 학원을 대안으로 찾지는 않았으면 좋겠네요. 4년이라는 시간이 너무 아까울 수도 있지만, 아직 한국에서 초대졸, 학사, 석사, 박사등의 꼬리표는 연봉 테이블을 바꿀 만큼 강력합니다. 큰 기업일 수록 더 말이죠. 결국 선택입니다. 어찌 되었든 포기하지 않는 길을 택하시면 좋을듯 합니다.

개발자는 대학안가도 괜찮다며?

 다른 직군에 비해서 개발자는 실력을 더 많이 쳐주기도 합니다. 경우에 따라서는 연봉 테이블이 무시되기도 합니다. 그만큼 실력있는 사람을 인정해주고 존중한다는 뜻입니다.
다시 돌아와서 실력있는 사람은 누구일까요?
인사 담당자의 입장에서 어떤 사람이 실력있게 보일지 고민해보면 됩니다. 일도 잘하고 학벌도 괜찮은 사람과 일만 잘하는 사람중에서 선택하는 인사담당자의 입장 말이죠.
탁월함이 있다면 사실 모든 것은 프리패스 입니다. 탁월함은 어디서 올까요? 시간 배분이며, 능력이며, 이미 중학교때 실무를 하는 친구들은 이런 고민할 시간도 없이 일을 하고 있습니다.
 이런 마인드를 따라갈 수 있다면, 늦지 않았다고 볼 수 있습니다. 배움의 속도에 부스트를 올려야 합니다.

실력에 따라 연봉을 쳐주는 곳

 꼭 실력에 따라 연봉을 쳐준다는것은 오해입니다. 실력만큼의 연봉을 못받는 경우도 너무 많습니다. 구조적 문제입니다. 내 실력이 어느정도인지 측정을 못하는 경우도 많습니다. 하루빨리 스스로에 대한 재평가로 합당한 평가들을 받는 날들이 오기를 바라고 있습니다.




개발자로써 노력해야하는 부분

무엇을 하는 가에 대한 생각

 개발자가 아니라고 해도 누구라도 무엇에 대한 생각은 중요합니다. 회의시간에 다른 생각을 해본적 있을 것입니다. 주구장창 업무에 필요 없는 이야기일 가능성이 있습니다.  사람은 모든 하는 일에 대한 동기가 중요합니다. 이 일의 목적은 무엇인가 이 개발이 무엇을 위해 필요한가? 어떤 것을 해야 서비스가 완성 될 것인가? 충분한 고민이 필요 합니다.
 시키는 일을 할때는 있는 라이브러리를 써야하지만, 어떤 프로젝트를 개발해 주어야 하는 상황이라면, 글을 쓰는 에디터가 필요한 것인지, 봐야할 사람이 무엇을 느껴야 하는지, 그리고 결제가 필요한건지, 로그인이 필요한 서비스인지, 앱으로 만들어야 할지, 웹으로 서비스를 해도 무방한지 등등을 검토해 봐야합니다.

왜 하는 가에 대한 생각

 쇼핑몰의 경우, 장바구니 기능 같은 것이 있습니다. 만드는데 불편하다고 해서 해당 기능을 빼버리면, 사용자 입장에서 불편함이 초래될 수 있는 것들이 있을 수 있습니다.  로그인이 되지 않은 상황에서 장바구니 기능만을 동작시켜야 하는 순간이 올지도 모릅니다. 그럼 디비가 아닌 캐시에 대한 생각을 고려해야할 수도 있습니다.
 만약 개발자의 입장에서는 이 모든 것들이 불편할 수 있습니다. 하지만 고객의 입장에서라면 필수적으로 해야할 수도 있습니다. 다른 서비스의 경우 필요 없는 일이어도 업종에 따라서 고객에 따라서는 해야만 하는 경우도 발생하는 데요. 결과적으로 이걸 왜 해야하는지 납득이 된다면 시간이 걸려도 이 일을 할 수 있을 것입니다. 기술의 문제도 중요한 문제이지만, 고객의 입장도 중요합니다.
이런 문제를 풀게 된다면, 결국 서비스는 더 큰 것을 바라볼 수 있게됩니다. 다만 이게 과중한 개발자의 짐이 되지 않기만을 바라는 거죠.

기술에 대한 가치

 기술에 대한 가치를 이해한다면, 또 그 기술로 앞으로 먹고 살 수 있다는것을 이해한다면, 안할 이유가 없습니다.
 많은 기업들은 더이상의 업그레이드없이 현상을 유지하고 있습니다. 소규모의 기업들인데요. 그 이유는 동작하면 되기 때문입니다. 돈이 적게들어도, 동작하기만 한다면 더 투자하지 않습니다. 모든 것들을 비용으로 해석하기 때문인데요. 이런 기업의 경우, 개발자나 디자이너의 연봉을 조금 올려주는 것에도 아까워 하기 마련입니다. 기술의 가치를 이해하는 곳으로 가야합니다. 그리고 안주하면 국물도 없습니다. 지금 트렌드가 되고 있는 것들, 어렵다고 하지만 무조건 공부해야합니다.

동작 원리에 대한 이해

 이해 없이 복붙하는 일을 뛰어 넘어야 합니다.
데이터가 디비에서 부터 나와서 매퍼와 서비스를 거쳐 컨트롤러에서 리퀘스트에 담겨 화면에 나오기까지 흐름에 대해서 파악해야 합니다. 노드라면 노드로써, 리액트라면 리액트로써, 엥귤러라고 하면 또 그런 방식으로 어떻게 화면이 그려지는지 어떻게 화면에 그려지는 순서인지를 알아야 합니다.
만약 안드로이드라고 한다면 디비를 통해서 API로 데이터가 가공되어 JSON 형태를 통해 안드로이드 단말기에 전송 되고, 전송 된 데이터를 원하는 라이브러리로 받아서 그 데이터를 가공해서 앱 화면상에 뿌려주는 형태에 대한 이해를 해야합니다.
데이터의 흐름을 파악하면, 결국 그곳에 사용되는 기술과 기술의 변화를 찾을 수 있습니다. 기술은 이런 동작 원리 위에 효율들을 가미한 것이기 때문입니다.

서비스에 대한 가치 평가

 본인이 하고 있는 서비스에 대한 가치를 파악하는 일도 중요합니다. 업종에 따라 연봉은 차등적입니다. 같은 IT 직군이라도 해도 금융이면 금융, 제조면 제조, 대고객서비스면 또 그 나름 대로 매겨지는 가치들이 다릅니다. 그렇다고 해서 기존의 연봉이 크게 낮아지거나 높아지진 않지만, 업종은 매우 중요합니다. 아는 것이 틀려지고 도메인, 업종의 이해는 결과적으로 해당 능력의 평가 척도가 되기도 합니다. 따라서 서비스 자체에 대한 가치와 능력과 이해를 넓히는 것도 무척 중요합니다.

데이터 베이스에 대한 학습

 대학교때, 데이터 베이스는 학점을 짜게줘... 이런 이유로 아예 수강하지 않은 친구들도 있었습니다. 오히려 알고리즘, 컴파일러 등등의 어려운 과목을 수강하고, 데이터 베이스를 듣지 않는 경우도 있었는데요.
 물론 디비를 사용하지 않는 경우도 아주 드물게 있습니다. 특히 프론트 입장에서는 디비를 설치하지 않을 수도 있습니다. 하지만 데이터 베이스는 많은 이해와 연결을 돕습니다. 왜 데이터의 명칭이 그러한 것인지, API에서는 어떤 데이터를 가공해서 그런식으로 넘겨주는 것인지 등등 데이터를 이해하지 않고 뭔가를 할 때 발생되는 문제들에 대해서는 더 말하지 않겠습니다.

지속적인 검색 능력

제일 중요한 것은 검색 능력입니다. 간혹 경우에 따라 인터넷이 되지 않는 곳에서 개발해야하는 경우도 간혹 있을 수 있지만, 대부분의 프로젝트는 기존 소스를 활용할 수 없음으로 기억에 의존하거나 새롭게 해야합니다.
 검색을 잘하면 이 모든 정보들을 재조합 하는데 유리합니다. 과거에 정보를 찾으면 책으로 찾아도 잘 안나오던 시대와 달리 이제 많은 정보들은 검색 단어 몇개만으로도 추출할 수 있게 되었습니다. 양질의 정보는 구글을 통해서 찾을 수 있게 되었죠. 네이버, 구글 등등 찾을 수 있는 모든 곳에서 정보를 찾아야 합니다. 때론 스택오버플로우, 영어로 읽든 번역을 하든, 극소량의 정보만으로도 기나긴 야근을 막을 수 있으니까요.

꾸준한 공부

 개발에 관련된 공부입니다. 세미나도 참석하고 새로운 것들이 나올때 계속 지식을 증진시켜야 합니다. 도태는 한순간 입니다.

자격증도 열심히

회사에서 평가의 또 다른 척도는 자격증입니다. 1년에 1자격증씩을 계속 땄었는데요..어쩔땐 무의미하게 보이긴 하지만, 안하는것보다는 하는걸 회사는 더 좋아합니다.
 물론, 신입이나 회사를 찾는 시점에서 실무에 대한 경험보다 자격증이라는 스펙에 집중하는 경우도 있는데, 자격증과 실무중 하나를 꼽아보라면 실무입니다. 자격증은 가지고 있는 사람이 너무 많기도 하지만, 실무적 검증과 자격증이 아무런 연관이 없기 때문에 자격증 유무는 노력하는 사람인가를 평가하는 부분입니다. 실무는 다른 영역인 셈이죠. 아마 그래서 요새 코딩 테스트의 열풍이 부는 것 같네요.

영어도 열심히

 영어 능력은 언제 더 필요할지 모릅니다. 개발자가 영어 스팩을 요구하지 않는 곳이 많아 좋긴 하지만 하다보면, 결국 다 영어입니다. 문서도 영어로 읽어야 하고, 소통도 외국인이랑 하게 되고, 특히나 미래에 해외 취업에 조금이라도 관심이 있다면 더더욱 영어를 봐야합니다.
쉬운일이 없네요....

인맥 관리도 열심히

 예전엔 은둔형 개발자라는 표현이 즐비했습니다.때로 무슨 개발자는 말도 안하고 못하는 사람처럼 취급되기도 했죠.요새 커뮤니티를 안가보셔서 그럽니다. 기술 이야기만 해서 그렇지 엄청나게 말을 잘합니다. 말을 많이하시고 소통하시고 사람도 많이 알아두어야 합니다. 업종에 특수성이 있기 때문에 좋은 사람, 잘하는 사람은 미리미리 서로가 알게 되어 있습니다. 열심히 사람을 만나고 교류하다보면 좋은 소식들이 생기게 됩니다.

스터디도 열심히

 디비도 공부하고, 파일처리도 공부하고, 앱도 공부하고, 서버도 공부하고, 기획도, AWS도 등등등 다양한 주제에 대해서 관심만 있다면 공부하세요. 사람들과 쳅터를 정해가면서 해도 되고, 아는 것을 발표해도 됩니다. 4년전에 안드로이드 스터디를 지속적으로 운영했는데요. 그 결과 안드로이드도 같이 할 수 있기 되었습니다. 물론 코틀린과 같은 영역은 다시 도전해야할 영역입니다만, 소통의 범주가 늘어나는 일은 즐거운 일입니다.

뭐든 다 하자

네 이것저것 다하다보면 좋은 세상이 옵니다. 시간을 쪼개고, 가치를 나누고, 개발자 이상의 것들을 꿈꾸는 시간이 분명 옵니다.

세상에 기여할 것들을 고려하자

 오픈소스의 생태계가 있습니다. 기존에 만들어 놓은 사람들의 노고가 먹고사는 부분이 되었는데요. 시간이 없긴 하지만, 어떤 것으로 세상에 기여할지 고민해보는 일도 좋은 듯 합니다. 사회적 프로젝트도 몇개 생각중인데 실행이 쉽지 않네요 :)

인공지능도 머신러닝도 결국엔 다가온다.

 모든건 준비하는 자들의 것입니다. 데이터의 분야는 분명 성장할 것이고 지금 한계가 분명히 보이지만 또 하나의 새로운 직군으로써 그 영역을 넓혀갈 것입니다. 어떤 연유든지 관심을 가진 분야에서 그 생각의 범위를 넓혀가시길 기대해봅니다.



개발자를 선택할 때 체크해야할 부분

지속적으로 새로운 것들을 접할 준비가 되었는가?

새로운 것에 대한 오픈마인드가 없다면... 다른걸 해도 됩니다.

속도인가? 방향인가?

스타트업의 경우 속도가 중요하기도 합니다. 또 어떤 스타트업의 경우 방향이 있으면 속도가 좀 늦어지더라도 기다려주기도 합니다. 차근차근 자신만의 목적과 의도와 길들을 개척할 필요가 있습니다.

소스를 디버깅 할 준비는 되었는가?

 소스를 디버깅하는 과정은 매우 필수 적입니다. 문제를 추적하여 찾아내는 과정입니다. 때로는 인내가 필요합니다. 처음엔 시간이 오래 걸릴 수도 있습니다. 이 과정을 견뎌야 문제 해결 능력이 주어집니다. 여기서 포기하지 마세요.

툴을 설치하거나 뭔가 시작할 때 인내심은 필수

 유니티, 이클립스, 안드로이드 스튜디오, 비쥬얼 스튜디오 등등 여러가지 다양한 개발 도구를 설치하는 일 조차 버거운 일일 수도 있습니다. 시작이 반이라는 말도 있지만 툴을 설치했다면 시작할 준비는 된 것입니다. 처음 부터 넘 어렵다고 포기하지 마세요ㅡ 처음엔 다 어려웠던 것입니다.

한번 시작하면 끝을 보는 성격이 맞는지?

개발일이라는 건 뭔가 중도 하차가 어렵습니다. 일단 시작하면 모두 쌓이는 것이고 모두 기반이 됩니다. 이것을 버려도 괜찮다면 몰라도 시작하면 끝을 보는 사람에게 맞을 것 같네요.

부딪히는 성격인지? 도망치는 성격인지?

성격도 직군에 영향을 줍니다. 개발 중도 하차가 없든 프로잭트는 성공과 실패만 있습니다. 끝을 봐야합니다.

높은 연봉, 적은 자유 VS 낮은 연봉, 많은 자유 중 굳이 택일은 해본다면?

후자에 가까운 것을 견딜 수 있다면 우선 자유로운 개발자의 성향에 가깝다고 볼 수 있습니다.

책을 끝까지 읽을 수 없다면, 뭔가 집중할 수는 있는지?

다른 것에 몰두한 적이 있나요? 책은 다 못읽더라도 집중력은 매우 중요합니다.

하루에 8시간 10시간 컴퓨터만 보고 있더라도 질리지 않는지?

 가장 친숙해야 하는 것이 컴퓨터 입니다.

당신의 타자수는 몇?

 타자속도도 중요한 척도중에 하나입니다. 느려도 무방하지만, 개발속도와 타자수는 밀접한 관련이 있습니다.

형상관리의 이해

개발자가 되면 가장 먼저 배우는 것중에 하나가 GIT 입니다. 요새는 마치 GIT 자체가 개발의 일부라는 느낌이 들게 되었지만,  필수라는 자체는 변함이 없습니다. 소스를 나만 하는 것이 아니라 너와 내가 함께 작업하기 위해서는 SVN, GIT, CVS 등등 소스를 관리하는 방법도 함께 공부해야 합니다.



맺음말
어떤 선택의 결과들에 있어서 쉬운 결정이란 없습니다.
모든 선택이 그러합니다. 이미 시작한 일을 뒤집기도 어렵고, 또 한편으로뒤집고자 한다면 또 뒤집어지는 것이 인생이죠.
그래서 어쩌면 시대가 변하고 있고, 많은 디지털 문명들이 눈앞에 성큼 다가와 있는 시대상황에서개발자의 인생이라는 것은우리 삶과 너무나 밀접해 져버린 직군이 아닌가 싶습니다.
하지만 그럼에도 불구하고, 아직까지 이 직종이 정말로 좋은 직업인가? 좋은 직군이 될 수 있는가?에 대해서는 여러가지 이견이 많습니다.
경험에 따라서 누군가에게는 좋은 직업이다.아니다 아직은 슬픈 기억만 남는 곳이다. 라고 분류되기도 합니다.
선택에 있어서 남이 해줄 수는 없지만, 그럼에도 불구하고 개발자라는 것의 장점은한번도 해보지 않은 미지의 영역이 될 수도 있다는 것이고,그런 영역 가운데 수많은 기회들이 자리 잡을 수 있다는 것입니다.
불과 10년 전만해도 안드로이드 개발 직종은 없었습니다.
앞으로 개발관련 직종은 수많은 기기와 관련되고 다양한 직군과 직업 나라를 뛰어 넘어서발전할 것입니다.
기술이라는 단어 하나에 포괄되어있고 먹고사는 수많은 사람들이 있으니까요.
어짜피 인생은 앞으로 갈건지 혹은 멈추어있을껀지 그 선택의 연속 아니겠습니까?
이미 선택하셨다면 달려봅시다.