당신이 프로그래머(개발자)가 되고 싶다면 꼭 봐야 하는 글

당신은 프로그래머(개발자)를 목표로 하고 있나요?

최근에 “프로그래머” 라는 직업은 나름 인기있는 직업이 되가고 있습니다. 그 이유는 “연봉”이 최근들어 급격히 상승했기 때문이지요.

직업을 선택하는데 있어서 “보수” 혹은 “연봉”은 꽤나 중요합니다. 내 직업이 아무리 힘들어도 연봉을 많이 지급받는다면 일이 힘들어도 결국 그 직업을 계속 선택할 가능성이 꽤 큽니다.

얼마전까지만 해도 국내에서 IT 프로그래머(이하 개발자)는 대우와 처우가 열악하기로 알려져 있었지만 현재는 신입 개발자부터 초봉이 꽤 높은 수준으로 지급하는 것으로 상황이 바뀌었습니다. 그래서 컴퓨터 공학이나 전산학과 같은 전공 출신의 학생들을 포함하여 취업을 위해 비전공 출신 학생들도 “개발자”를 목표로 하며 취업 준비를 하는 분들이 많이 있습니다.

그래서 현재 “개발자”는 꽤 인기있는 직업군이 되었습니다. 온라인 강좌를 비롯하여 오프라인 강좌, 국비 지원 학원들이 우후죽순 늘어나고 있으며 개발자가 되기 위해 현재 다니던 직장을 그만두고 “학원”을 다니면서 준비하는 “지망생”들이 꽤 많아 보입니다.

그렇다면 “개발자”라는 직업은 과연 괜찮은 직업일까요? 그리고 내가 비전공이고 다른 분야에서 일을 하다가 “전직”을 해도 괜찮은 걸까요?

이번 글에서는 “개발자”를 목표로 하는 분들에게 약간의 도움이 되고자 저의 생각과 현실적인 부분에 대해 설명을 드리고자 합니다. 이 글을 잘 읽어보시고 개발자로 전향을 하는데 판단을 해보길 바랍니다.

개발자는 안정적인 직업이 아니다

당신이 개발자를 하고 나서 “안정성”을 따진다면 다른 직업을 알아보는게 나을 수도 있습니다.

일단 제가 개발자의 “안정성”에 대한 글을 쓴 적이 있습니다. 안정성이라는 것은 사람에 따라 생각하는 범주가 약간은 다르지만 “한군데 회사에서 오랬동안 안정적으로 월급을 받는 직업” 은 결코 아닙니다. 이 부분을 “안정성”이라고 판단한다면 개발자는 결코 안정적이지 않습니다.

제가 15년동안 “개발자(프로그래머)” 생활을 하면서 느낀것은 “한군데 회사에 오랬동안 있는것”은 굉장히 어렵다는 점이었습니다. 작은 회사는 작은 회사대로 매출에 따라 내 자리가 불안정하며 큰 회사(대기업)는 사업의 방향에 따라 내가 소속된 부서가 갑자기 사라지는 비운(?)을 맞기도 합니다.

이런 점은 “일반 직장인”과 다를께 없습니다. 내가 한 회사에 오래있고 싶어도 회사 사정이 나뻐지면 어쩔 수 없이 그 회사를 떠나야 합니다. 그리고 늘 이력서를 업데이트 해야 하고 만약의 상황에 대비를 해야 합니다.

또한 안정적인 회사에 다닌다고 해도 “사내 정치”의 희생양이 되기도 합니다. 개발자들은 각 회사에서 나름 “핵심” 인력이기 때문에 회사 대표나 임원들의 눈 밖에 나는 행동을 하게 되면 그 자리에 오래 있는 것은 현실적으로 꽤 어렵습니다.

따라서 “안정적”인 삶을 원하는 분들에게는 개발자는 결코 괜찮은 직업이 아닙니다. 연봉이나 월급을 많이 주는 대신에 정신적인 스트레스가 항상 동반되고 매일같이 기술 습득을 위해 공부를 해야 하는 임무도 주어지게 됩니다. 그리고 프로그래밍도 잘해야 회사에서 인정을 받고 그렇지 못하면 서서히 도태됩니다.

