brunch

You can make anything
by writing

C.S.Lewis

by 시모네 Mar 27. 2021

11.어떤공부를 해야할까 feat.채용공고, 프론트엔드

많은 분들이 개발자로 전향을 생각하고 있으나 가지고있는 고민과 궁금증에 비해 도움을 받을곳이 많지 않습니다. 저도 비전공 출신으로 28살의 나이에 개발을 배우기 시작했으나 처음 개발을 배워볼까 고민하던 순간 부터 취업하기까지 많은 고민과 문제가 있었고 도움을 받을곳은 없었습니다. 아직 현업에서 2년째 일하고있는 부족한 개발자지만 아직까지 생생하게 기억하고 있는 경험과 지식이 3년전의 저같은 사람에게 큰 도움이 될거라 생각합니다.  

앞으로 개발자 전향을 고민하는시점부터 취업까지 모든 경험과 생각을 연재합니다.



지난번 글에서는 좋은 직장에 성공적으로 취업하기 위해서 앞으로 어떤 공부를 해야할지 방향성을 잡아보는게 중요하며 그러기 위해서는 채용공고를 쭉 살펴보기를 권장했다. 또 JAVA 개발자 채용공고를 보며 어떤것들을 먼저 필수적으로 공부해야 할지 알아봤다. 그리고 이번에는 JS 개발자 (프론트엔드) 를 위한 채용공고를 한번 분석 해보기로하자. 나도 처음에 프론트엔드 개발자로 취업했기 때문에 더 많은 부분을 다룰수있을것같다.


자격요건에 들어가있는 필수적인 공부를 먼저 해야하는데 더 혼란을 줄것같아 우대사항을 이번에는 제외했다.


이곳의 자격요건은 매우 쉽고 낮은 수준의 자격요건이다. 첫번째 자격요건을 제외하고 두번째부터는 인성과 관련된 부분 이기에 자신을 잘 포장할수 있다면 될것이다. 첫번째 부분을 보면 컴퓨터 공학 전공 or 컴퓨터과학 지식에 대한 높은이해 라고 적혀있다. 나는 학원교육 수료가 될때까지 이게 중요한지 몰랐다. 그러나 취업을 하기 위해 면접을 보러 다니면서 단 한번도 빠지지 않고 받았던 질문이 컴퓨터 공학 지식 질문이었다. 그중 자료구조(Data Structure)는 늘 질문에 있었다.

Data Structure(자료구조), OOP(객체지향 프로그래밍) , 알고리즘, 데이터베이스, 네트워크 이 모든것들이 컴퓨터공학 지식이다. 정보처리기사 라는 자격증을 따기 위해 공부하는 내용이기도 하다.

모든것들이 중요하지만 중요도를 굳이 따지자면 만약 JS 개발자라면 자료구조 - 네트워크 - 알고리즘 - OOP - 데이터베이스 순으로 공부하는것을 추천한다. 단순히 면접질문 으로 많이 받았던 순서이다 .





프론트엔드 개발자라면 HTML, CSS, JS는 필수이다.

두번째 JavaScript(ES2015) 는 쉽게말하면 최신 JavaScript이다. javascript 도 시간이 지나면서 점점더 새로운 문법이 나오는등 발전되고있다. ES2015는 ES6라고도불리며 현업에서 가장 많이쓰이는 버전이다.

결국 ES2015-Javascript 에 새로 들어온 문법을 이해하고 사용하는 경험이 필요하다.


Javascript 에서는 타입을 명시적으로 쓰지 않기 때문에 개발 하는중에 어떤 타입 오류가 있는지 알지 못할때가 있다. 그래서 Typescript를 사용하는곳도 많다. 역시 공부해야한다. 이게 뭔지는 간단히 여기서 설명하고있다.


SPA 구현, SinglePageApplication이라해서 한 페이지에서 상태값 변환으로 여러 뷰들을 관리하는방법이다. 페이지 이동이 없어서 서버를 여러번 호출하거나 로딩을 기다리는 일이 없는게 장점이다.

Restful 아키텍쳐는 서버로 부터 데이터를 가져올때 "/user/1" , "/user/inser/1" 이런식의 URI를 사용하는 방식인데 여러가지 규칙들이 있으니 자세히는 여기서 보면된다.

학원에서든 개인적으로든 프로젝트를 구현 할때 SPA와 Restful API 를 머리속으로 염두해두고 만든다면 아마 좋은 경험이 되지 않을까싶다.



React, Vue, Angular 는 실제로 현업에서 자주쓰는 JS 프레임워크이다. 프레임워크 개념이 익숙하지 않다면 쉽게 말해 현업에서는 React, Vue, Angular 를 사용해서 개발하고 그것은 JS언어(문법)으로 되어있다.

이전에는 기업마다 다르게 React를 쓰는곳이 있고 Vue를 쓰는곳이 있었는데 요즘은 거의 React를 사용하고있다.



자격요건이 역시 비슷하다. HTML CSS JS 에 익숙해야하고 TypeScript와 React를 다룰줄 알아야한다.

여기서 또 Redux라는게 나오는데 프론트엔드의 상태관리를 쉽게 해주는 라이브러리이다. React와 함께 React-Redux를 공부하면 될것이다.


우대에 Graphql 사용경험이 나온다. 이것은 RESTful API 처럼 백엔드 API 라고 보면 된다. RESTful 과 달리 엔드포인트가 하나(API 주소가 하나) 라는 차이점이 있다. REST에서 "/user/1" "/user/2" 이렇게 유저마다 다른 주소가있다면 Graphql에서는 하나의 주소에서 getUser(no:1) getUser(no:2)  이런식으로 쿼리를 다르게 날려서 값을 받아온다. 그리고 그것을 사용할수있게 프론트엔드에서는 "Apollo" 혹은 "Relay"를 사용하고있다. 자세한 내용은 여기서 


반응형 웹이란 모니터의 크기나 사용자가 브라우저의 크기를 변경할때 웹 UI 가 깨지지 않고 그에 따라 반응해서 잘 그려주는 것이다. 예로 모바일에서 해당 페이지를 켰을때도 모바일에 맞게 UI가 그려져야 하는것이 반응형 웹이다. CSS 와 연관이 깊다.

지금까지 3개의 채용 공고를 본 결과 역시 곂치는 부분이 많고 이것들을 필수적으로 공부 해야할것이다.


1. 컴퓨터 공학 지식 (자료구조 - 네트워크 - 알고리즘 - OOP - 데이터베이스 순서)

2. HTML CSS JS 에대한 깊은 이해와 실력

3. React.js & Redux

4. 서버와 데이터 통신 경험(REST API 혹은 GraphQL)

5. SinglePageApp 과 반응형 웹 구현 경험

6. TypeScript


내 기준 에서는 1번부터 6번 순으로 중요하다고 생각한다. 나도 프론트엔드로 취업을 성공 했지만 사실 1~5번까지는 했었고 Typescript 까지는 경험이 없었다. 채용공고들을 보니 그때보다 요즘은 더 많이 Typescript를 사용 하는것 같다. 만약 프론트엔드로 취업을 생각한다면 이런것들을 공부해야 할것을 염두해두면 좋을것 같다.












브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari