여러분들은, 왜 개발자가 되려고 하시나요?
안녕하세요. 문범우입니다.
이번 글에서는 ‘개발자'에 대해서 개인적인 생각을 풀어보려고 합니다.
글을 쓰고자 하는 의도는, ‘개발자’라는 직업을 생각하고 꿈꾸는 분들께 보다 현실적인 이야기를 전해드리기 위함이고 글의 내용만을 본다면 ‘개발자의 단점'이라고 볼 수도 있을 것 같습니다.
무엇보다 주관적인 견해의 글이며 다른 개발자분들께서는 다르게 생각하실 수도 있으니 가볍게 읽어주시면 좋을 것 같습니다.
최근 개발자라는 직업이 다양한 매체에서 좋은 모습으로 많이 소개되는데, 정말 좋은 모습만 있는건 아니라는 것을 전달드리고 싶어서 글을 써내려간다는 점을 생각하고 읽어주시면 좋을 것 같습니다.
(아래 사용된 모든 사진들의 출처는 Instagram @waterglasstoon입니다.)
1. 실력이 없다면 언제든지 도태된다.
많은 분들이 들어보셨을 것 같습니다.
“개발자는 평생 공부하는 직업이야”
하지만, 생각보다 많은 분들이 이 문장에 대해 정말 진지하게 생각하지 않는 경우를 종종 보았습니다.
평생 공부를 해야한다는 것은 생각보다 많은 단점을 내포합니다. 물론 다른 직업이 공부를 하지 않는다라는 이야기는 절대 아닙니다.
개발자는 근무시간이 아니더라도 꾸준하게 자기개발을 해야합니다. 물론 개발분야와 관련되어 자신이 관심있고 하고싶은 내용에 대해 공부하는 경우도 많지만, ‘해야해서' 하는 학습도 정말 많습니다.
글을 쓰고 있는 필자는 현재 2개의 스터디를 병행하고 있습니다. 그리고 최근에는 관심있는 분야에 대한 자격증을 함께 준비하고 있구요. 제가 이렇게 열심히 산다를 자랑하는 것이 아니라, 실제로 주변의 성장하는 개발자들을 보면, 제가 하고 있는 활동들이 그렇게 무리한다거나 오버하는 수준이 아니라는 것을 말씀드리고 싶었습니다.
많은 매체에 소개되는 ‘좋은 개발자', 소위 연봉이 높고 엄청난 복지혜택을 누리는 개발자들로 성장하기 위해서는 정말 많은 노력이 필요합니다. 누군가에게는 힘든 시간이기도 하죠.
물론 개발이라는 분야가 잘 맞아서 그 과정들을 즐겁게 소화해낼 수 있으면 정말 좋은 케이스일 것 입니다.
하지만 그럼에도 불구하고, 하루 12시간 컴퓨터 앞에 앉아서 영어로 된 공식문서를 살펴보고, 답이 없는 에러케이스를 파헤쳐 보며, 뭐가 문제인지도 모를 삽질을 해가는 것에 대해 내가 소화해낼 수 있을까를 진지하게 고민해보는 시간은 정말 중요하다고 생각됩니다.
2. 워라밸은 보장되지 않을 수 있다.
어쩌면 1번의 내용에 이어지는 단점일수도 있겠습니다만, 조금은 다른 포인트로 이야기해보겠습니다.
대부분의 소프트웨어는 24시간 여러분에게 서비스를 제공합니다. 그리고 그렇게 24시간 운영되는 소프트웨어의 뒤에는 언제나 개발자가 있습니다.
여러분이 잠들기 위해 눕는 밤 11시 또는 새벽 1시에도 여러분이 담당한 서비스에서 에러가 발생하면 대응을 해야합니다.
(물론 대응체계가 잘 잡혀있는 대부분의 서비스는 아닐 수도 있지만, 최악의 상황을 말씀드리는 점 양해 부탁드립니다.)
또한 이런 특수적인 상황이외에도, 프로그램을 개발하기 위한 일정이 시급할 땐 늦게까지 야근을 하는 경우도 있을 수 있습니다. 물론 매번 그러한 상황이 온다면 그것은 일정 조율 및 관리가 부족했던 문제도 있겠죠.
우스갯소리로 서버 개발자들은 어딜 가든 노트북을 가지고 다닌다고 하죠. 팀원들을 믿고 휴가를 가더라도, 항상 혹시나 하는 마음에 노트북을 챙기는 모습들을 심심치 않게 볼 수 있습니다.
워라밸이 아예 없다고 하는건 무리일 수 있겠지만, 적어도 개발자라면 자신이 담당한 서비스에 책임감을 가져야하고 이것은 어쩌면 여러분들의 일상과 업무를 100% 분리하는 것은 불가하다는 의미이기도 합니다.
3. 엄청난 삽질과 끈기가 필요하다.
이건 특히나 대학생, 취준생 분들이 많이 겪어보지 않는 문제이기도 합니다. 특히나 학원이나 인터넷 강의등으로 특정 커리큘럼을 따라서 공부하던 분들에게는 많이 부족한 경험이기도 하구요.
스스로 프로젝트를 진행해보신 분들은 많이 겪어봤겠지만, 우리가 책이나 강의로 학습하는 내용과 실제로 서비스를 만들기 위해 현업에서 겪는 과정은 정말 하늘과 땅 차이입니다.
단순해 보였던 기능도 예상치 못한 곳에서 많은 문제가 발생할 수 있고, 공식문서를 아무리 뒤져보고 구글링을 열심히 해봐도 이렇다할 정답이 나오지 않는 경우도 많습니다. 이럴땐 여러분이 직접 문제에 부딪혀가며 솔루션을 만들어 내야하고, 이런 과정들은 언제나 개발자들을 지치게 합니다.
물론 그 성공에 대한 열매는 매우 달콤하죠. 그 맛에 개발을 하시는 분들도 많구요.
하지만 이렇다할 정답 없이, 끝이 보이지 않는 동굴을 헤매는 듯한 과정을 여러분들도 견딜 수 있는지는 꼭 한번 고민이 필요하다고 생각됩니다.
4. 매체에서 말하는 좋은 점들이 보편화된 사실은 아닐 수 있다.
뉴스에 ‘개발자'라고 검색만 하더라도 정말 다양한 기사가 쏟아집니다. 그 중 유난히 돋보이는 기사들도 있죠.
“개발자에게 수천만원의 스톡옵션 약속 ... ”
“xx기업 역대급 대규모 개발자 채용 ... ”
“연봉 x천만원 개발자 ... ”
물론 이 기사들이 허구라고 말씀드리는 것이 아닙니다.
하지만 기사들처럼 모든 개발자가 엄청난 연봉과 복지 혜택을 받고 있는 것 또한 절대 아닙니다.
물론 다른 직군들에 비해, 현 시대가 많은 개발자를 요구하고 있는 것은 어느정도 인정할 수 있지만, 결국 개발자라는 직업 또한 다양한 직업들 중 하나 입니다.
수요가 커진다는 것은 자연스럽게 공급이 강화되기 마련이고, 기업들은 보다 좋은 개발자에게 좋은 제안을 하게 됩니다.
그리고, 좋은 개발자란 앞에서 말했듯 엄청난 자기개발과 노력이 필요하게 되죠.
제가 생각하기에는 ‘개발자'라서 엄청난 연봉을 받고 엄청난 복지 혜택을 받는 것 보단, 그 혜택을 받는 분들이 ‘엄청난 노력'을 했기 때문이라고 생각합니다.
단순히 매체에서 말하는 좋은 점들만 가지고 ‘개발자가 되어야겠다!’ 라고 생각하기에는 그 이면에 가려진 어려움들이 생각보다 많습니다.
5. 개발자가 되는 것이 쉽지만은 않다.
특히나 온라인 매체를 보며 항상 아쉽게 생각하는 것은, 개발자되기가 쉬운 것 처럼 광고되는 다양한 학원들입니다.
'x개월만에 프론트엔드 개발자되기', 'xx주 풀스택 개발자 커리큘럼' 등 다양한 광고가 있습니다.
네, 당연히 그러한 커리큘럼을 통해 정말 좋은, 대단한 개발자가 되신분들도 당연히 있습니다. 하지만 그 커리큘럼을 수강한 모두가 그랬을까요?
일반적으로 개발자가 되는 컴퓨터공학부 학생들은 다른 학부와 같이 4년의 대학과정을 통해 컴퓨터의 기초지식부터 최근 사용되는 다양한 기술까지 많은 내용을 학습합니다. 졸업작품 뿐만 아니라 대학교 2학년, 3학년 때에도 다양한 프로젝트를 진행하고, 엄청나게 많은 서적들을 학습합니다.
헌데, 아직 컴퓨터에 대한 기초지식도 없는 사람이 1년 커리큘럼을 수강하는 것만으로 그 많은 경쟁자들을 제치고 더 좋은 개발자가 되길 바란다는 것은, 사실 염치가 없는 것 아닐까요?
표현이 과할 수 있지만, 그 만큼 여러분들께 확실하게 말씀드리고 싶어서 입니다.
물론 1년만에 좋은 개발자가 될 수도 있습니다. 실제로 주변에도 그러한 개발자들이 있습니다.
하지만 과연 그분들이 일반적인 사람들과 같은 1년을 보냈을까요?
저 또한 그렇게 1년간 노력할 수 있을까를 고민해보면 선뜻 대답이 나오질 않습니다.
6. 생각보다 다양한 분야의 사람을 만난다.
흔히들 개발자는 코드를 작성하는 사람으로 알고 있죠. 조금 더 나아가면 시스템을 설계하고, 유지보수하는 업무도 생각해볼 수 있습니다.
그리고 그러한 과정들 속에서는 정말 다양한 분야의 사람들을 만나게 됩니다.
같은 개발자 동료들과 만나는 것은 물론이고, 서비스에 대한 기획자 분들과 운영팀과 만나는 경우도 많습니다.
그리고 다양한 사람들은 만난다는 것은, 그 만큼 다양한 사람과 커뮤니케이션 해야한다는 것을 의미합니다.
당연히 많은 상황이 펼쳐지고, 누군가는 스트레스 받거나 힘든 상황들이 종종 오기도하죠.
단순히 개발자는 '내가 어떤 기능을 구현해야 한다.'가 전부가 아니라, 어떤 기능을 왜 구현해야하고, 구체적으로 어떻게 구현해야 하는지도 함께 확인해야하며 그러한 구현 속에서 가능한 부분과 일정 또는 상황상 불가능한 부분도 판단하여 관련자들에게 공유할 수 있어야합니다.
(위 사용된 모든 사진들의 출처는 Instagram @waterglasstoon입니다.)
글을 써내려 가다보니, 그리고 '단점'에 포커싱하여 적다보니 다소 공격적인 말들이 쓰여 부정적으로 받아들여지거나 다소 공감하지 못하는 개발자분들도 있을 것 같습니다.
저는 보다 많은 분들이 '개발'이라는 분야에 대해 재미를 느끼고, 다양한 도전을 해보며 함께 성장하기를 바랍니다.
그리고 제가 그분들께 더 많은 것들을 공유하고 더 많은 도움을 드리기를 원합니다.
그래서 다양한 멘토링과 다양한 활동들을 조금씩이나마 시간을 내어 지속하고 있습니다.
하지만, 가끔은 외부에 비춰지는 '개발자'의 좋아보이는 '조건'들에 혹하여 도전하였다가, 기대에 부풀고 결국 그 기대에 미치지 못해 실망하고 힘들어하시는 분들을 만나곤 합니다.
그런 분들과 이야기를 나누다 보면 '좋아보이기만 했던' 개발자들의 모습에 지쳐 힘들어 하는 경우가 정말 많습니다.
그래서 조금이나마 '개발자'를 꿈꾸는 분들이 한번쯤은 보다 부정적으로, 현실적인 상황을 고려하며 진지하게 고민해보셨으면 하는 마음에 글을 작성하였습니다.
'그래서 너는, 그 단점들을 다 극복했다고 자랑하는거야?'
아뇨, 저도 종종 많이 힘들어 합니다. 실제로 취준을 할때도 진지하게 많이 고민했었구요.
'이건 너무 특수한 상황이잖아.'
네, 특수한 상황이지만 여러분뿐만 아니라 제가 언제 어디서 마주칠지도 모르는 상황입니다.
'너가 뭐 얼마나 잘났길래, 이렇게 묘사해?'
아뇨, 제가 잘나서 말씀드리는 내용이 아닙니다. 우리가 마라톤을 달리기에 앞서 같이 신발끈을 다시 확인해보자는 이야기입니다.
여러분들도 꼭 한번쯤은, 여러분이 왜 개발자가 되려고하는지 고민해보는 시간을 가지면 좋을 것 같습니다.
위와 같은 단점들과 어려움에도 불구하고, 여러분들은 왜 개발자가 되려고 하시나요?
감사합니다.