다만 그 반대의 성향을 가진 분들에게는 “매우 괜찮은 직업”이 될 수 있습니다. 어느정도 경력을 쌓고 인맥을 넓히게 되면 끊임없이 일을 할 수 있고 많은 보수를 지급받을 수 있습니다. 또한 괜찮은 “유니콘 기업”에 입사하여 큰 성과를 낸다면 “엄청난 성과급”과 “보수”가 내게 주어질 가능성도 높습니다.

즉 안정성은 떨어지는 대신에 “노력”에 따른 결과물은 나름 잘 쳐주는 직업이 “개발자” 라고 볼 수 있습니다.

시작하고 3년은 인내를 해야 한다

생각보다 “IT 개발”일은 쉬운 일이 아닙니다. 위에서 잠깐 언급했듯이 경력을 시작하면 끊임없이 프로그래밍 스킬과 기술 습득 등을 위해 “공부”를 해야 합니다. 그렇지 않으면 평가를 잘 받지 못하게 되며 결국 도태되고 내 스스로가 포기하게 될 수도 있습니다.

개발자는 마치 운동선수와 같다. 끊임없이 공부를 하고 프로그래밍 스킬을 동시에 올려야 한다 – pixabay

당신이 대학때나 학원에서 뛰어난 자질과 능력을 보여줬다고 해도 개발 실무로 가게 되면 완전 다른 환경과 상황에 부딪히게 됩니다. 그렇게 되면 머릿속이 혼란스럽고 회사의 방향을 따라가지 못해 금새 포기하고 싶은 생각이 비일비재 할지도 모릅니다.

경력자가 아니라면 “신입” 개발자는 실무에서 한계가 있을 수 밖에 없습니다. 그만큼 개발은 생각보다 쉽지 않으며 많은 경험과 기술적 지식, 노하우가 있는 사람이 개발을 더 잘할 수 밖에 없습니다. 신입으로 개발 경력을 시작을 했지만 불과 3년도 안되서 개발자를 포기한 사람이 “50%”에 달할 정도로 만만치 않다고 볼 수 있습니다.

또한 대우가 복지가 좋은 몇몇 대기업이나 유니콘 기업 외에는 여전히 처우나 대우가 열악한 곳이 대부분입니다. 내가 생각한 개발자와는 다른 상황에 처하게 되면 고민이 많아지고 선택에 후회를 하게 될 가능성도 있습니다. 모든 개발자가 다 대우와 처우가 좋은 것은 아니기 때문이지요.

따라서 당신이 개발자가 되기로 목표를 세웠다면 반드시 “인내” 라는 덕목을 가지고 시작해야 합니다. 개발자가 되면 끝이 아닌 새로운 시작이 되고 수많은 난관에 부딪힐 가능성이 매우 높습니다.

따라서 그 난관을 “버티는게” 중요합니다. 적어도 3년을 버티게 되면 5년을 버틸수가 있습니다. 5년 이상 개발자로써 일을 하고 있다면 당신은 개발자로 직업을 쭉 이어나가도 될 만큼 나름 “내공”을 쌓였을 것입니다.

그때까지 끊임없이 프로그래밍 스킬과 기술 지식 습득 등을 해야합니다. 이 부분을 매일같이 할 자신이 없다면 당신은 개발자라는 직업에 대해서 다시 한번 고민을 해봐도 될것입니다.

직업으로 “개발자”는 즐겁지 않을 수 있다

학교 다닐때 “취미”로 개발이 즐거웠던 분들이 있습니다. 그런데 이분들이 실제 현업에서 오랬동안 개발을 지속할 수 있을까요?

결코 그렇지 않을 겁니다. 직업으로 “개발”은 재미가 매우 없을수도 있습니다.

개발일을 마치 “게임” 하듯이 생각하는 것은 매우 큰 오산이다 – pixabay

