이 아티클은 <꿈의 직장 '네카라쿠배당토'> 시리즈의 1화입니다.*해당 아티클은 wanted+ 영상 [우테코X원티드] 오늘의 개발자 : 프론트엔드2 를 바탕으로 구성되었습니다.기획 의도프론트엔드 개발자를 꿈꾸며 열심히 공부했고 프로젝트 경험도 나름대로 쌓아왔는데, 막상 본격적으로 취업 시장에 뛰어들어 보니 아직도 갈 길이 너무 멀다. 신입 프론트엔드가 되려면 무엇을 얼마나 더 공부해야 할까? 이력서와 포트폴리오는 어떤 기준으로 평가받는 걸까? 몇 번인가 불합격을 겪다 보니 이제는 제대로 준비하고 있는 게 맞는지 확신도 없다. 불안 속에 헤매는 미래의 프론트엔드 개발자들에게 네이버 개발자이자 <코어 자바스크립트>의 저자인 정재남이 명쾌한 해답을 제시한다.이런 분이 읽으면 좋아요- 신입 프론트엔드 개발자를 목표로 하시는 분- 열심히 준비했는데 취직이 안 돼서 답답하신 분- 정보가 없어서 선배의 가이드가 간절하신 분이런 인사이트를 얻을 수 있어요- 신입 프론트엔드가 되기 위한 학습 방향성- 이력서와 포트폴리오를 준비할 때의 중요 포인트- 개발자로서 성장할 수 있는 경험을 쌓는 방법 
정재남 님 ⓒ 정재남
프론트엔드 개발자가 하는 일
Q. 프론트엔드 개발자는 어떤 일을 하나요?
화면에 보이는 모든 것을 만듭니다. html, CSS, 자바스크립트를 이용해 마크업 화면에서 이루어지는 애니메이션이나 인터랙션 구현, UI 성능 최적화 같은 일들을 합니다. 서버에 데이터를 요청하고 응답을 받아서 화면에 뿌려주는 것도 프론트엔드의 일입니다. 그래서 XMLHttpRequest, 웹소캣, 쿠키, 로컬스토리지, 세션스토리지 등을 다룹니다.
보통 문제가 생겼을 때 디자이너나 기획자가 제일 먼저 찾는 사람이 프론트엔드예요. 프론트엔드가 원인을 파악한 후에 백엔드로 넘겨주는 경우가 굉장히 많죠. 그럴 때 동료들이 서로 잘 이해할 수 있도록 유연하게 소통하는 커뮤니케이션 스킬도 굉장히 많이 요구되는 직군이라 생각합니다.
Q. 앞으로 프론트엔드 개발자의 전망은 어떤가요?
기존의 멀티 페이지 애플리케이션에서는 html, CSS로 하드코딩해 놓은 걸 백엔드에서 템플릿 언어로 변환하고, 프론트엔드는 서버와의 데이터 통신을 제한적으로만 사용할 수 있었어요. 그런데 싱글 페이지 애플리케이션 시대가 되면서 템플릿 언어까지 프론트엔드가 맡는 경우가 많아졌고, GraphQL 등 데이터를 직접 가공하는 일까지 넘어오는 추세입니다. 데이터 캐싱, 라우터 관리 등 업무 영역이 넓어지고 있어서 프론트엔드 개발자의 중요도가 점점 높아지고 그만큼 요구되는 스펙도 올라가고 있죠.

