웹 프론트엔드 개발자에 대한 소회

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

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

하지만, 웹 프론트엔드가 더 복잡해지고 다양한 기술이 쏟아지면서, 이쪽 기술 직군의 정의가 점점 어려워지고있다. HTML 코더, 웹 퍼블리셔, UI 개발자, 프론트엔드 개발자, RIA 개발자 등의 용어가 혼재되고 있다.

스스로 백엔드 개발자 출신이긴 하지만 Firefox와 웹 표준, Ajax 등의 국내 보급을 초창기에 시작했던 사람으로서 웹 프론트엔드 직군에 대한 남다른 관심을 가지고 있기 때문에 이 문제에 대한 소회를 한번 이야기 해볼까 한다.

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

HTML코더는 주로 계약직으로 근무를 하고 필요시에만 들어오는 일시성 업무를 담당하고 있었고, 지금도 작은 웹에이전시에서는 적지 않은 사람들이 이런 일을 하고 있는 것 같다. 2004년경 다음 CTO Staff으로 있던 시절 가장 난감했던 것 중 하나가 HTML 코더가 웹 개발 직군(즉, 웹 백엔드 개발자) 이동을 위해 인터뷰를 하는 것이었다.

하지만, 2000년대 중반 부터 웹 표준 마크업의 중요성이 대두되면서 포털 업계를 중심으로 ‘UI 개발’ 직군이 중요한 화두로 떠 오른다. (X)HTML과 CSS를 중심으로 DOM을 핸들링하는 자바스크립트까지 다루는 기술셋을 가진 개발자들이다. 포털에서는 이들을 ‘UI개발자’라고 불렀고, 웹 에이전시에서는 ‘웹 퍼블리셔’라는 이름으로 불려지기 시작했던 것 같다.

당시만 해도 사실 이 직군들은 별도로 독립하기 어려웠다. 다음에서도 한때는 디자인 직군에 속해 있다가 2006년에야 개발 직군으로 옮겨 CTO 밑으로 편입되었고, UI센터라는 소규모 조직을 구성했다. 이후 Ajax와 플래시 개발자들이 계속 합류하면서 2008년에야 FT센터로 확대하였다.

배경이 다른 사람들간의 충돌
2006년에 UI센터가 만들어지는 데에는 2004년 부터 시작된 웹 표준과 Ajax 기술 도입에 대한 필요성이 매우 컸다. 한 가지 독특한 사실은 현재 Ajax 개발 시니어들이 대부분 당시 백엔드 개발을 했던 사람들이라는 점이다.

최근 다양한 자바스크립트 프레임웍들이 나오고, HTML5 기술에 웹 애플리케이션 API들이 추가되면서 (문서 기반을 넘어서는) 웹앱의 프로그래밍적 요구가 더 커지고, 기술 배경이 전혀 다른 두 직군에서 온 사람들간의 소통 문제가 이슈가 되고 있는 것 같다.

마크업을 중요시 하고 자바스크립트 사용을 가급적 쓰지말라는 퍼블리셔나 Ajax 애플리케이션을 만들면서 자바스크립트 객체와 메소드로만 사이트를 만드는 경우도 가끔 본다. 두 가지 양 극단 모두 바람직하지는 않다.

웹 기반 프론트엔드 기술은 HTML 문서 객체와 CSS 디자인 요소 그리고 웹 접근성을 배경 지식으로 자바스크립트와 표준 API를 써서 애플리케이션을 만들어야 하는 어려운 분야이긴 하지만 웹이 가진 보편적인 철학을 공유한다면 소통하는 건 어렵지 않다고 확신한다.

