블로그를 오래 운영하고 있는 덕분인지 간혹 진로에 대해 질문을 받곤 한다. 가능하다면 성의껏 답변해주려고 하지만 때로는 시기가 맞지 않아서 답변을 못하는 때도 있다. 여러 질문을 받다보면 겹치는 부분이 많은데, 아마 많은 사람들이 비슷한 고민을 하고 있기 때문이라 생각한다. 그래서 기회가 될 때마다 과거에 했던 답변을 정리해서 올려보려고 한다. 비슷한 고민을 하고 있는 분들에게 도움이 되었으면 하는 바람이다.
참고: 아래 내용은 실제 상담자가 했던 질문과 내가 했던 답변에 기반하고 있지만, 더 명료한 전달과 개인 정보 보호를 위해 다소 각색되었다.
면책 조항: 이 글에는 답변자의 개인적인 경험이나 편견이 반영되어 있으니 감안하고 읽자.
질문
안녕하세요. ‘프론트엔드 개발자는 왜 구하기 어렵나요?’라는 글을 읽은 후 여러가지 개인적인 상담/질문을 드리고 싶어 이렇게 글을 쓰게 되었습니다.
저는 프론트엔드 개발자라는 직업이 너무나 매력적이라고 생각하는데, 태곤님께서 번역하신 글을 읽어보니 제가 바로 그 나쁜 프론트엔드 개발자의 기질을 가진 듯 합니다. 코드를 완전히 이해하지 못한 채 가져다 쓰기만 하고 디자인도 트렌디한 걸 카피하는 수준입니다.
개발자가 되고 싶은 마음에 제 상황을 말씀드리고 조언을 구해보려고 합니다.
저는 30대 초반 남성이고 최근 유부남이 되었습니다. 전공은 경제쪽이었고 무역회사 등을 거쳤습니다. 개발자도 디자이너도 아니지만, 해외 코딩 열풍에 관한 기사를 읽고 처음 웹에 관심을 가진 후 Codecademy, 생활코딩 등을 보며 조금씩 공부해왔습니다. 회사 홈페이지(주소 있었음)도 기획부터 디자인, 코딩까지 혼자 다 해보기도 했습니다. 보시면 알겠지만 부트스트랩 기반으로 자바스크립트쪽 지식은 거의 없이 복사해서 붙이는 수준으로 작성되었습니다.
그 외에도 이런저런 사이트(주소 있었음)도 만들었습니다. 모두 전문가가 보기엔 완성도가 떨어지겠지만 개인적으로는 너무 즐겁게 작업했고 하나씩 알아가는 재미에 행복했습니다.
어쩌다보니 회사에서는 한 번도 배운 적도 없는 홍보물, 웹 디자인, 편집 디자인을 담당하고 있습니다. 만약 개발자가 된다면 제대로 시작해서 좋은 개발자가 되고 싶은 마음이 있습니다. 하지만 어디서부터 시작해야 할 지 잘 모르겠더라구요. 의욕만 앞선 것은 아닐까, 나이도 적지 않은데 하는 생각이 발목을 잡았습니다.
며칠 전 프론트엔드 개발 수업을 문의했던 곳에서 태곤님이 강의하신 적 있다는 얘기를 듣고 용기내어 물어보자고 생각하여 이렇게 글을 쓰게 되었습니다.
제 배경을 말씀드리면 더 좋은 조언을 얻을까 하는 마음에 글이 길어졌습니다. 요약하자면...
- 늦은 나이, 프론트엔드 입문에 대한 전문가님의 솔직한 견해
- 개발자 부트캠프는 취업에 도움이 될까요? 개인차가 있겠지만 성실하게 수업을 잘 따라가는 분들은 어느 정도 수준의 개발자로 시작하게 되는지요.
- 가정이 있습니다. 아무래도 신입으로 시작할텐데 초봉은 평균적으로 어느 정도가 될까요
- 좋은 회사는 어떻게 고를 수 있을까요. 연봉보다 중요하게 보아야 할 점은 뭐가 있을까요
일단 시작하게 되면 열정을 다해 달리면 되겠지만, 그 시작이라는 것이 망설여지고 있습니다. 해주실 조언이 있다면 거침없이 해주세요. 너무 큰 도움이 될 것 같습니다.
답변
안녕하세요
일이 바빠서 + 쉽게 답을 드리면 안될 것 같아서 메일을 받고 조금 늦게 답을 보내게 되었습니다. 현업에서 프론트엔드 개발자로 일하고 있긴 하지만 제가 드리는 말씀은 전체 업계를 대변하지 못하는 개인적인 의견일 뿐입니다. 아래 답변은 참고만 하셨으면 좋겠습니다.
문의해주신 몇 가지 질문에 제 나름의 답을 내보았습니다.
1. 늦은 나이, 프론트엔드 입문이 괜찮은가?
입문이라는 단어만 놓고 보면 당연히 괜찮습니다. 심지어 늦은 나이도 아니예요. 지금 프론트엔드 개발에 입문했다해도 나중에는 다른 직군에 있을지도 모릅니다. 프론트엔드 개발이라는 직군만 놓고 보면 국내에 만들어진 지 불과 10년 정도 밖에 안됩니다. 10년 후에는 또 어떻게 될지 모릅니다. 그래서 사실 대부분의 개발자들은 '평생 공부한다'라는 생각으로 살아갑니다. 그렇지 않으면 오래도록 버티기 힘든 직업이기도 하고요.
2. 현실적인 장벽?
프론트엔드 기술이 처음엔 쉽고 재미있는데 결국 개발자로서 깊이 발전하려면 전공 지식에 준하는 프로그래밍 지식이 필요합니다. 지금은 자바스크립트, HTML, CSS만 알면 될 것 같지만 네트워크 지식, 디자인(개발쪽에선 '설계'라는 의미로 쓰입니다) 패턴, 객체지향 패러다임, 비동기 처리, 쓰레드, 심지어 자바스크립트 엔진 최적화 기법 등도 알아야 합니다. 당연히 한꺼번에 모든 걸 알 수는 없겠지만 결국 다 공부해야 할 것입니다. 쉽지는 않아요.
그 밖의 다른 사회적인 장벽에 관해서는 뒤에 말씀드리겠습니다.
3. 부트캠프가 취업에 도움이 될까?
반쯤은 그렇다, 반쯤은 아니다라고 답할 수 있는데 "직접적인"이라는 단어를 추가한다면 "아니다"라고 답하겠습니다.
이건 문의하신 부트캠프 프로그램에 한정된 말이 아니라 다른 기반 지식없이 2~3개월 정도 배운 지식으로 취업이 '보장'된다고 말하는 곳이라면 의심부터 하는 게 당연하다 생각합니다. 제대로 된 회사일수록 구인 과정이 까다롭습니다. 따라서 설령 취업이 된다해도 다른 종류의 걱정을 해야하는 상황이 올지도 모릅니다.
다만, 프론트엔드 개발 지식을 쌓는데는 정도의 차이는 있을지언정 도움이 되리라 생각합니다.
4. 신입 초봉은?
보통의 개발자와 거의 비슷하거나 조금 작습니다. 국내 일부 기업에선 "프론트엔드 개발자"를 서버 개발자보다 좀 낮게 보는 경향도 있는 것 같습니다.
당연히 초봉은 회사마다 다릅니다. 제가 몇 년 전 네이버에 있을 때는 3~4천 수준이었던 것 같은데 지금도 아마 크게 다르진 않을 것입니다. 네이버가 업계 Top급인걸 생각하면 2천 미만도 있을 것입니다.
5. 좋은 회사란?
이건 본인의 사회 경험에 비추어 보셔도 비슷할 겁니다. 구성원을 낮잡아 보거나 오너가 직원을 파트너로 보는 게 아니라 "너네는 나한테 돈 받아 가는 사람" 정도로 보는 곳은 당연히 피해야 합니다.
개발자라면 가능하다면 개발 자체가 주 업무인 곳으로 가는게 성장하기에 좋습니다. 예를 들어 대기업 전산실같은 경우 개발 부서가 지원 부서의 느낌이라 평소엔 온갖 잡다한 일을 하다가 큰 개발 건이 생기면 외주를 주는 경우가 많아 정작 개발 실력은 크게 늘기 어렵습니다.
같은 이유로 이왕이면 프론트엔드가 많이 쓰이는 곳을 가는 편이 좋습니다. 모바일 앱 게임을 주로 만드는 곳이라면 프론트엔드에서는 비슷한 게임 홍보 웹 사이트를 찍어내는 일을 주로 하게 될 수 있습니다. 당연히 실력이 늘기 어려우며 이직할 때 보여줄 포트폴리오도 마땅한 게 없게 됩니다.
추가
여기부터는 제가 드리는 말씀입니다.
얼마 전에 결혼을 하셨다고 했는데 저도 가정이 있는 입장에서 말씀드리면 지금 신입 프론트엔드 개발자로 가는 건 말리고 싶습니다. 적어도 개발자로서 가장 중요한 것(=프로그래밍에 대한 흥미)을 갖추신 듯 보이긴 하지만, 현실은 녹록치 않습니다. 프론트엔드 개발자라는 자리는 그리 많지 않으며 대체로 소수를 뽑기 때문에 당장 전력이 될 경력자를 요구합니다. 신입을 뽑을 여력이 되는 대기업에 눈을 돌려보면 화려한 스펙을 갖추고 있으면서도 나이가 어린 경쟁자들과 겨루어야 합니다. 가끔 주위 사람들에게 "지금 신입으로 가라면 나도 힘들겠다"라고 말할 정도지요.
그렇다고 이왕 타오른 열정을 접어두라는 건 아닙니다. 공부를 계속 하시면서 지금처럼 프론트엔드 기술을 하시는 일에 접목하여 "프론트엔드 기술도 꽤 다루는 디자이너"로 포지셔닝을 해보는 편이 좋다고 생각합니다. 요즘은 코딩까지 하는 디자이너 분도 많다지만 아직도 많은 국내 웹 디자이너 분들은 해외와 달리 자바스크립트는 물론 HTML, CSS 코딩에도 약한 모습을 보입니다. 이 때 본인의 포트폴리오에 디자인에 인터랙션까지 겸비한 작품이 포함된다면 더 나은 대우로 이어질 수도 있다 생각합니다. 이미 많은 디자이너 분들이 http://codepen.io/ 등에 작품을 올리고 있습니다.
경력같은 신입을 요구하는 사회에서 경력이 없지만 경력이 있는 것처럼 보이고 싶을 때는 오픈소스 프로젝트에 참여하거나 공개 커뮤니티에서 활동해보는 것도 좋은 방법입니다. 저도 첫 회사에서 서버 개발자로 지내면서 자바스크립트 공부를 많이 하고, 이를 맡았던 프로젝트에 적용해보고 관련 팁을 공개적인 커뮤니티에 올려두었는데, 덕분에 네이버에 입사할 수 있었습니다.
오픈소스 프로젝트는 대체로 개발자들이 참여하다보니 디자이너의 수가 절대적으로 부족합니다. 따라서 디자이너가 참여한다면 환영받는 경우도 많습니다. 만약 참여할만한 프로젝트가 없다면 직접 시작해보셔도 되고요. 예를 들어 부트스트랩에는 없는데 한국 웹 사이트에는 꼭 필요한 컴포넌트를 만든다거나 아니면 사용하셨던 것 같은 웹 사이트 템플릿을 직접 만들어본다거나 하는 방법이 있습니다.
오픈소스 호스팅 사이트로는 http://github.com을 많이 사용하는데 여기를 사용하려면 Git이라는 버전 관리 체계에 대해서도 알고 계셔야 합니다. 오픈 소스를 하는 개인 사용자는 무료로 사용할 수 있으므로 별도의 비용이 필요하지도 않습니다.
...
여기까지 하셨던 질문에 대해 제 나름대로는 성의껏 답변을 드렸습니다만 충분한 답이 되었는지는 모르겠습니다.
좋은 글 읽고 갑니다. 희망은 가지되 현실은 냉정하다는 뜻으로 받아들이고 싶네요... 10년차 임베디드 개발자로 작년부터 임베디드 보드의 프런트엔드 쪽 업무가 생겨서 진행하고 있는데, 쉽지 않네요... 특히 js 는 얕은 지식으로 뭔가 해보려고 하다가 버그를 마구 생성하느라 한숨을 자주 쉬게 되네요... 아이도 있고 해서 따로 시간내서 공부하는 것도 힘들고... 여튼 이 글 보면서 저는 그나마 나은 상황이라고 생각되서 다른 분들께는 죄송하지만 힘을 얻고 갑니다.