웹 개발자는 어떤 일을 하나요? [풀스택, 프론트엔드, 백엔드, 퍼블리셔]

 웹 개발자는 회사에 출근하면 어떤 일을 할까요. IT 직군과 접점을 가지고 있는 사람이라면 모를까 일반적으로 사람들이 접하는 IT라는 개념은 핸드폰으로 사용하는 애플리케이션이나 컴퓨터를 통해 이용하는 엑셀, 한컴 같은 프로그램 같은 프로그래밍의 산출물이다 보니 개발자가 일하는 모습을 이미지로 떠올리기가 쉽지 않습니다. 만약 아니라면 영화나 드라마에서 나오는 단 몇 초만에 해킹에 성공하는 만능 해커나 뚝딱 페이스북 같은 프로그램을 만드는 천재 프로그래머의 모습을 떠올리시나요?

웹 개발자의 정의

 식상할 수도 있지만 웹 개발자가 어떤 일을 하는지 알아보기 전에 웹 개발자에 대한 정의를 먼저 내려보려고 합니다. Wiki에는 "HTTP 프로토콜을 커뮤니케이션 매체로 사용하는 웹 페이지, 웹 사이트 등 WWW 기반 소프트웨어 개발자 또는 소프트웨어 엔지니어를 말한다. 대다수의 웹 개발자들은 웹 디자인, 정보설계, 사용자 인터페이스 설계, 프로젝트 관리, 웹 서버 및 데이터베이스 관리, 웹페이지 코딩 및 프로그래밍 관련 기술을 가지고 있다."라고 웹 개발자를 정의하고 있네요.

 

 간단하게 말하면 웹 사이트를 만들고 유지 보수하는 기술을 가진 사람 정도로 말할 수 있을 것 같아요. 엄밀히 따지자면 웹 사이트를 만들고 관리하지 않는다고 해서 웹 개발자가 아닌 것은 아닙니다. 웹 프로그래밍을 통해서 만들 수 있는 것들은 웹 사이트로만 한정되지 않아요. Slack과 같은 프로그램은 웹 페이지처럼 보이지 않지만 기반 기술은 웹 프로그래밍을 사용하고 있습니다. 앞서 웹 사이트에 한정 지어 웹 개발자를 말한 부분은 설명을 드리기 위해 함축적인 표현을 사용한 부분이니 오해하지 말아 주세요.

 

 

역할 분류하기 - 프론트엔드, 백엔드, 퍼블리셔, DBA, 풀스택

 웹 개발자라는 말 대신에 프론트엔드, 백엔드, 퍼블리셔, DBA, 풀스택과 같은 단어들도 들어보셨나요? 이 단어들은 웹 개발자가 수행하는 업무를 분류하고 정의하는 말입니다. 웹 개발자는 여러 가지 일들을 맡아서 처리하기 때문에 일이 가지고 있는 특성에 따라 업무를 분리하고 각자가 맡은 역할을 수행합니다.

프론트엔드

 프론트엔드는 주로 사람들이 화면을 통해서 보고 사용하는 웹 브라우저의 페이지를 만드는 일을 합니다. 일반적으로 웹 페이지는 이용하는 사람은 알 수 없지만 사용자가 사용하는 페이지의 기능들은 HTTP 통신을 통해 서버에 작업을 요청하고 수행 결과를 가져와 화면에 보여줍니다. 프론트엔드 개발자는 이러한 웹 페이지와 서버 간의 모든 상호 작용을 이해하고 사용자가 이용하는 기능을 문제없이 동작할 수 있도록 웹 프로그래밍을 통해 웹 페이지를 만드는 일을 합니다.

백엔드

 백엔드는 화면에서 요청한 일을 처리하는 부분을 만듭니다. 프론트엔드 개발이 서버와 통신을 하고 그 결과를 웹 페이지에 보여주는 일을 한다고 하면 서버와 통신을 할 때 서버에서 요청을 받아 요청에 맞는 결과를 돌려주는 기능을 만드는 것이 백앤드 개발입니다. 다시 말하면 사용자가 요청한 일들을 문제없이 잘 동작할 수 있도록 만드는 것이 백앤드 개발자의 주요 업무입니다.

