신입 프론트엔드 개발자를 위한 스킬셋

어제밤 어떤 QnA를 보고 깜짝 놀라고 적잖이 당황했습니다.
프론트엔드 개발자로 취업을 희망하는 분이 요구스킬을 물었는데, 답변하신 분이 이제 막 4년차에 접어든 저조차도 잘 모르는 내용들을 나열해 두었더군요.



이에 제가 생각하는 요구스킬셋을 적어보고자 오랜만에 글을 끄적입니다.





일반적으로 신입에게 기대하는 바는 당장 실무에서 쓰이는 다양한 프레임워크나 라이브러리의 활용능력이 전혀 아닙니다.

각 회사마다 실무에서 쓰이는 기술이 저마다 다를뿐 아니라, 이제 막 대학을 졸업하거나 졸업 예정인 학생들이 실무에서 쓰는 기술을 알고 있으리라고는 전혀 기대하지 않기 때문입니다.



학교는 물론 전문기술학원에서도 그러한 기술들은 알려주지 않는다는 것을 잘 알고 있기 때문에, 오히려 웬만한 신기술들을 두루 섭렵하고 있는 신입은 사내 분위기를 고려하여 꺼려하는 경우도 있을 정도입니다.

실무를 겪어보지 않은 사람이 독학이나 스터디 등에서 지식을 쌓았다면, 그 지식이 잘못되어 있을 경우 회사 입장에서는 그걸 파악하거나 바로잡기 위한 추가비용의 우려도 있을 것이고요.



물론 간혹 운 좋게 다양한 루트로부터 양질의 지식을 두루 섭렵한 취준생도 있겠고, 그런 분들의 면접은 남들과 다를 수 있습니다. "신입인데 이걸 안다고? 저것도 안다고?? 헐...요건 어때???"

이런 식으로 흘러가겠죠. 그러나 이것이 일반적인 케이스는 전혀 아님을 강조하고 싶습니다.



서두가 길어졌는데, 이제 본론으로 넘어가서 제가 생각하는 프론트엔드 신입 개발자의 요구스킬을 적어보겠습니다.



- html: 웹표준, 웹접근성 등 두루 잘 하시길 기대합니다.



- css: 모든 프로퍼티의 성격과 동작원리를 잘 이해하고 있어야 합니다. 크로스브라우징을 위한 다양한 해결방법을 알고 있다면 더욱 좋겠습니다. less/sass 등의 전처리기는 입사 후 익혀도 충분하므로 기대하지 않으며, 오히려 이걸로 작업하는 경우 기본기의 반복숙달이 덜 되었을 수 있다는 의심을 살 수 있습니다.



- javascript: 순수 js의 모든 기능을 줄줄이 꿰고 있으리란 기대를 전혀 하지 않습니다. 설령 뛰어난 스킬과 다양한 메소드를 과시하는 지원자라 하더라도, 실무에서 경험을 통해 얻을 수 있는 지식은 당연히 없을 것이므로 큰 의미를 둘 것 같지 않습니다.

다만 프로그래밍 두뇌를 갖췄는지 여부를 판단하는 데엔 자바스크립트 능력이 중요한 변수가 될 것입니다. 그중에서도 반복문, 조건문에 대한 감이 있는지 여부를 가장 기본으로 꼽겠습니다.



- jquery: 학원 수강생이라면 제이쿼리를 이용하여 다양한 ui를 구현하는 내용을 학습했으리란 기대가 있습니다. 이에 최소한 학원에서 가르치는 정도의 스킬은 갖고 있기를 바랍니다. 셀렉터, 클래스 및 어트리뷰트나 css 처리, 애니메이션, 이벤트 핸들링, 무엇보다도 플러그인 적용 및 활용 능력!



- ajax: 실무에서 ajax를 다룰 일이 많은 회사라면 이에 대한 이해도 요구하는 경우가 있겠으나, 디자인 위주의 에이전시라면 이보다는 이벤트 처리에 좀더 높은 비중을 둘 것입니다.



- angular/react 등의 프레임워크: 최근엔 스타트업 등에서 react/angular 등으로도 신입을 뽑는 경우가 늘고 있는 것 같지만, 그런 경우에도 보통 신입을 뽑는다는 것은 입사 후 회사 상황에 맞게 가르쳐 키울 수 있다는 생각을 한 회사일 것이므로, '들어는 봤으나 써보진 않았다' 정도로도 충분할 것이라 생각합니다.