역할에 따른 모델 제안
분명한 사실은 HTML/CSS/DOM/JS 기술을 떠난 프론트엔드 개발은 불가능하다. 요즘에는 게임도 웹으로 만들고 2D/3D 그래픽도 웹으로 하는 시대다. 하지만, 한 사람이 모든 걸 다 섭렵하는 건 쉬운일이 아니기 때문에 다음과 같이 역할 분담을 해보면 어떨까 싶다.

  • 웹 퍼블리셔: HTML/CSS/DOM을 기반으로 정보성 웹 사이트를 제작하는 경우. 사용자의 편의를 위해 자바스크립트 라이브러리를 활용할 수 있으며, 정보 접근이 중요시 되는 웹 사이트를 만드는 사람.
  • 웹 UI 개발자: HTML/CSS/DOM을 기반으로 웹 애플리케이션 을 제작하는 경우. 사용자의 기능적인 면을 더 중요시 하고 자바스크립트 프레임웍을 활용할 수 있으며, 기능 접근이 중요시 되는 웹 사이트를 만드는 사람
  • RIA 개발자: 데스크톱 리치 인터넷 기술(플래시, Flex, AIR, Sliverlight)을 이용하여, 보다 다양하고 인터랙티브한 웹 사이트를 만드는 사람.

이 세 가지를 모두 통합하는 용어로서 프론트엔드 개발자(Front-end Developer)라는 용어를 사용하는 것이다.

지금은 FT 영역의 개발 편의를 위해 자바스크립트 프레임웍이나 백엔드도 자바스크립트로 만드는 프레임웍(node.js 등)을 만들고 유지 보수하는 사람도 있다. 뿐만 아니라 HTML5 API의 확장에 따라 웹 게임 개발자, 웹3D UI 개발자 등 다양한 직군으로 분화될 조짐까지 보이고 있다.

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

앞서 말한 대로 Daum에서는 2006년쯤 한메일 익스프레스를 만들면서 백엔드 개발자 일부가 프론트엔드로 직군을 이동했지만 (HR에서 고민은 했겠지만) 연봉을 깎거나 하지 않았다. UI 개발 직군을 새로 만들면서 팀도 많이 생기고 팀장 승진자도 나왔다. 이는 상위 다른 포털 회사들도 거의 같은 현상을 겪었다.

2010년에 다음에서는 약 40명의 신입 개발자를 뽑았는데 그 중에 약 30명을 FT센터로 보냈다. 대부분 컴퓨터공학 전공자들로
프로그래밍을 하는 친구들이다. 모바일 웹 이슈가 있는 점도 적지 않았지만 무엇 보다 진정한 웹 개발자로 성장하기 위해서는 웹 프론트엔드 기술을 신입 시절때 부터 접해 봐야 한다는
이유에서다.

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

더 읽어 볼 글
이 땅의 웹 디자이너에게 고함 (윤석찬) 2005년에 쓴 글…
UI 개발자의 비전 (윤석찬) 2006년에 쓴글…

본 글은 의견을 요청하는 글(Request for Comments)입니다. 여러분의 의견 특히 FT 직군에 계신 분들의 의견을 요청하는 바입니다. 트랙백을 주시면 의견 글로 링크해 드리겠습니다.

