누구나 알다시피 최근 웹 기술의 경향은 단연 클라이언트 쪽에 집중되어 있다.

수 년전을 비교해 보면 엄청난 변화이다. 웹 개발은 크게 프론트엔드와 백엔드로 나누어져 있지만, 국내에서는 프론트엔드 보다 백엔드 개발자 흔히 '웹 프로그래머' 혹은 '웹 개발자'라고 부르는 사람들의 가치가 더 높았다. 다시 말해서 몸값이 더 비쌌다는 이야기다.

하지만, 웹 프론트엔드가 더 복잡해지고 다양한 기술이 쏟아지면서, 프론트엔드 개발자에 대한 수요와 가치가 증가하였고, 이쪽 기술 직군의 정의가 점점 어려워지고있다.

과거 프론트엔드 개발자는 백엔드 개발을 할 기술이 없거나 그 전단계에 하는 견습 정도로 여겨지곤 했었는데, 이와 달리 현재에는 백엔드 개발이 어려워서 이거나 프론트엔드 개발이 쉬워서가 아닌 프론트엔드 개발 자체가 좋아서 프론트에 남아서 개발을 하는 개발자가 많다. 


웹 프론트엔드 직군이란?

2000년대 초반만 하더라도 웹 개발에서는 웹마스터, 웹개발자, 웹디자이너로 나눠져 있었다. 대부분 웹 디자이너가 마크업을 담당했는데, (웹 표준 마크업의 주요성이 덜할 당시) 효율성을 위해 웹 디자이너가 만든 PSD 파일을 짤라서 HTML로 코딩만 하는 'HTML 코더'라는 직종이 있었다.

하지만, 2000년대 중반 부터 웹 표준 마크업의 중요성이 대두되면서 포털 업계를 중심으로 'UI 개발' 직군이 중요한 화두로 떠 오른다. (X)HTML과 CSS를 중심으로 DOM을 핸들링하는 자바스크립트까지 다루는 기술셋을 가진 개발자들이다.


역할에 따른 모델 제안
분명한 사실은 HTML/CSS/JS 기술을 떠난 프론트엔드 개발은 불가능하다. 요즘에는 게임도 웹으로 만들고 2D/3D 그래픽도 웹으로 하는 시대다.

 

 

습득 요구 지식

특징 

   HTML 코더

 HTML, CSS

 테이블 기반 코딩을 주로 하는 2000년대 초반의 프론트 엔드 개발자가 주로 HTML 코더였는데, 현재 업계에서도 어느정도 남아있는것 같다.

   웹 퍼블리셔

 HTML, CSS, 

웹표준, 웹접근성, 크로스 브라우징

 웹 표준이 중시되면서 생기기 시작한 직군. HTML,CSS를 이용한 페이지를 출판하는 일을 한다. 

   UI 개발자

 HTML,CSS, 웹표준, JavaScript

웹 표준에 기반한 사용자 UI를 개발한다 

   RIA 개발자

 플래시, FLEX, AIR, Silverlight

데스크탑 리치기술을 이용하여 보다 다양하고 인터랙티브한 웹사이트를 만드는 직군. 

   프론트 엔드 개발자

상위 능력 전반과 백엔드 영역 능통 

프론트 엔드 개발자라고 적어놓고 위 능력들을 고루 갖추었다고 써놓았는데, 사실 그렇다고 위에 있는 개발자들이 프론트 엔드 개발자가 아니라는 것은아니다. 필자 개인적인 생각으로 이정도는 해야..진정한 프론트엔드 개발자라고 할수있지않을까하는 개인적은 생각을 반영하여 작성해보았다. 



위에서부터 순차적으로 습득 요구 지식이 어느정도 누적 되는 것을 볼수있는데, 


코더 -> 웹퍼블리셔 -> UI개발자 -> (RIA개발자) ->Front-End 개발자


순으로 능력을 덧붙이며 한단계씩 발전한다는 느낌이 강하다.


필자 개인적인 생각으로


HTML 코더나 웹 퍼블리셔 역시도 프론트 엔드 개발자라는 생각은 변함이 없고, HTML,CSS를 등한시 하는것은 아니지만,


