웹에 관심이 생기기 시작하면서 프론트엔드 개발자는 대체 무슨 일을 하고, 가져야 할 소양이 무엇인지 궁금해졌다.
그래서 좋은 글을 발견하여 두고두고 참고하기 위해 정리했다.
원글 : https://whycantwefindfed.jjperezaguinaga.com/
번역글 : https://taegon.kim/archives/4810
1. 프론트 엔드는 상대적으로 새로운 분야이다.
프론트엔드 엔지니어링은 어떤 부분에서는 웹 개발과 비슷하지만, 인터페이스와 사용자 경험을 기술적으로 구현하는 특정한 "직업"군으로서의 프론트엔드 엔지니어링이라는 개념은 상당히 새로운 분야이다.
웹 개발과 프론트엔드 엔지니어링 개념이 혼재되어있다. 웹 산업 밖의 사람들에게는 웹 개발은 웹 페이지를 시각적으로 디자인하는 것과 이를 구현하는 것 사이의 모호한 경계이기 때문이다.
프론트엔드 엔지니어들도 웹 개발을 하지만, 다른 것은 사용자가 포함된 부분에 "집중"을 한다.
.
15년쯤 전에는 웹 페이지의 시각 디자인 작업과 이를 기술적으로 구현하는 작업에 리소스가 균등하게 분배되어있었다. 웹이 단순한 홈페이지나 홍보용 페이지 이상으로 성장하면서 기술자 리소스가 더 필요해졌다. 사람들이 자바스크립트, 백엔드 기술, UX, 데이터베이스, 심지어 시스템 디자인까지 웹을 위해 배우기 시작했다.
오늘날 AirBnB, Facebook, Quora 같은 웹 애플리케이션은 디자인 리소스보다 엔지니어링 리소스에 더 많이 투자한다. 다시 말해 오늘날에는 웹 페이지의 시각적인 디자인이 이를 구현하는 것보다 더 빨라졌다는 뜻이다. 하지만 시각 디자인이 덜 중요하거나 예전에 비해 할당된 리소스가 줄었다는 이야기가 아닌, 웹 페이지가 요구하는 기술자가 더욱더 많아졌다는 이야기가 된다.
.
웹 페이지의 기술적인 구현은 여러 분야에 걸쳐 있었기 때문에 90년대의 웹 엔지니어들은 팔방미인이었어야 했다. DBA(데이터베이스 관리자), 시스템 관리자부터 백엔드 엔지니어, DevOps, 소프트웨어 엔지니어, UX 엔지니어, 프론트엔드 엔지니어까지 담당했다. 마지막의 프론트엔드 엔지니어는 사람들이 가장 두려워하는 분야일 것이다. 자바스크립트, HTML, CSS를 사용해 시각적인 목업을 웹 브라우저에서 실제로 작동하게 만드는 일을 하는 분야이다. 프론트엔드 엔지니어링을 즐기려면 시각 디자인에 대한 흥미가 어느 정도 필요하다.
.
이 웹 어플리케이션이 필요로 하는 작업량을 충족시키려면 시간이 어느정도 필요해졌고 하나의 웹 어플리케이션에서 여러 사람이 함께 작업할 수 있도록 기술적인 작업을 나누어야 할 필요도 생겼다. 그래서 앞서 구분되었던 역할들이 실제로 웹 산업에 등장하기 시작했다.
오늘날의 스타트업들은 웹 어플리케이션의 기술 영역 상당 부분(프론트엔드, 백엔드, DBA, 운영 등)을 자신들이 제대로 다루어야 한다고 주장한다.
2. 프론트엔드 엔지니어링에 대한 오해
프론트엔드 개발자를 찾기 어려운 다른 중요한 이유는 이 분야에 대해 오해하고 있는 부분이 많기 때문이다. 대부분의 사람들은 프론트엔드를 "상대적으로 쉬운 분야"로 보고있다.
이러한 목표를 달성하기 위해 엔지니어들은 시각 디자인 도구(포토샵, Adobe, Macaw, Sketch)부터 프로그래밍 도구(IDE, Command Line, Source Version Control, Bash 스크립트, 빌드 태스크)까지 다양한 도구를 사용한다. 심지어 간혹 마케팅(뉴스레터, 캠페인, 분석, 검색엔진최적화, 소셜미디어), UX(애니메이션, 트랜지션, 인터페이스, 시각적 언어)부터 컨텐츠 수정(구획점, 단어가 뚝 떨어지지 않게 하는 일, 가독성, 색상)까지 신경써야 한다.
나쁜 프론트엔드 엔지니어
좋은 프론트엔드 개발자를 구하기 어려운 가장 분명한 이유는 나쁜 프론트엔드 개발자가 많기 때문이다. 프론트엔드 엔지니어링은 진입장벽이 정말 낮다. 자바스크립트, CSS, HTML은 이해하기 어려운 프로그래밍 언어가 아니다. 누구라도 CodeAcademy나 Codeschool에 가서 며칠 안에 기초를 배울 수 있다. Erlang, Go, ANSI C 등을 배우기 위해 컴퓨터의 작동 원리를 알아야 하는 것과는 상반된다.
웹 페이지에 있는 색상과 이미지를 바꾸는 것은 정말 쉬운 것처럼 말이다.결국 프론트엔드 엔지니어 시장은 다음과 같은 사람들 때문에 몸살을 겪을 것이다.
물론 컴퓨터 과학에 대한 지식이 좋은 프론트엔드 엔지니어의 필수 조건은 아니지만, 컴퓨터와 소프트웨어의 기본적인 매커니즘은 자바스크립트로 코딩을 할 때에도 항상 고려해야 할 내용이다. 좋은 프론트엔드 엔지니어는 현존하는 플랫폼 및 환경 중 아마도 웹이 가장 강력하며 웹에서 실행되는 코드는 반드시 가상 머신이나 가상 런타임에서 실행되는 언어만큼이나 (혹은 그보다 더) 신중하게 개발해야 한다는 사실을 알고 있다.
좋은 프론트엔드 엔지니어는 웹의 매커니즘과 사용하는 언어를 고려하는 것은 물론이거니와 웹과 연동하는 다른 컴포넌트, 시스템, 개념에 대한 경험도 있다. 다음은 숙련된 프론트엔드 엔지니어가 알아야 하거나 일반적인 프론트엔드 작업을 할 때 먼저 해야할 것이다.
현재, 그리고 앞으로도 계속 웹에는 프론트엔드 엔지니어가 필요할 것이다.
다양한 디바이스, 브라우저, 웹 표준의 변화로 인해 웹 어플리케이션에서 사용자 부분을 담당해 줄 사람을 급히 찾게 될지도 모른다. 프론트 엔지니어와 개발자들은 기존 웹의 한계를 벗어나는 흥미진진한 제품을 만들 수 있었다. 지금은 3D 갤러리, 실시간 영상 통화, 인터넷 라디오, 심지어 완전한 오피스 도구(예. 구글 앱스, 마이크로소프트 오피스 온라인)도 있다. 모든 것은 클라우드 상에 존재하며 우리가 쓰고 듣고, 메일을 보내고 보는 것들은 어디에나 있게 되었다.
프론트 엔드 엔지니어를 찾는 것은 어렵지만, 더 많은 사람들이 프론트엔드 부대에 들어오고 있다. 프론트엔드 엔지니어라는 직업이 선사하는 깜짝 놀랄만한 근무 환경과 두둑한 급여뿐만 아니라 웹을 코딩한다는 것이 주는 믿을 수 없는 즐거움 때문일 것이다. 여러분에게는 사용자 수천명의 생활에 영향을 끼칠 수 있는 기회가 있으며 인터넷 접속을 통해 누구에게나 신나는 서비스를 제공할 수 있다. 이 모든 것들이 브라우저 위에서 이루어지고, 때로는 브라우저가 제약이 되기도 하지만 그 위에서 어떤 아이디어라도 분석하고 그리고 보여줄 수 있다. 프론트엔드 엔지니어들이여 건승하시길.
웹이 여러분을 기다리고 있다.
위 글을 읽으면서 느낀 것은, 정말 우물 안 개구리였다는 것이다.
그저 HTML, CSS, Java script가 재미있다고, 웹을 만드는 것이 흥미롭다는 이유로, 프론트엔드 엔지니어가 되고 싶다는 막연한 생각을 한 것이 참 부끄럽게 만드는 글이었다.
어떤 툴을 배우고, 얼마나 예쁘고, 빠르게 웹을 구성하는가보다도, 웹 어플리케이션의 성능을 개선시키기 위해 어떤 노력하는지, 지금 내가 작성하는 코드가 웹 어플리케이션의 성능까지 고려하고 있는지를 스스로 점검하고 있는지를 반성하게 되었다.
그렇기 때문에 트렌디한 기술을 무작정 따라가기 보다는 기본기를 더 견고하게 다지는 데에 집중을 해야겠다는 생각을 했다.
프론트엔드 개발자가 갖춰야 할 기본기로써,
시간이 지나도 오랫동안 사용할 수 있는 '지속 가능한 코드를 쓸 수 있는지', 그리고 웹 어플리케이션의 '성능을 향상시키기 위해 코드를 개선하고 점검할 수 있는지' 를 파악해야하며, 계속되는 코드 테스트와 TDD, 리팩토링, BDD 등 코드를 견고하게 바꿔나가기 위한 일련의 과정을 거쳐 지속 가능한 코드를 갖추는 법을 먼저 배워야겠다.
People like different categories of girls according to their mood, we have kept that in mind and have decide to provide Escort Service in Delhi according to their mood, so we have different categories of escorts. Just choose according to your mood and inform us, we will full fill your demand according to your mood.
좋은 글 정리해 주셔서 감사합니다! 글을 읽으면서 막 뜨끔거리기도 했네용. 어쨋거나 도움 많이 되었습니다.