프로그래밍 혹은 개발일을 실무에서 하는 것은 꽤나 재미가 없는 일이 될 수 있습니다. 내가 하기 어려운 미션을 해내야 하거나 일정에 맞춰 기능 구현을 하는 것은 재미는 커녕 부담이 되는 일이 됩니다.

개발자는 이 두가지 부분에 항상 맞닥뜨리게 됩니다. 신입이라고 해도 프로젝트에 투입되면 “내가 과연 이걸 할 수 있을까?” 라는 생각이 들 정도로 어려운 미션이 할당됩니다. 또한 개발은 늘 빠른 시간을 요구하기 때문에 일정 관련해서도 엄청난 스트레스를 받습니다.

이런 상황에서 충분한 시간을 확보하면서 서서히 프로그래밍을 하는게 가능할까요? 결코 그렇지 않을 겁니다. 신입이라고 해도 규모가 작은 회사는 “빠른 결과물”을 요구할 것입니다. 불가능한 미션이라고 해도 아예 진행이 되지 않거나 치명적인 실수를 하게 되면 그 회사에는 오래 다니기 어려울 것입니다.

따라서 당신이 개발자를 목표로 한다면 “개발” 자체가 재미를 느끼거나 흥미를 반드시 느껴야 합니다. 그렇지 않으면 매 순간순간마다 재미는 둘째치고 “스트레스”로 인해 어려움을 겪게 될 것입니다.

그래서 개발자는 “개발 자체에 흥미”를 느낀다면 그나마 오랬동안 개발자로써 활동을 하는게 가능합니다. 단순히 취미로 개발할때 재밌어서, 혹은 연봉을 많이 주니까 괜찮은거 같아서 등의 이유로 개발자를 선택했다면 매 순간이 괴로울 수 있습니다.

생각외로 “정신적 스트레스”가 심하다

잘 꾸며진 사무실에서 컴퓨터 모니터 앞에 앉아서 모닝 커피를 마시며 “우아~”하게 프로그래밍을 하는 것을 꿈꾸셨나요? 하지만 현실은 전혀 그렇지 않다는 것을 알게 됩니다.

얼마 전까지만 해도 이슈가 터지거나 일정이 급해지면 “밤을 새서” 일을 하는게 허다했습니다. 저녁을 먹지 않고 퇴근하지 않은 적이 없을 정도로 야근에 시달렸으며 출근하자마자 “회의”에 끌려가는 등의 정신없는 회사 생활을 하기도 했습니다.

최근에서야 인력 공급이 부족하고 개발자 연봉이 치솟으면서 처우와 복지가 좋은 회사들이 생겨나고 있지만 몇년전까지만 해도 “IT 기피” 현상이 생길 정도로 열악한 환경에서 개발일을 했던 개발자들이 꽤 많았습니다.

국내의 IT 회사들의 기업 문화 때문입니다. 특히 대한민국의 회사들은 일정에 대한 압박이 심한 편이며 특히 개발자들의 경우에는 뭐든 다 할 수 있다는 식의 “만능열쇠” 같은 존재로 인식하는 경우가 많았습니다.(현재도 그런 생각을 하는 기업들이 꽤 있습니다)

따라서 개발 외에도 문서 작성, 테스트, 이슈 처리, 현장 대응, 프로젝트 동시 진행, 인력 부족으로 인한 격무 등에 시달립니다. 특히 규모가 작은 회사들은 개발자 한사람에 하는 일이 너무도 많아지게 됩니다.

개발도 해야 하고 기술 습득도 해야 하며 온갖 다른 일도 동시에 하다보면 많은 “스트레스”가 동반이 되게 됩니다. 저도 이런 부분이 싫어서 회사를 그만두고 “프리랜서”를 시작한 이유가 되기도 했습니다.

TV 드라마나 영화에서 “사무실에서 편히 앉아 우아하게 키보드를 두드리는 모습”은 실제 개발자와는 다르다는 것을 알아두시기 바랍니다.