여러분의 생각

  1. 잘읽었습니다 석찬님 ^^
    비정공에 웹과무관한 제가 삼년전 html/css를 시작했어요
    (민감하게 퍼블리셔니 ui이니 생략)
    갠적으론 앞뒤직군(디자이너, 서버개발)과 대화를 위해 타이포니 객체니 ㅋㅋ
    지금은 그냥 즐겁게 일하고싶고 잘하고 싶고 그래서 더 관심가지고 본게 js였는데 생각해보면 자연스러운 결과였건것같고요. 오늘에 이슈?는 매우 당연하고 사실 답도 없고 ..
    클보에서는 html5를 같이 공부하고 프렌즈 aj님께 js를 배운 입장에서 또는 현업 클라 개발자로서 오늘에 이슈는 민감하고 예민하지만 이렇게 뜨거운 감자로 대화에 떠오른것 자체가 좋은 것같아요.

  2. Twitter 는 Rails 로 시작했고 여전히 front end는 Rails이고, back end를 scala 와 java를 섞어 쓴다고 알려져 있습니다. 수정 혹은 삭제 부탁드려요.

  3. 아! 지적 감사합니다. 제가 잠깐 착각을 ㅎㅎ

  4. 지나가다.. 2011 6월 01 3:29 오후

    사실 이 일을 처음 시작할 때에 비하면 대우도 많이 좋아지고 하는 일도 많아졌죠.
    특히나 업무 특성 상 딱 중간에 있다보니 오지랖도 넓어야 하구요.

    그런데 이런 저런 이름이 있는데 그런 이름에 부끄럽지 않는 실력을 갖추는 게 중요하지 않나 싶습니다.
    저는 감히 지금 프론트엔드 개발자라 불릴 수 있나 싶기도 하고요.

    그렇지만… 웹 퍼블리셔는 좀 아닌 거 같아요 ^^;;;

  5. 제가 말씀드렸던 마지막글은… 제가 쓴게 아니고 Outsider 님이 쓰신 글입니다. ^^;

  6. 어제 소스열어서 트랙백을 걸지는 했는데 트랙백url부분에 url이 안서져있습니다. ^^

  7. 잘 읽었습니다. 공감하시는 분들이 꽤 있으실 것 같군요.

  8. 리플을 달지 않을 수가 없었습니다 ㅋㅋㅋ
    저는 학교에서 컴퓨터 공학을 전공으로 하고 있는 2학년 학생입니다(현재 휴학 상태). 그런데 저희 학교의 경우, 1학년때 기본 프로그래밍을 C, 2학년때는 C++과 MFC를 주력으로 가르칩니다.. 그래서 웹에 관심이 있던 저는 HTML와 JSP같은 것들을 배우고 싶고 웹쪽 공부를 더 하고 싶어서 휴학을 한 생태입니다 ㅋㅋ

    하루는 졸업 관련해서 학장님을 만나러 갈 일이 있었는데, 학장님께 제가 앞으로 하고 싶은 분야가 웹이고 소셜과 웹앱 쪽에 관심이 많다고 말씀드렸더니 이런 말씀을 하시더군요..

    “옆집에 놀던 동네 아줌마도 한 달만 배우면 만드는 웹사이트를 니가 왜 비싼 돈주고 힘들게 우리 XX학교를 나와서 그런 일을 하려고 하느냐. 아무나 할 수 있는 일은 그만큼 진입장벽이 낮기 때문에 너가 쉽게 일자리를 잃을거다. 그렇게 이른 나이에 짤리고 싶냐”

    요약만 했을 뿐 없는 말을 지어낸 부분은 하나 없습니다…

    정말 어이가 없더군요.. 저희 학교만 그런건진 모르겠지만 아직도 국내.. 그것도 국대 IT 대학에서 조차 웹은 “아무나”하는 곳으로 생각된다는걸 그때 깨달았습니다;

  9. 그건 아무나 할수 있는 수준의 거나 만들고 있어서 그렇습니다. 페이지 띄우고 alert정도나 하고 있으니 그런말이 나오는 거죠. ㅎㅎ

  10. 대부분의 학교에서 다 비슷한 인식으로 가르칠겁니다.. 저희학교도 그랬는데 요즘은 좀 생각이 달라졌을줄 알았는데 그대로군요 ㅎㅎ 저도 무시받으며 웹공부 했는데.. 그당시 MFC 만 열라하면서 MCSE, MCSD 가지고 계신 선배 동기들보다 결과적으로 제가 더 잘된것 같아요 ㅎㅎ 교수님들은 아무것ㄷㅎ 모르시니 소신 지키시길 바랍니다~~^^

  11. 웹은 “아무나”하는 것은 거의 맞는 말입니다. 근데 “아무나” “잘” 하는 것은 결코 아닙니다.

    제가 알고 있는 컴퓨터 관련 학과 교수님들 중에 웹을 할 줄 아는 교수님은 많지만, “잘”하는 교수님은 “별로” 안 계신 것으로 압니다.

    그리고 웹, C, C++, MFC 이런 건 그저 도구일 뿐입니다. 그러니까 그냥 해당 목적에 맞게 잘 쓰면 되는 겁니다.

  12. Alistasha님,
    아무나 그렇게 쉽게 할 수 있는거면, 그 교수님께 구글이나 네이버 같은 서비스 만들어서 성공시켜 보시라고 전해주세요. 본인의 신념이 가장 중요하니. 항상 화이팅 하시구요^^

  13. 글잘읽었습니다.. 출처인용 해서 담아갑니다..

의견 쓰기

이름* 이메일* 홈페이지(선택)