ⓒ 정재남
학습 방향
Q. html, CSS, js… 무엇을 어느 정도까지 공부해야 하나요?
일단 웹페이지 하나를 화면에 온전하게 보이도록 구현하는 게 기본 소양이라고 생각합니다. 일반적으로 백엔드와의 데이터 통신에 포커스를 맞춰서 그쪽으로 특화된 프론트엔드와 html, CSS를 바탕으로 UI와 인터페이스 및 인터랙션 등을 아우르는 프론트엔드, 이렇게 크게 둘로 나눠진다고 보거든요.
html, CSS는 조금이라도 공부하셔야 합니다. CSS를 알고 모르고가 화면상의 성능에 굉장한 차이를 주는 경우가 꽤 있어요. 자바스크립트는 스코프, 클로저, 실행 콘텍스트 정도의 핵심 개념들을 정확히 이해해야 하고, DOM 제어도 할 수 있어야 합니다. 데이터 통신은 CRUD 정도는 할 줄 아는 상태여야 실무에서 더 다양한 통신 기법들을 학습해나갈 수 있을 거고요.
Q. 백엔드 영역까지 모든 사이클을 이해하고 있어야 하나요?
경험 삼아 DB까지 구현해 보는 건 나쁘지 않지만 로컬 DB나 JSON 서버를 이용해도 충분합니다. 리퀘스트 연습만 할 수 있으면 프론트엔드의 역할은 거기까지라고 생각해요. CS 지식도 자바스크립트 교재 같은 데서 나오는 정도면 충분하다고 봅니다. 백엔드와 협업하면서 필요할 때마다 검색해서 공부하시면 됩니다.
그리고 최신 기술을 어떻게 따라가야 하는지도 많이 물어보시는데 취준생이라면 기본기가 훨씬 중요합니다. 요즘은 어느 회사든 리액트나 뷰를 요구하니까 리액트를 아예 안 할 수는 없겠죠. 그렇지만 반드시 리액트를 마스터해야만 취업할 수 있다고 생각하실 필요는 없습니다.
Q. 마크업 역량은 얼마나 갖춰야 할까요?
회사마다 다릅니다. 퍼블리셔나 마크업 개발자가 따로 있어서 html, CSS를 아예 다룰 권한이 없거나 이미 만들어진 코드를 조금씩만 수정할 수 있는 경우라면 자바스크립트와 데이터 연동에 중점을 둘 수밖에 없겠죠. 반면 프론트엔드가 CSS 및 마크업까지 맡아야 하는 경우라면 디자이너와의 협업이 좀 더 중요해집니다.
개인적으로 주니어 시절에는 html, CSS까지 전부 다룰 수 있는 환경이 더 좋은 것 같아요. 실수하거나 서툴러도 괜찮은 시기에 자바스크립트에만 매몰되었다가 연차가 쌓인 후에 html, CSS 못한다는 얘기를 듣는 것보다는 초반에 해보는 게 낫지 않을까 생각합니다.
Q. 이론 중심으로 공부하고 있는데, 프로젝트를 진행하면서 모르는 부분만 찾아보는 방법이 더 좋을까요?
보통 학습 유형이 실전파와 이론파로 나뉘잖아요. 근데 일단 프로젝트를 시작하고 모르는 부분만 찾아보는 사람도 나중에는 공부해야 하는 시점이 와요. 마찬가지로 이론부터 공부하는 사람도 어느 정도 지나면 실전에 들어가야 하니까 결국 똑같아지거든요. 어느 쪽이든 본인에게 맞는 방법으로 하시면 됩니다. 다만 목표 기한이 있다면 무엇을 먼저 할지 전략을 잘 세우시면 될 것 같아요. 저는 개인적으로 실전파를 선호합니다. 직접 해봐야 이해할 수 있는 부분들이 너무 많아서요.
Q. 코딩 테스트는 어떻게 준비해야 할까요?
한 문제를 하루에 한 시간 이상 고민하지 않았으면 좋겠어요. 다음 날 기적처럼 풀릴 수 있거든요. 그때도 안되면 답을 봐야죠. 알고리즘은 하루아침에 마스터할 수 없어요. 어느 정도 컴퓨터 사이언스를 공부하신 분들과는 이미 스타트 지점이 다릅니다. 갑자기 차이를 좁히려는 것보다 느리더라도 꾸준히 공부해서 다음을 노리는 게 나아요. 작은 회사들은 알고리즘이나 CS 지식을 묻는 경우가 생각보다 많이 없을 거예요. 그러니까 전략적으로 접근하시라는 거죠.
Q. 코딩 테스트 관련 자료를 보면 자바스크립트로 된 경우가 많이 없는데, 자바스크립트로 준비해도 되나요?
괜찮습니다. 왜 무리하게 다른 걸 해야 하는지 저는 잘 모르겠습니다. 보통 필독서라고 하는 책들이 자바로 쓰인 경우가 많은데 저는 자바스크립트밖에 몰라서 어떻게든 바뀌어 있는 코드를 찾아내거나 제가 직접 바꿔서 이해하거나 하고 있어요. 그래도 잘 살고 있습니다. 걱정하지 마시고 자바스크립트만 잘하세요.
Q. 비전공자인데, 공부를 해도 실력이 빨리 늘지 않아서 초조합니다.
학습은 누적됩니다. 많은 것을 주워 담다 보면 점점 쌓여서 어느 순간 빵하고 터지는 시점이 와요. 각자 페이스가 있으니 빠르든 늦든 이미 최선을 다하고 있다면, 그 이상의 강박은 가급적 내려놓으시길 바라요. 코드가 이해가 안 되면 일단 넘어가세요. 다음번에 다른 코드를 접했을 때 어느 순간 이해가 돼서 다시 보면 그 코드도 눈에 훤하게 보이는 시점이 올 거예요.