개발일은 끝이 없다. 워라벨 생각한다면 개발자는 좋지 않을 수도 있다.

제가 예전 3~4년차 시기에 이런 고민을 했던 적이 있습니다.

집에서는 “개발 고민”을 좀 안하면 안되나?

그렇습니다. 개발자는 퇴근을 하고 나서도 내일 할일에 대해 머릿속으로 고민과 생각을 끊임없이 하게 됩니다.

난 예전에 항상 집에만 오면 피곤했었다 – pixabay

회사에서 늦게 끝나고 일찍 끝나고의 문제가 아닙니다. 일찍 퇴근을 하더라도 집에오면 회사에서 하지 못했던 부분에 대해 고민과 생각이 내 머릿속을 맴돌게 됩니다. 이런 부분이 싫어서 개발자를 그만두려고 생각했던게 한두번이 아니었습니다.

한창 연애도 하고 싶고 지인들과 술한잔 하고 싶었던 20대 후반~30대 초반의 시기에 퇴근을 하고 나서 술한잔 하고 있었는데 갑자기 걸려오는 회사 전화는 저를 당황하게 했습니다. 그 이유는 “너로 인해 이슈가 생겼으니 설명을 해달라” 혹은 “당장 뛰어오던지 해라” 라는 것입니다.

그러면 즉각 대응을 해줘야 하는게 임무이므로 다시 회사로 복귀하던지 전화로 설명을 해주던지 해야 했습니다. 또한 이런 부분이 싫어서 개발자를 그만두려고 한적이 꽤 있었던거 같습니다.

이처럼 개발자는 “워라벨”을 추구하기에는 적절치 못한 직업일 수도 있습니다. 물론 정시 퇴근을 보장하는 회사들이 최근에 꽤 많아졌고 그렇게 되어가는 추세입니다. 하지만 잠자는 시간 외에는 개발적인 부분에 대해 끊임없이 고민해야 하는 직업이 “개발자” 이기도 합니다.

난 퇴근해서 “회사일” 생각하기 싫은 분들은 “개발자”는 괜찮은 직업이 아니라고 볼 수 있습니다.

프로그래밍만 잘한다고 해서 좋은 “개발자”가 아니다

개발자를 잘 모르는 분들은 개발자들이 “프로그래밍”만 잘하면 된다고 생각할 수 있습니다. 하지만 개발자는 프로그래밍만 잘해서는 성공하기 어렵습니다.

제가 초창기때 이런 생각을 한 적이 있습니다. “소프트웨어 기능 구현만 잘하면 될 것이다.”

하지만 그 생각이 잘못되었다는 것을 깨닫는 데는 오래 걸리지 않았습니다. 회사를 이직하고 다른 환경에서 개발일을 하는 순간 저는 개발을 잘 못하는 사람으로 한동안 인식이 되고 말았던 것이지요.

개발일을 설계, 구현, 디버깅 뿐만 아니라 테스트도 잘해야 합니다. 단순히 프로그래밍만 잘한다고 해서 좋은 소프트웨어를 개발하는 것은 결코 아닙니다.

예전에 후배 개발자중에 이런 모습을 본 적이 있었습니다.

저는 기능 구현 위주로 하고 싶은데 왜 자꾸 검증이나 테스트만 시키는 거죠?

그 친구는 경력이 얼마 되지 않은 “신입 개발자” 였습니다. 그 친구에 기능 구현을 시키지 않은 것은 기능 구현을 맡기려고 해도 일정안에 끝낼 수 있는 “능력”이 되지 않았기 때문입니다. 그래서 검증과 테스트를 통해 해당 소프트웨어를 충분히 경험 및 파악하게 하고 난 다음에 기능 구현 일부분을 맡겨도 늦지 않겠다는 생각이었기 때문입니다.

