'HTML', 'CSS', 'JavaScript'
프로그래밍 언어는 무엇부터 해야 할까? 정답을 말하자면 이렇다. 'HTML', 'CSS', 'JavaScript'를 잘해야 한다.
만약 누군가가 "당신은 어떤 언어를 할 수 있는가?"라는 질문에 "HTML/CSS"라고 대답한다면 무시당하기 일쑤일 것이다. 우선 이 두 언어는 프로그래밍 언어가 아니다. '마크업 언어'이다. 태그를 이용해 문서나 데이터 구조를 표현하는 언어를 말한다. 마크업 언어는 고정된 정보만 전달이 가능한 상태를 말한다. 만약 사이트가 변화가 생긴다면 프로그래밍 언어가 필요하게 된다. HTML/CSS을 처음 학습할 때는 쉽다고 느껴질 수 있다. 사실 배우기 쉽고 접근하기 쉬운 언어는 맞다. 초중고 시절 교과 과정에 다루고 있기도 하다. 그리고 독학만으로도 어느 정도 개발자를 흉내 낼 수 있기 때문이다. 그리고 이런 마크업 언어는 코딩이 아닌 드림위버(Dreamweaver)와 같은 프로그램을 이용해 마우스로 개발할 수 도 있다. 최근에는 피그마와 제프린에서 그린 UI 디자인을 HTML/CSS로 구성된 결과물을 출력하기도 한다. 이렇게 설명을 하다 보니 이 두 언어들은 마치 너무 쉬운 언어로 비치지만 사실은 알고 보면 가장 엄격하고 중요한 것도 바로 이 HTML/CSS다.'웹 접근성(Web Accessibility)'과 '웹 표준(Web Standards)'은 중구난방이었던 웹에 엄격함을 주입하였다.
웹 접근성(Web Accessibility)이란, HTML/CSS는 더 이상 익스플로러에서만 보이는 단순한 웹페이지가 아니다. '스마트폰', '티브이', '자동차' 그리고 '냉장고'까지 모든 전자기기에 웹브라우저가 사용되기 시작했다. 그래서 모든 기기에 동일한 화면을 보여주기 위해서 표준을 정하였고 정보를 동등하고 얻고 공유하는 것을 궁긍적인 목표로 하고 있다. 이를 웹 접근성이라고 말한다. 웹 표준(Web Standards)이란, 'W3C' 권고하는 표준안을 따르는 걸 말한다. 이런 표준이 없던 시절에는 사이트를 만들어도 저마다 다른 표준을 가지고 만들어 이를 해석하는 브라우저마다 다르게 보이는 현상이 있었다. 그래서 표준이 등장하였고 어떤 환경에서 사용하더라도 동일한 모습이 보이도록 정상작동할 수 있도록 하는 것을 웹 표준이라고 한다. 이렇게 웹이 확장함으로 HTML/CSS는 더 이상 하급 언어나 간단하게 해결 가능한 코딩이 아닌 뼈대를 이루는 중요한 마크업 언어가 되었다.
과거에는 개발자는 HTML/CSS는 안 한다는 인식이 있었지만 퍼블리셔의 자리를 프런트엔드 개발자가 조금씩 대체되면서 이제는 HTML/CSS까지 프런트엔드 개발자가 가져야 할 기본 능력이 되었다. 또 시간이 지나면 어떻게 달라질지 모르지만 각종 채용공고를 보면 분명히 프런트엔드 개발자는 HTML/CSS를 잘해야 하는 건 명확한 사실이다. 백엔드 개발자들도 기본적으로 HTML/CSS를 이해하는데 프런트엔드 개발자는 최소한 그 보다 잘 알아야 한다. 그러므로 가장 기초가 되는 HTML/CSS부터 학습하자
2022년 5월, 프로그래밍 언어의 인기를 나타내는 PyPL(PYPL PopularitY of Programming Language) 순위에서 자바스크립트가 3위를 차지하였다. 자바스크립트는 자바, 파이썬과 함께 가장 인기가 많은 프로그래밍 언어로 이름을 올린다. 자바스크립트는 웹에 특화된 객체지향 언어다. 자바스크립트는 우리가 인터넷에서 동적으로 행동하는 대부분의 영역을 담당한다. 만약에 자바스크립트가 없다면 웹페이지는 그저 신문처럼 요지부동 하지 않는 글자와 디자인으로 구성된 따분하고 지루한 페이지에 불과할 것이다. 하지만 프런트엔드 개발자들 덕분에 우리는 화려하고 기능 많은 사이트를 구경할 수 있게 되었다.
자바스크립트의 경우에는 계속 발전 중이다. 우린 그 역사 가운데 서있다. ES3부터 시작해서 ES5, ES6로 업그레이드되었고, 현재는 ES7, ES8까지 계속되어 개발되고 있다. 2022년 기준으로 자바스크립트를 학습한다면 ES6(ECMAScript 2015) 스펙을 기준으로 학습을 하면서 ES5에 있는 각각의 이슈에 대해서도 알아둘 필요가 있다. 프런트엔드 개발의 트렌드를 이끄는 자바스크립트 프레임워크 삼대장이 있다. '리액트(React)', '앵귤러(Angular)', '뷰(Vue)'들은 모두 자바스크립트 V8 엔진 기반으로 이루어져 있다. 이렇게 자바스크립트는 웹 생태계를 독점해 나가고 있다. 그리고 node.js가 탄생하면서 이제는 백엔드까지 활용되기 시작했다. 웹 개발자라면 자바스크립트는 선택이 아닌 필수가 되었다.
프런트엔드 개발자는 자바스크립트를 잘해야 한다. HTML/CSS는 조금 못해도 자바스크립트를 잘하면 어느 정도 인정받을 수 있지만, 그 반대일 경우에는 프런트엔드 개발자라는 이름을 달아줄 수가 없다. 기본적으로 프런트엔드 개발자의 역할이라 하면 만들어진 데이터에서 사용자의 입력을 받아 적절히 데이터로 변경하여 화면에 랜더링 하여서 사용자의 친화적인 인터페이스를 구축하는 것이다. 그 과정에서 자바스크립트는 필수적이다. 필자의 생각은 프런트엔드 개발자가 되고 싶다면 자바스크립트를 씹어먹을 수 있을 만큼 열심히 공부하는 게 정답이 아닐까 싶다.
기업에서는 귀한 프런트엔드 개발자를 모시기 혈안이 되어 있다.. 프런트엔드 개발은 백엔드보다 상대적으로 접근성이 뛰어나다. 하지만 기업에서는 프런트엔드 개발자를 구하는 게 하늘의 별따기라는 소리가 있을 정도이다. "왜 프런트엔드 개발자는 구하기 어려울까?"라는 의문을 먼저 풀어보는 시간을 가져보자.
먼저 정답을 말하자면 비교적 '새로운 분야'이다. 웹 개발은 20년 이상된 분야이다. 프런트 엔지니어가 하는 일은 보통 웹 개발자라는 직업군이 수행해왔다. 하지만 언제부터인가 프런트엔드 개발자라는 직군이 분리가 되었다. 인터페이스와 사용자 경험을 기술적으로 구현하는 이들을 프런트엔드 개발자라고 지칭하였다. 확실한 건 이런 개념은 상당히 새롭고 낯선 것이다.
구글 트렌드 서비스를 통해 살펴본 프런트엔드 엔지니어에 대한 관심도는 2021년부터 급격히 상승하였다. 프런트엔드 개발자가 선호되기 시작한 건 그리 멀지 않은 과거이다. 필자는 요즘 프런트엔드와 백엔드 개발자를 두고 고민하는 이들에게 주저 없이 프런트엔드 개발자를 선택하라고 한다. 그 이유는 단순하다. 앞서 말한 것처럼 현재 프런트엔드 개발자는 품귀 현상이고 점점 수요가 증가할 것이다. 그리고 새로운 분야에 먼저 앞서 나간다면 나쁠 것이 없다고 생각한다. 그러므로 프런트엔드 개발자를 꿈꾸고 있다면 주저 없이 달려가길 바란다.