- git: 써봤다면 좋고 아니어도 무관합니다. 결정적인 영향을 줄 만큼 핵심적인 기술이 전혀 아닙니다.



- nodejs: 위의 angular/react 등을 쓰고 있는 회사라면 혹시 모를까, 대체로 이걸 신입한테 요구하는 회사는 없습니다. 혹 있다면 그런덴 가지 마세요. 고생길이 훤합니다..



어떤 직업이든 취업준비생이 실무에서 직접 사용중인 기술 전부를 알고 있길 기대하는 경우는 없다고 생각합니다. 최근 취업난이 심각해져서 취준생들이 조바심 나서 다양한 루트로 다양한 지식들을 얕고 넓게 섭렵하곤 하는 것 같습니다만, 뭐니뭐니해도 기본이 가장 중요합니다. 기본기가 갖춰져 있다면 새로운 기술에 대한 이해가 월등히 빨라지며, 회사도 그런 기본기 충실한 신입을 뽑아서 키우는 편이, 어설프게 이것저것 많이 아는 신입을 뽑는 것보다 훨씬 이득임을 잘 압니다.



취업이 안되니 조바심 날테고, 남들보다 더 많이 알아야만 취업이 잘 될 것 같지만, 실은 그런 것보다 가장 중요한 것은 배우려는 자세, 겸손한 태도, 노력하는 모습, 무엇보다도 '즐기는' 마음가짐입니다. 위축되지 마시고, 기본을 충실히 다지시기 바랍니다. 그리고 그 잘 갖춘 기본기를 당당히 어필하시기 바랍니다.



float을 해제하는 다양한 방법과 원리, 세로중앙정렬하는 다양한 방법들, dl/dt/dd의 의미와 정확한 사용례, box-model에 따른 사이즈 계산법, script 삽입 위치에 따른 성능 이슈, $(function(){}) 을 사용하는 이유와 의미 등등, 관심 갖고 궁금해하지 않으면 알기 어려운 지식들도 모두 기본기에 속합니다. 저라면 '난 리액트도 해봤고 nodejs도 할줄알고 es6도 공부했고 최신 프레임워크 동향을 줄줄이 꽤고 있는 슈퍼루키임'을 어필하는 사람보다는, 자잘한, 그러나 궁금해할 때에만 알 수 있는 기본지식들을 얼마나 섭렵하고 있는지를 어필하는 사람을 뽑을 것 같습니다.





p.s) 물론 입사 후엔 열심히 공부해서 위에 나열한 기술들을 어느 순간에는 대부분 할 줄 알아야 마땅합니다. 일을 시작하는 순간 당신은 이미 실무자가 되는 셈이니까요. 경력이 쌓임에도 불구하고 실무에서 요구하는 스킬들을 익히지 못한다면 문제가 있죠. (물론 회사마다 요구스킬이 다르므로, 어느 회사에서 일을 하느냐에 따라 스킬트리가 달라지긴 할 것입니다만..)



아무튼 그렇슴다. 기죽지 말고 모두 건승하시길 기원합니다.


전체 3

  • 2017-11-28 14:32

    좋은 글이네요.
    html과 css, 그리고 javascript만 제대로 어느정도 알아도 신입으로는 충분하더라구요. 자바스크립트를 그렇게 해서 알게되면 자연스럽게 제이쿼리가 어렵지 않고 사용 이유도 알게되고, 나중에는 다른 프레임워크나 라이브러리들을 어렵지 않게 스터디할 수 있게 되었죠 ㅎ


  • 2017-12-06 21:15

    아...마음에 위로?가 되는 글이네요...일단 웹퍼블리셔를 목표를 두고 공부중인데 갈 수록 저 자신한테 의심이 되더라고요...할 수 있겠냐고! 하면서요...그래도 가끔 이런 글을 보면 다시 힘이 나네요! 글 정말 감사합니다!


  • 2019-08-12 22:03

    IT 관련 업종에 종사하시는 분들께 도움이 될 것 같아 출처 남기고 공유해갑니다! 글이 너무 좋네요..
    https://cafe.naver.com/freecar