의외로 이런 생각을 하는 개발자들이 많습니다. 개발자는 프로그래밍만 하는게 맞다고 생각을 하지만 실질적으로는 위에서 언급한 설계, 기능 구현, 디버깅, 테스트 등의 모든 절차에 대해 잘 알아야 합니다. 기능 구현만 잘해서는(기능 구현만 잘하는 개발자는 사실 없습니다.) 좋은 개발자가 되기 어렵습니다.

그래서 자신에게 검증 및 테스트만 시킨다고 불만을 품고 퇴사를 하거나 그만두는 사례를 본적이 있습니다. 그러나 감히 예상하건데 그런 친구들은 다른데 가서도 마찬가지 수준밖에 되지 않으며 조만간 개발일을 그만두게 될지도 모릅니다.

개발은 사실 경험한 모든게 도움이 됩니다. 프로그래밍만 잘한다고 해서 좋은 개발자가 되는게 아닙니다. 설계부터 해서 기능 구현, 디버깅 및 테스트까지 잘 해야 좋은 소프트웨어를 만들 수 있게 되는 것입니다. 따라서 자신에게 테스트 위주로 시킨다고 해서 불만을 품거나 자괴감을 느낄 필요가 전혀 없는 것이지요.

또한 그걸 알아야 합니다. 회사에서는 당신에게 능력 밖에 일을 시키길 꺼려합니다. 그 이유는 그렇게 해서 결과가 좋지 않으면 회사에 타격이 되기 때문입니다.

임베디드 소프트웨어 분야로의 진출은 많이 고민해보라

저는 “임베디드 소프트웨어” 분야로 지금까지 경력을 쌓았습니다. 그런데 대다수의 개발자들은 웹, 앱, 서버 등의 “순수 어플리케이션” 분야에 집중되어 있습니다.

임베디드 분야는 꽤 재밌고 제가 좋아하는 분야입니다. 하지만 대한민국에서 “임베디드 개발자”로 살아가는 것은 쉽지 않은 일입니다. 열악한 대우와 박봉에 시달리기 때문입니다.

경력 쌓기도 쉽지 않지만 어렵게 쌓은 경력에 비해 회사의 대우는 좋지 않습니다. 따라서 임베디드 소프트웨어 개발자들이 많이 떠나고 현장에는 인력 공급에 씨가 말랐을 정도입니다.

이런 저런 이유로 전 임베디드 분야를 떠났고, 이 분야에 진입하려는 후배들에게는 솔직한 심정으로는 “당분간 오지 마라” 라고 말을 하고 싶습니다. 노력대비 보상이 충분치도 않고 아직도 환경이 열악하기 때문입니다.

하지만 임베디드 분야의 개발자들은 꾸준히 수요는 있습니다. 그리고 현장에는 이미 인력 공급이 잘 안되기 때문에 프로젝트 진행이 어려울 정도이므로 시간이 조금 흐르면 “처우와 대우”가 좋아질 가능성은 있습니다.

특히 임베디드 소프트웨어 개발자들은 반도체, AI, 사물인터넷(IoT) 분야에서 끊임없이 활약이 가능하므로 전망은 나쁘지 않다는게 재 생각입니다만 지금 당장 진입하기 보다는 어느정도 대우와 처우가 개선된 이후에 진입하는 것도 늦지 않아 보입니다.

처음부터 많은 연봉을 받을려고 하면 안된다. 내가 가는 곳이 “네카라쿠배”가 아닐 가능성이 높다

개발자를 꿈꾸거나 “전직”을 하려는 분들 중에서는 개발자를 하게 되면 “높은 수준의 연봉”을 받을 거라는 기대감이 있는거 같습니다. 그러나 이는 절반만 맞고 절반은 틀립니다.

높은 수준의 연봉을 주는 회사는 그리 많지 않습니다. 위 기사에서 언급한 “네이버, 카카오, 라인, 쿠팡, 배달의 민족, 당근마켓, 토스” 등의 회사에서는 신입 개발자에게도 높은 연봉을 지급합니다. 하지만 그 외에 회사들은 대기업이라고 해도 저 정도 연봉을 지급하지 않습니다.

