가. 프론트엔드 개발자의 역할과 필수 소프트 스킬
Web Front-end
- Web : 개방형 표준 기술(Open Standard Technology)
- 실제로 개발을 하다보면 개방형 기술이 많지 않다.
- ios(애플 주도), android(구글 주도), java(오라클 주도, 스프링프레임워크의 위상)를 비교해보면
주요하게 B2C 서비스를 만드는 기술기반 가운데 Web이 비교적 vendor Dependency를 받지 않는 기술이다.
- Front : Professional vs Amateur
- Trends, Fast flow 사람이 사용하게 되는 시각적인 요소를 포함하고 있다.
- 누구나 평가할 수 있고, 그 평가가 나름대로의 전문성이 있는 프로페셔널리즘과 아마추어가 뒤섞여 있는
세계이므로, 이런 측면에서 프론트엔드는 협업이 굉장히 강조되고, 커뮤니케이션 역량이 강조되는 업무이다.
- End : Release
- 프로세스 : 어떤 서비스를 만들 것인가? → 기획 → 디자인 → 백엔드 → 프론트엔드 → 테스트 → 릴리즈
- 프론트엔드가 서비스의 제일 마지막 단계에 있으므로 다양한 일이 발생한다.
- [모든 계획은 달라질 수 있어도, due-date만은 달라지지 않는다.] 는 정설처럼 최초의 계획이 맞아 들어가는 경우는 거의 없고 계획이 틀어질 수 있는 경우의 수가 훨씬 많아지므로, 개발 일정이 압축되는 경향이 생긴다.
- 이런 부분들을 어떻게 하면 최소화하고 일정 변화 등에 대해 기술적으로나 소프트 스킬로 어떻게
대응하는가에 대한 부분도 프론트엔드 개발자의 역량 중 하나이다.
프론트엔드 기술 흐름에 대하여
2010년 쯤부터 프론트엔드 기술에 터닝포인트가 발생했다고 판단된다.
- 2008년 Chrome 브라우저 출시
Google의 주 사업은 web을 통해 이루어지므로 빠른 속도나 편리함들을 제공해 웹 사용성을 늘려야 했음.
Javascript의 엔진인 V8을 개발.
- 2009년 Node.js 출시
Chrome의 V8 엔진을 착안하여 자바스크립트를 일반 컴퓨터 시스템에서 실행되도록 개발
- 2010년 npm(node package manager) 출시
개발자들이 자신이 만든 자바스크립트 노드 패키지를 npm을 통해 등록하고,
누구나 검색하고 다운로드 받아서 자신의 프로젝트에 반영할 수 있는 환경이 만들어 짐
- 2010년 AngularJS, Knockout 프레임워크 출시
구 웹 앱은 제이쿼리에 상당히 의존적이었음, 아키텍쳐를 가지기 위해서는 backbondJS 등을 활용
AngularJS, Knockout의 출시는 기존 자바스크립트를 라이브러리에서 프레임워크 단계로 전환시키는 계기
프레임워크도 아키텍쳐를 가질 수 있고, 보다 큰 규모의 앱을 단단하게 만들 수 있는 터닝포인트가 됨
- 2012년 TypeScript 출시
- 2013년 React 출시
Angular가 two-way binding이 장점이였지만, 단점이되었다. 유지보수가 어려워짐. 이를 개선하는 one-way binding 프레임워크로 React 출시, Virtual DOM은 다양한 라이브러리에 많은 영향을 끼침
- 2018년 Deno 출시
nodeJS와 비슷한 패키지, 백엔드형 nodeJS, nodeJS의 단점을 보완했다. 주목해보자!
무엇을 어떻게 학습할 것인가?