
솔직히 말해봅시다. 술 한잔 들어갔으니까 하는 이야기인데, 개발자들 사이에서 CSS만큼 동네북 취급을 받는 기술이 또 있을까요?
저도 그랬습니다. 청주에서 웹 에이전시 다닐 때, 그리고 SI 프로젝트 파견 다니면서 "CSS는 그냥 디자이너가 그려준 그림 대충 위치만 맞추면 되는 거 아니냐"고 생각했습니다. 백엔드 로직이나 DB 스키마는 며칠 밤을 새우며 설계하면서도, 정작 화면을 그리는 CSS는 마감 직전에 구글링해서 복사 붙여넣기로 때우기 일쑤였으니까요.
그때 제 코드는 정말이지 '생존'을 위한 처절한 몸부림 그 자체였습니다.

누군가가 "CSS 진짜 구리지 않냐?"라고 불평할 때마다 저는 쓴웃음을 짓습니다. 과거의 제가 떠오르기 때문입니다. 우리는 자바나 파이썬, 혹은 복잡한 MSA(Microservices Architecture)를 이해하기 위해서는 수개월, 아니 수년을 투자합니다. 전공 서적을 읽고, 강의를 듣고, 선배들의 코드를 뜯어보죠.
그런데 이상하게도 CSS 앞에서는 그 '학습의 과정'이 생략됩니다. 마치 자바스크립트 문법 며칠 공부했다고 리액트(React)를 마스터할 수 있다고 착각하는 것과 비슷합니다.
우리는 거대한 시스템을 구축해 놓고, 가장 마지막 순간에 CSS를 입힙니다. 마치 시험 시간이 5분 남았을 때 서술형 답안을 작성하려는 학생처럼 말입니다. 마음은 급하고, 원리는 모르겠고, 당장 화면 중앙 정렬(Center Align)은 해야겠으니 온갖 편법을 동원합니다.
그 결과가 무엇인지 아십니까?
!important의 향연, 의미를 알 수 없는 div 태그의 중첩, 그리고 화면 해상도가 조금만 바뀌어도 와르르 무너져 내리는 레이아웃입니다.
제가 SI 현장에서 굴를 때 겪었던 일입니다. 고객사가 갑자기 버튼 위치 하나를 옮겨달라고 했습니다. 아주 사소한 수정이었죠. 그런데 그 버튼 하나를 옮기기 위해 제가 짰던 스타일시트를 건드리는 순간, 헤더가 날아가고 푸터가 본문을 덮어버리는 대참사가 일어났습니다.
이유는 뻔했습니다. position: absolute를 남발했기 때문입니다. 그게 언제 쓰여야 하는지, 부모 요소와의 관계가 어떤지는 전혀 고려하지 않고, 당장 눈에 보이는 위치에 요소를 강제로 박아 넣기 위해 썼던 업보가 터진 겁니다.
그날 저는 깨달았습니다. 우리가 CSS를 혐오하는 진짜 이유는 언어 자체가 형편없어서가 아니라, 우리가 그것을 '제대로 배울 생각'을 단 한 번도 하지 않았기 때문이라는 사실을요.
백엔드 개발자가 되려면 헌신이 필요합니다. 아키텍처를 공부하고, 트래픽을 감당하기 위한 설계를 고민합니다. 프로그래밍은 단순히 문법을 나열하는 게 아니라, 문제를 해결하는 정신 모델(Mental Model)을 구축하는 과정이기 때문입니다.
CSS도 마찬가지입니다. 디자인 문제를 해결하기 위해서는 계획과 경험이 필요합니다. Bootstrap 같은 프레임워크를 덮어씌우고 클래스 이름을 무지성으로 뿌리는 건 개발이 아닙니다. 그건 그냥 땜질입니다.
물론 CSS가 완벽하다는 건 아닙니다. 과거 CSS 2 시절에는 div 하나 가운데 정렬하는 게 국가 고시 수준으로 어려웠던 적도 있었으니까요. 하지만 지금 우리가 겪는 대부분의 고통은 도구의 탓이 아닙니다.
"절대 position: absolute를 쓰지 마라"라고 조언하는 시니어들이 있습니다. 그런데 정작 그들의 코드를 보면 그걸 쓰고 있죠. 제가 물어봤을 때 그 형이 했던 말이 기억납니다.
"언제 써야 하는지 정확히 알고 통제할 수 있을 때만 쓰는 거야. 모르면 아예 쓰지 않는 게 상책이고."
통제할 수 없는 코드는 언젠가 반드시 우리를 배신합니다. 그게 백엔드 로직이든, 프론트엔드 스타일이든 말입니다.
당신이 만든 그 훌륭한 비즈니스 로직과 API가, 엉망진창인 UI 때문에 저평가받는다면 너무 억울하지 않습니까? 사용자는 당신의 우아한 쿼리 최적화나 클린 아키처를 보지 못합니다. 그들이 보는 건 오직 화면뿐입니다.
지금이라도 늦지 않았습니다. CSS를 '귀찮은 뒤처리'가 아니라 하나의 독립된 기술 스택으로 바라봐주세요. 거창한 디자인 감각을 익히라는 게 아닙니다. 적어도 내가 짠 코드가 화면을 어떻게 렌더링 하는지, 그 원리 정도는 파악하고 있자는 겁니다.
그래야 주말에 갑자기 터진 UI 버그 때문에 식은땀 흘리며 응급실 실려 가는 기분을 느끼지 않을 수 있습니다. 저처럼 뼈저리게 후회하고 나서 배우지 말고, 지금 당장 시작해보세요. 생각보다 할 만합니다, 진짜로요.

![[IEEE 컨퍼런스] 현직자들만 돌려본 '루빅스 큐브' 인증 구현체 공개](/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fpoooling-blog%2Fblog-images%2F2026%2F01%2F07%2F1813_32a0bf6f.png&w=3840&q=75)