신입 개발자에게 “6천만원” 수준의 연봉을 지급하는 것은 위에서 언급한 회사 외에는 쉽지 않은 수준입니다. 게임 대기업이나 몇몇 유니콘 기업 외에는 다른 기업들에게는 평균 3천만원 수준의 연봉을 지급하게 됩니다.

많은 연봉을 주는 위의 회사들은 진입 장벽이 꽤나 높습니다. 코딩 테스트와 실무 면접이 어렵기 때문에 경력자들도 합격이 어려운게 현실입니다. 돈을 많이 주는 대신 까다롭게 채용을 하는 셈이지요.

따라서 개발자가 되더라도 처음부터 6천만원 수준의 연봉을 받기는 꽤 어려운 셈입니다. 많은 연봉을 기대하고 개발자가 되려고 했다면 이내 현실의 벽에 부딪히게 될 것입니다.

그렇다고 해서 처음에 3천만원 받았던 연봉이 그대로 되진 않습니다. 노력 여하에 따라서 자신의 스킬과 기술 지식을 잘 쌓고 경력을 잘 쌓으면 연봉은 급격하게 상승하는게 “개발자”의 특성이라고 볼 수 있습니다.

그래서 “처음부터 높은 연봉”을 받으려는 마음은 버려야 합니다. 내가 하고 싶은 분야의 회사를 선택하고 그 회사에서 경력을 잘 쌓고 실력을 키우면 연봉은 자연스럽게 올라가게 되니 시간이 필요한 셈입니다.

미래의 전망을 봤을때는 개발자는 괜찮은 직업이다

마지막으로 개발자의 전망에 대해 제 생각을 적어보겠습니다.

개발자는 포기만 하지 않으면 가능하다 – pixabay

개발자라는 직업을 목표로 삼은 사람들의 고민 중 하나는 과연 개발자의 전망이 어떤가? 입니다.

IT 분야의 개발자는 장점이 있는 직업 중 하나입니다. 컴퓨터 공학이나 전산 전공자가 주로 진출하는 분야이지만 “비전공자” 라고 해도 누구에게 기회는 열려 있는 직업입니다. 따라서 본인의 노력 여하에 따라 얼마든지 개발자로 살 수 있고 성공할 수 있습니다.

전망에 대해서는 고민을 할 필요가 없습니다. “매우 좋기” 때문입니다. 제가 임베디드 소프트웨어 분야에만 15년 경력을 쌓았고 그 분야가 열악하고 대우가 나쁘지만 개발을 선택한 게 후회가 되지는 않습니다. 그 이유는 “기회가 무궁무진” 하기 때문입니다.

일단 향후 산업에서 꼭 필요한 분야는 “소프트웨어” 입니다. 소프트웨어가 없이 제품을 만들거나 서비스를 만드는 것은 향후에는 불가능합니다. 그만큼 모든 산업에는 “소프트웨어” 가 필수적인 요소입니다.

주로 제조업에서 경력을 쌓았지만 웹이나 앱, 서버 쪽 분야로 제가 진출하지 말란 법은 없습니다. 관련 경력을 쌓으면 충분히 진출이 가능하며 더 많은 연봉과 좋은 대우를 받는 것도 가능합니다.

즉 “개발자(프로그래머)”는 경력이 자산인 셈입니다. 회사가 불안정해도 다른 회사로 이직을 하면 됩니다. 그리고 “프리랜서” 일자리도 끊임없이 수요가 있기 때문에 당신이 “경력”만 쌓는다면 나이가 들어서도 개발자로 사는게 가능해집니다.

이처럼 개발자는 엄청난 장점 뒤에 위에서 언급한 “단점” 들이 혼재해 있습니다. 당신이 개발자를 꿈꾼다면 “단점”들을 잘 보완하여 “장점”으로 승화시킨다면 꽤 좋은 직업이 되는 것은 분명합니다.

개발자를 꿈꾼다면 “포기” 하지 않으면 됩니다.

'코드도사(codedosa.com)'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.