저번 블로그 포스트에 캐나다 개발자로 이민을 오려면 어떤 기술을 준비하면 좋을까라는 내용을 썼었는데, 이번에 Frontend 개발에 대해 조금 더 살펴볼까 합니다. 저도 이 부분이 아직 취약한 부분이라 모르는 기술이 많아 계속 공부를 하고 있습니다. 위 그림이 숲을 볼 수 있게끔 아주 깔끔하게 잘 표현해 주고 있는 것 같습니다.
예전 Frontend 개발이라고 하면 주로 웹 개발을 의미하며 HTML, CSS, Javascript 3형제를 이용한 개발을 의미했었죠. JQuery와 플러그인들을 이용해 동적인 페이지를 만들거나 Bootstrap을 이용해 Responsive한 사이트를 만들고 조금 더 나가서 Javascript UX 라이브러리 (예를 들면 ExtJs 또는 DHTMLX)를 사용하여 UI를 개발하는 것이 주 업무였던 것 같습니다.
하지만 자바스크립트의 엄청난 진화로 인해 파생된 기술과 툴이 무궁무진하게 많아졌으며, Frontend도 Backend와 같이 MVC 또는 MVVM 패턴을 이용하여 개발을 활발하게 하고 있습니다.
최근 LinkedIn이나 Monster를 보면 개발자를 확연히 구분하여 채용을 하는 추세입니다. 백엔드면 백엔드, 프론트엔드이면 프론트엔드. 하지만, 프론트엔드 개발자라도 백엔드에 대한 기본 지식은 가지고 있어야 합니다. 주요 Language 하나와 SQL 지식을 가지고 있어야 하죠. 저희 회사도 마찬가지 입니다. 어떻게 보면 기존의 웹 개발을 하던 개발자들보다 백엔드를 개발하는 개발자가 최근 프론트엔드 개발자에 적합할 수도 있습니다. 다양한 아키텍처 패턴을 경험해 봤기 때문에 Learning curve가 낮기 때문이죠. 그래서 다들 주요 언어 하나와 SQL를 잘 다루는 것이 아닐까 생각합니다.
전문 Frontend 개발자가 되기 위해서는 일단 Javascript에 통달을 해야 하는데, 저의 장애물은 바로 이 자바스크립트입니다. 얕은 지식이 아닌 조금 깊이 들어가면 난해한 부분이 많고, OOD 언어에 익숙해져 있는 저에게는 맞지 않은 옷을 걸치고 있는 듯한 느낌의 언어 입니다. 게다가 ECMA 6를 보면 더욱 난해한 Syntax들이 저를 좌절하게 만듭니다. 그래도 OOD에 익숙한 개발자에게 구세주가 있으니 바로 Typescript입니다. 회사에서는 당연히 쓰고 있고, 개인적으로 진행하는 프로젝트에도 Typescript를 이용한 개발을 진행하고 있습니다.
제가 개인적으로 진행하는 프로젝트는 소규모 프로젝트로 다른 개발자와 함께 지식 공유 차원에서 진행하는 것이라 많은 기술을 쓰고 있지 않습니다만, 그래도 기본적인 구색은 갖추고 개발을 하고 있습니다. Typescript, npm, JQuery, Knockout을 혼용해서 사용하고 있지요. 아마도 처음 프론트엔드 개발에 입문하시는 분이라면 이 4가지를 공부하시는 것이 가장 기초적인 것이라고 생각합니다. (Knockout은 한국에서 잘 쓰지 않는 것 같던데, 한 번 사용하기 시작하면 그 편리함은 이루 말할 수 없습니다.)
이렇듯 빠른 프론트엔드 개발 환경 변화를 봤을 때 제가 생각하기에 미래는 화창입니다. 요즘 거의 대부분 사이트가 SPA로 개발되는 현실에 비추어 봤을 때 AngularJS, React 또는 Vue를 다룰 수 있으면 최상이라고 생각합니다. 한국에서는 Vue를 선호한다고 하던데, 저는 Vue는 한 번도 써본 적이 없습니다. 이곳 구인 사이트에서도 거의 가뭄에 콩 나듯이 개발자를 구하고요. 거의 React라고 보시면 됩니다. 한국도 언젠가는 이런 추세를 따라가지 않을까요? 이정도 기초 지식이 있으면 유닛 테스트를 위해 Jasmine와 Karma, 그리고 Grunt 같은 Build 툴을 공부하는 것이 다음 단계라고 생각합니다.
정리하자면 이런 순서가 되지 않을까 생각합니다.
1. Typescript, NPM, Node.js
2. Knockout
3. AngularJs, React, Vue
4. Jasmine, Karma
5. Grunt, Gulp
오늘도 해피 코딩하세요.
'개발 이야기' 카테고리의 다른 글
코드 리뷰 및 리팩토링 (0) | 2018.06.23 |
---|---|
Domain Driven Design을 위한 프로젝트 구조 (0) | 2018.06.20 |
외국 회사는 휴가를 마음대로 쓸 수 있나요? (0) | 2018.06.16 |
Git (Bitbucket) 코드 리뷰 및 PR 설정 (0) | 2018.06.15 |
빡센 코드 리뷰 (1) | 2018.06.12 |
최근댓글