웹 개발자

"Web Developers write the code that brings web browsers to life."

— 진로 안내서나 국비지원 개발자 양성 학원 포스터에 적힌 아름답고 무난한 정의.

디자이너가 요구하는 픽셀 오차를 맞추기 위해 패딩과 마진을 1px씩 늘려보고, 백엔드 개발자가 넘겨준 엉터리 null 데이터 때문에 화면이 터지는 것을 실시간으로 복구하는 영혼 탈곡 노동자. 내가 코딩을 하는 건지 스택오버플로우와 챗GPT에 영어로 앙탈을 부리고 있는 건지 가끔 분간이 가지 않는다(...)

1. 개요

웹 개발자는 월드 와이드 웹(Web) 환경에서 작동하는 소프트웨어 응용 프로그램과 시스템을 설계, 구축, 유지 보수하는 개발자를 뜻한다. 좁게는 화면을 깎는 프론트엔드 개발자부터 크게는 서버와 DB를 관리하는 백엔드 개발자, 이를 합쳐 혼자 북 치고 장구 치는 풀스택(Full Stack) 개발자까지 아우르는 거대한 직업군이다.

인터넷이 삶의 필수 요소가 됨에 따라 IT 업계에서 가장 수요가 많고 채용 인원도 활발한 직군이지만, 역설적으로 그만큼 트렌드 변화 속도가 무지막지하게 빨라 '자고 일어나면 새로운 프레임워크가 나온다'며 만성적인 기술 부채와 공부 스트레스에 시달리는 가련한 영혼들이기도 하다.(...)

2. 끝없는 영역의 분할: 프론트엔드 vs 백엔드

2.1. 화면을 깎는 장인, 프론트엔드 개발자

HTML, CSS, 자바스크립트를 무기로 사용자가 마주하는 화면 전체의 사용자 경험(UX)을 책임진다. 최근에는 단순히 정적인 마크업을 넘어 React, Vue, Angular 등 복잡한 상태 관리 프레임워크와 빌드 도구를 다루는 고도의 클라이언트 프로그래머가 되었다.

주요 주적은 디자이너의 변덕, 다중 모바일 기기의 레이아웃 이탈, 그리고 매번 말썽을 일으키는 애플의 모바일 사파리 브라우저가 대표적이다.1

2.2. 뒤에서 묵묵히 기둥을 세우는 백엔드 개발자

눈에 보이지 않는 서버 아키텍처, 데이터 정합성, 보안, 그리고 비즈니스 로직을 설계한다. Java, Node.js, Python 등을 다루며 데이터베이스를 주무른다.

주요 업무는 API 스펙 작성, 대용량 트래픽에 대비한 로드 밸런싱, 그리고 성능 저하의 주범인 데이터베이스 슬로우 쿼리 때려잡기다. 프론트엔드가 '화면이 찌그러졌어요'라며 징징댈(?) 때 백엔드는 '서버가 내려앉았어요'라며 회사의 사활이 걸린 피눈물을 흘리곤 한다.

3. 웹 개발자 관련 유구한 드립과 자조

3.1. 자고 일어나면 바뀌는 JS 프레임워크

프론트엔드 생태계의 변화 속도는 무자비함 그 자체다. 오죽하면 개발자 농담으로 '6개월 동안 냉동 수면을 취하고 깨어나면, 내가 쓰던 리액트나 뷰는 레거시 취급을 받고 이름도 모를 신기술이 표준이 되어 이력서에서 나를 밀어낼 것'이라는 공포스러운 밈이 정설처럼 통용된다. 실제로 Webpack, Vite, Turbopack, Rollup 등 번들러 하나만 해도 세대교체가 미치도록 빈번하다.

3.2. 백엔드 '내 컴에선 잘 되는데요?' (Works on my machine)

백엔드 개발자가 구현을 끝내고 프론트엔드나 QA 부서에 코드를 넘겼는데 정상 동작하지 않을 때 시전하는 마법의 방어 기재이다. 개발자 로컬 환경의 OS 사소한 설정, Node.js 버전 차이, 환경 변수 누락 등으로 인해 일어나는 전형적인 고증 충돌 상황이다. 이 무책임한 대답을 예방하고 서버 실행 환경을 완벽히 박제하기 위해 탄생한 초인적인 도구가 바로 Docker라는 구세주이다.(...)

4. 여담

  • 국비지원 학원의 원동력: 한국 IT 인력 시장에서 웹 개발자는 국비지원 단기 속성 학원의 주 타깃이다. '6개월 안에 비전공자를 초일류 자바 스프링 풀스택 웹 개발자로 만들어 줍니다!'라는 무리한 광고를 보고 수많은 도전자들이 불나방처럼 몰려들지만, 막상 현업에 들어가 레거시 스파게티 코드를 만나면 사정없이 폭사하고 탈출하는 경우가 흔하다.2
  • 풀스택 개발자의 허상: 프론트엔드와 백엔드를 모두 완벽하게 다루는 풀스택 개발자는 모든 스타트업 창업가들의 꿈의 인재이다. 그러나 현실에서의 풀스택은 대개 '둘 다 애매하게 못 해서 프론트에서도 버그를 내고 백엔드에서도 서버를 날려 먹는 종합 에러 제조기'이거나, 혼자서 3인분의 노역을 감당하다 과로사 직전에 몰린 노예 개발자 둘 중 하나인 슬픈 진실이 도사린다.
  • 디버깅의 고고한 방법, console.log: 고도화된 디버거 툴과 인스펙터를 두고도, 전 세계 모든 웹 개발자들이 버그를 만났을 때 손가락 반사 신경으로 치는 명령어는 여전히 console.log() 혹은 System.out.println()이다. 화면 구석구석에 임시 로그를 심어가며 눈으로 변수 상태를 확인하는 원시적인 행위는 인공지능이 코드를 대신 짜주는 현대에도 굳건한 신앙으로 남아 있다.

5. 관련 문서

각주

  1. 실제로 모바일 사파리는 고유의 스펙 해석 지연과 주소창 스크롤 시 화면 높이(100vh)를 기괴하게 갉아먹는 종특을 지니고 있어 프론트엔드 개발자들의 불면증을 자극한다.

  2. 이로 인해 개발자 커뮤니티에서는 실력 없는 주니어 개발자를 조롱하는 '개발 싸개'라는 비하적인 유행어와 진짜 내공 깊은 개발자를 우러러보는 숭배 밈이 혼재되어 작동한다.(...)