퍼블리셔

 프론트엔드와 마찬가지로 화면을 만듭니다. 주로 HTML이라는 마크업 언어를 사용해 화면의 구조를 정의하고 CSS라는 디자인 기술을 통해 HTML로 정의한 구조에 디자인을 입히는 일을 합니다. 퍼블리셔와 프론트엔드는 겉으로 보기에는 비슷한 일을 하지만 퍼블리셔는 화면을 그리는 일에 주안 점을 두고 프론트엔드는 퍼블리셔가 하는 일과 더불어 서버와 상호작용하는 부분까지 만듭니다.

DBA

 DBA(Database Administrator)는 사용자가 읽고 쓰는 데이터를 관리하는 일을 합니다. 데이터 저장소를 관리할 수 있는 SQL을 사용해 단순히 데이터를 읽고, 쓰고, 수정하는 것뿐만 아니라 보다 데이터를 잘 사용할 수 있도록 데이터의 저장 방식을 정의하기도 하고, 문제가 발생했을 때를 대비해 특정 조건을 기준 삼아 데이터를 백업하기도 합니다. 다시 말해 DBA라는 단어 그대로 데이터와 관련된 전반적인 일을 관리 감독합니다.

풀스택

 웹 개발자가 하는 모든 업무를 전반적으로 다룰 줄 아는 개발자입니다. 요즘처럼 프론트엔드, 백엔드, 퍼블리셔 등 웹 개발자를 세분화하기 이전에 웹 개발자를 지칭하던 말이기도 합니다. 몇 년 전만 하더라도 많은 개발자들이 앞서 이야기한 웹 페이지 개발의 처음과 끝을 모두 다 할 수 있어야 했고 해야 했습니다. 지금처럼 웹 기술이 활성화되기 이전에 사용자들이 기대하는 웹 화면의 기능은 현재처럼 다양하지 않고 한정적으로 사용이 되었기 때문에 가능했던 부분입니다.

그래서 무슨 일을 하나요?

 다시 원래 주제로 돌아와서 이야기를 해보자면 웹 개발자는 사용자가 요구하는 웹 페이지를 만드는 일을 합니다. 예를 들어 쇼핑몰 사이트를 만든다고 한다면 사용자는 물건을 검색하고 검색한 물건을 장바구니에 담고 장바구니에 담은 물건을 결제합니다. 이때 사용자가 이용하는 모든 기능들을 잘 사용할 수 있게 만들고 문제가 없도록 지속적으로 관리를 하는 것이 웹 개발자입니다. 웹 개발자는 만들거나 유지 보수해야 할 웹 사이트가 가지는 성격에 따라 사용해야 하는 기술의 종류와 범위가 달라집니다. 일반적으로 완전히 동일한 상황에서 웹 사이트가 만들어지지 않기 때문에 웹 개발자는 상황에 따라 가지고 있는 기술과 필요한 기술을 배워 웹 프로그래밍을 합니다.

재미는 있나요?

 네 웹 페이지를 만드는 것은 재미있습니다. 모든 일이 다 그렇지만 프로그래밍을 하는 일은 어렵기도 하지만 재미있습니다. 웹 개발뿐 아니라 프로그래밍이라는 것은 가상현실 세계에서 현실을 바탕으로 초현실을 만드는 것과 같다고 생각합니다. 현실에서는 할 수 없는 일들을 코드를 통해서라면 얼마든지 상상할 수 있고 만들어 낼 수 있습니다. 이상한 나라의 앨리스에 나오는 환타지적인 세계도 프로그래밍을 통해 하나의 가상 세계로 구현해낼 수 있습니다. 그렇기 때문에 프로그래밍을 한다는 것은 어렵지만 정말 재미있는 일입니다. 더군다나 프로그래밍이라는 것은 앞으로의 전망이 어둡기는커녕 되려 먼 옛날부터 지금까지 계속 발전해왔고 앞으로도 꾸준히 성장해 나갈 분야이기 때문에 스스로가 도태되지 않는다면 끊임없는 만족감과 즐거움을 느낄 수 있는 일입니다.

반응형

댓글

Designed by JB FACTORY