HTML,CSS만 할줄 아는 사람과 HTML,CSS,JS를 모두 하는 사람을 동등하게 바라볼 생각은 없기에,


웹 퍼블리셔 까지는(HTML코더는 더더욱,) 미완성의 프론트 엔드 개발자가 아닐까 생각해본다.


[웹 퍼블리셔가 프론트 엔드 개발의 제일 윗단으로, 기획과 디자이너와의 조율을 한다는 견해도 있으나, 필자 경험상 그런 역할은 주로 PL이 맡아서 하는 경우가 대부분이었다.]



웹 FT의 미래는 더 밝다!
프론트엔드 개발자보다 백엔드 개발자들의 몸값이 높고, 백엔드 중에서도 자바나 닷넷 개발자가 PHP나 Python을 쓰는 개발자 보다 몸값이 높은 아이러니한 상황은 국내만의 이상한 현상이다. (웃긴 건 Yahoo, Facebook , Twitter모두 PHP를 주력 개발 언어로 쓴다.)

아직도 "HTML이나 자바스크립트 하는게 뭔 개발이야?"라고 하는 분들께 나는 꼭 이 한마디를 보태 드린다. "구글에서는 아이비리그 나온 박사들도 다 HTML이랑 자바스크립트 해야 하거든요?"







나는 front-end 개발자 일까? back-end 개발자 일까?


IT관련 일을 해보신 분들은 많이 들어본 이야기 일것 같다.

왜 FE(front-end) 와 BE(back-end) 를 나누어 놓았을까?

개발자로서의 기술적 능력의 높고 낮음을 구분하고 싶어서 였을까?


다른 분류 방법을 제외 하고 단순 FE 와 BE 만을 가지고 이야기 하고자 한다.

FE 와 BE 개발자는 조금씩 다른 언어로 개발을 한다고 생각한다.


일반적으로 다음과 같이 통용된다.

FE : html, css, javascript

BE : server side scripts(asp, php, jsp ..),  java 


이런 분류법이 꼭 맞는건 아니다.

다만 내가 경험해본 IT 쪽 사람들이 자기는 FE 개발자고 BE 개발자라고 말하는 사람들의 개발 언어를 살펴본 내용을 바탕으로 정리를 해본 것이다.


과거에는 FE 라 하면.. 크게 기술을 요하지 않는다고 생각을 많이들 했었다고 생각 한다.

(논란이 있지만 사실이기도 하다. UI적인 대부분은 플래시가 담당하고 있었고, 레이아웃은 소위 말하는 '테이블 코딩'이 

모든걸 해결해주고 있었다.)

BE 는 특정한 기술을 요구하고 또한 개발하는데 어려움이 많다고도 여겼던게 사실인것 같다.


그럼 지금은 어떤가?

지금은 개발자간 기술의 벽이 많이 허물어 지고 그 차이도 크지 않다고 생각 한다.

이제는 프론트엔드의 영역이 웹 표준과 접근성에서부터 dynamic UI/UX에 web Application까지 다양해지며
프론트 영역이 결코 만만한 부분이 아님을 다들 인정하는 분위기다.

다만  FE 와 BE 를 구분짓고 나는 BE 개발자이니 FE 는 내가 알바 아니다 라고 얘기 하는 사람, FE 개발자이니 BE 는 내가 알바 아니다 라고 얘기 하는 사람이 있다면 당장 생각을 고쳐 먹어야 한다고 생각 한다.

적어도 IT 에서 일을 하는 사람이라면 말이다.


서비스를 만드는데 FE 가 어딨고 BE 가 어딨겠는가.

서로 서비스에 대한 needs 와 requirements 를 잘 이해하고 user interaction 에 잘 부함되는 서비스가 될수 있도록 상호 긴밀한 협동을 해야 하는게 아닌가.


분야의 다양성과 각자의 능력에는 차이가 있다는것은 분명히 인정하는 부분이다.

하지만 같은 서비스를 만들면서 FE 니 BE 니 설왕설래 하는건 에너지 낭비며 web2.0 시대에 개발자가 가져서는 안되는 정신 같다.


서로 같은 분야에 종사하며 개발자로서의 삶을 살아 간다면 다 같이 win win 하는 그럼 마음 가짐을 가졌으면 좋겠다.