ⓒ 정재남
구직 팁
Q. 이력서에는 무슨 내용을 어떻게 써야 할까요?
일단 회사의 관심을 끌어야 합니다. 첫 페이지에는 본인이 어필하고 싶은 핵심 키워드가 다 들어가 있어야 해요. 이력서에 신경을 많이 쓰고, 포트폴리오가 보기 좋고, 깔끔하게 정리한 사람한테 눈이 더 갈 수밖에 없어요. 이력서의 문장이 눈에 잘 들어오는지, 오타나 비문은 없는지 등 사소한 부분에서 당락이 결정되기도 합니다.
작고 간단하더라도 상관없으니 가급적 다양한 프로젝트를 하세요. 동영상 사이트를 예로 들면, 동영상 재생과 관련한 기능들은 다른 도메인에서는 경험할 수 없는 것들이죠. 이처럼 도메인별로 특수한 기능을 구현하기 위해 고민한 경험을 이력서에 기재할 수 있다면 큰 힘이 될 것입니다. 그리고 커뮤니케이션, 협업 능력을 어필하실 수 있다면 꼭 넣으시고요.
Q. 포트폴리오는 어느 정도 퀄리티로 만들어야 하나요?
포트폴리오 사이트는 깔끔하게 보이고 문제없이 동작하도록 꾸미면 됩니다. 그 이상까지 요구하지는 않는다고 생각해요. 신경을 쓰셔야 할 부분은 코드에 고민의 흔적이 녹아 있느냐예요. 예를 들어 반복 작업을 줄이려고 어떤 방법을 시도했는지, 저번에 이렇게 했는데 그 다음에는 어떤 시도를 했는지, 뭔가를 고민하면서 주석을 달았다거나, 개선사항이 커밋로그에 남아있다거나 등등, 코드를 보면 얼추 알 수 있거든요.
예전에 했던 프로젝트를 리팩터링해보세요. 완성도가 떨어지거나 자신이 없는 코드가 있다면 새 프로젝트를 진행할 때는 어떻게 바꾸겠다고 어필하셔도 좋습니다. 팀 프로젝트의 경우도 마찬가지로, 계속 개선사항을 찾아 커밋을 올렸다면 면접관에게 좋은 인상을 줄 수 있겠죠. 그 밖에도 본인이 할 수 있는 방법을 계속 찾아서 노력하시면 될 것 같습니다. 고민의 흔적이 드러난다는 게 그런 부분도 있는 거죠.
Q. 깃헙(GitHub)이나 블로그는 꼭 해야 하나요?
깃헙 잔디를 많이 심었다면 코딩을 꾸준히 한다고 어필할 수 있는 좋은 도구가 되겠죠. 또 블로그 등에 TIL(Today I Learned)을 꼬박꼬박 쓰는 것도 굉장히 좋은 방법입니다. 문제는, 대강 아무거나 써서 개수만 맞추는 식이면 안 하느니만 못하다는 거예요. 양이 많으면 아무래도 관심이 가기 때문에 면접관이 내용을 자세히 보거든요. 그러니까 양과 질을 모두 충족시킬 자신이 없다면 그냥 코드 퀄리티를 향상하는 데에 집중하시는 게 훨씬 좋습니다. 남들이 다 한다고 너무 현혹되지 마세요.

ⓒ 정재남마인드 셋
Q. 저를 성장시켜줄 회사에 가고 싶은데, 어떻게 찾을 수 있을까요?신입사원을 적극적으로 키우는 회사가 있다면 그건 정말 고마운 일이지만, 사실 입사하시면 사수도 없이 혼자 프론트엔드 개발자일 확률이 높아요. 마찬가지로 좋은 개발 문화가 있으면 감사한 일이지만 없다고 해서 나쁜 회사인 것도 아닙니다. 대기업도 똑같아요. 주먹구구식이거나 개발 문화가 형식만 있는 경우도 많습니다. 그러니까 너무 기대하고 가시면 실망하실 거예요. 팀을 짜서 토이 프로젝트를 많이 해보세요. 사수가 없거나 개발자가 혼자라면 팀 프로젝트를 하면서 협업도 해보고 코드 리뷰도 하시는 게 훨씬 더 좋을 수도 있어요. 그런 경험을 바탕으로 회사에 더 발전적인 제안을 주시는 것도 굉장히 좋은 방법이 되지 않을까 생각합니다.Q. 첫 직장은 무조건 큰 회사로 가야 하나요?그럴 수 있으면 당연히 좋겠죠. 그런데 확률상 1~2% 정도만 갈 수 있는 그런 회사에 지원자가 쏠리니까 코딩 테스트가 어려워지는 측면도 있습니다. 처음에는 스타트업이나 중소기업에 들어가서 경험을 쌓으면서 이직을 노리시는 것도 좋은 전략이에요. 첫 직장, 초봉이 중요하다고들 하는데 제 생각은 달라요. 초봉 5천인 회사에 경력직으로 이직하면 그 회사의 신입 연봉보다는 높게 줄 수밖에 없거든요.특히 IT 업계는 워낙 이직을 많이 하니까 평생직장을 고르는 게 아니에요. 경력을 쌓으면 이직이 훨씬 쉬워지니까 일단 어디로든 취업하는 게 더 중요합니다. 못 버틸 회사라면 빨리 옮기는 게 좋을 수도 있지만, 버텨야겠다는 생각이 든다면 최소한 1년은 다니시고요. 힘들어도 1시간이든 10분이든 매일 꾸준히 공부하세요. 초반에 열심히 하시면 나중에 훨씬 수월해질 거예요. Q. 취업하기에는 아직 실력이 부족한 것 같습니다.실력이 뛰어나면 어디든 다 붙을 거라 생각하지만 사실 그렇지 않아요. 큰 회사 하나만 합격하고 나머지는 다 떨어지는 경우도 많아요. 상황이나 시기가 안 맞으면 그럴 수 있다는 겁니다. 그러니까 무조건 많이 지원하세요. 저는 이력서를 500개 넣었는데 그중에서 두 군데 면접 보고 딱 하나 붙었어요. 결국 나를 붙여 줄 회사 하나만 찾으면 되는데, 많이 지원하지 않았으면 그건 못 잡았을 운인 거죠.3년 차, 10년 차를 뽑아도 일단 지원하세요. 3년 차에 준하는 실력을 판단할 수 있는 기준은 어느 회사에도 없습니다. 채용 공고에 적혀 있는 내용을 반드시 모두 충족시켜야지만 합격하는 것도 아니에요. 기본기가 잘 갖춰져 있다면 그 이상의 요구사항은 회사에서 판단합니다. 그러니까 가능성을 스스로 닫아버리지 않으셨으면 좋겠습니다.어느 때보다도 더 경쟁이 치열한 시대입니다. 떨어질 때마다 하나하나 상처받지 마시기 바라요. 꼭 실력이 부족해서가 아닙니다. 동료 취준생들이나 커뮤니티를 보거나, 스터디를 꾸려서 팀 프로젝트를 진행해 보세요. 여러 명의 코드 품질이나 개발 이해력을 보면 기준이 생깁니다. 거기서 내가 평균 정도라면 이미 충분할 수도 있어요. 장기적인 안목을 가지고 남들도 다 거기서 거기라는 마인드를 가지시길 바랄게요.기타
Q. 저는 나이가 많아서/여자라서 취업에 불리할 것 같은데 실제로 그런가요?제가 첫 회사에 들어갈 때 33살이었어요. 나이가 많아서 오히려 좋다고 하면서 절 뽑아주셨어요. 기존 팀원들과 합이 잘 맞을 것 같았다고 하시더라고요. 그게 원래 10년 차 이상을 뽑는 자리였고 한 분이 이미 채용 확정된 상태였어요. 그런데 회사에서 그분과 저를 붙여놓으면 괜찮겠다고 판단했다는 거예요. 많이 지원하다 보면 그런 경우도 생길 수 있습니다.쉬운 길은 아니겠지만, 어디선가 나를 알아봐 주기를 바라는 마음으로 계속 노력하시다 보면 맞는 회사를 찾으실 수 있습니다. 제가 498번 탈락하면서도 마음 상하지 않을 수 있었던 이유는 나이가 많기 때문에 남들보다 더 많이 떨어지는 게 당연하고, 그래서 더 많이 지원할 수밖에 없다고 생각했기 때문이에요. 현실을 받아들이면서 그 안에서 할 수 있는 최선을 다한다면, 설령 결과가 만족스럽지 못하게 되더라도 후회는 남지 않을 거잖아요. 그런 마인드를 가져가셨으면 합니다.Q. 취업하기는 했는데 예전만큼 열정이 안 생깁니다. 어떻게 하면 다음 단계로 잘 성장할 수 있을까요?우리는 꼭 엄청나게 훌륭한 개발자가 되어야만 하나요? 계속해서 성장하는 개발자여야만 하나요? 그렇지 않습니다. 물론 성장하는 것 자체는 좋은 일이겠지만, 그러기 위해 한순간도 쉬지 않고 끊임없이 달리기만 해야 하는 건 아니에요. 힘들 때는 그냥 쉬어 가세요. 그게 개발자로 오래오래 일할 수 있는 더 좋은 방법이라고 생각해요. 10년쯤 일하다 보면 다 비슷해져요. 그러니까 압박을 심하게 받지 않으셨으면 해요. 공부하는 건 좋죠. 그런데 남들이 '개발자는 끊임없이 성장해야 한다'고들 하니까 그 말에 쫓기듯이 공부만 하는건 여러분 인생에 그닥 바람직하지 않다고 생각해요. 본인 상황에 맞는 페이스를 찾아서 공부와 휴식, 여가 등을 적절히 분배하시길 바랍니다.▶ <꿈의 직장 ‘네카라쿠배당토’> 시리즈 보러 가기CREDIT
이동은ㅣ객원 에디터발행일 2021.02.03