프론트엔드 · 백엔드
Frontend / Backend
프론트엔드란?
- 프론트=사용자가 보는 화면
- 백=뒤에서 데이터·로직 처리
- 웹 개발의 두 축
프론트엔드와 백엔드를 나눠 보기 시작하면 가장 먼저 바뀌는 것은 장애 신고가 도착하는 자리입니다. '주문이 안 돼요'라는 한 문장짜리 민원도, 버튼이 아예 눌리지 않은 것인지 눌렸는데 서버가 거절한 것인지에 따라 불러야 할 사람이 달라집니다. 실무에서는 브라우저에서 F12를 눌러 Network 탭을 보는 30초로 갈리는데, 요청이 서버까지 갔는지 여부가 첫 번째 갈림길입니다. 여기서 방향을 잘못 잡으면 엉뚱한 팀이 며칠을 씁니다.
둘의 경계는 대개 API라는 약속 지점에 놓입니다. 프론트는 '이 주소로 이런 값을 보내겠다', 백은 '이런 형식으로 답하겠다'를 미리 맞춰두고 각자 작업하기 때문에, 화면과 서버를 서로 다른 회사가 동시에 개발하는 일도 가능합니다. 응답 코드도 단서가 되는데, 400번대는 요청 쪽, 500번대는 서버 쪽 문제인 경우가 많습니다. 둘을 모두 다루는 사람을 풀스택이라 부르지만, 이는 혼자 다 해낸다는 뜻이 아니라 경계를 넘어 대화가 된다는 뜻에 가깝습니다.
일을 맡길 때도 이 구분이 견적서의 단위가 됩니다. '쇼핑몰 하나'가 아니라 '화면 18종과 API 24개'로 적으면 일정과 투입 인력이 계산되고, 중간 점검에서 어느 쪽이 밀렸는지 눈에 보입니다. 다만 백엔드와 서버·네트워크를 운영하는 인프라(데브옵스) 영역은 또 다릅니다. 사이트 접속 자체가 안 되는 장애는 코드가 아니라 서버 용량이나 도메인 설정 문제인 경우가 많아, 개발자에게 밤중에 전화할 일이 아닌 사안이 섞여 들어옵니다.
현장에서 가장 자주 어긋나는 지점은 '화면이 느리다=프론트 탓'이라는 짐작입니다. 목록이 늦게 뜨는 원인의 상당수는 데이터베이스 조회가 몇 초씩 걸리는 데 있고, 이때 이미지 용량을 줄이고 애니메이션을 걷어내도 체감 속도는 그대로입니다. 바이브 코딩에서도 같은 함정이 생깁니다. AI에게 화면만 시켜 그럴듯한 시안을 받고 시연까지 통과했는데, 새로고침하면 입력한 데이터가 사라지는 껍데기인 경우입니다. 발주서에 화면 개수만 적고 데이터를 어디에 저장하고 누가 검증하는지를 빼면, 오픈 직전에 일정과 예산을 처음부터 다시 짜게 됩니다.
| 구분 | 프론트엔드 | 백엔드 |
|---|---|---|
| 역할 | 사용자가 보는 화면 | 데이터·로직 처리 |
| 위치 | 브라우저·앱(앞단) | 서버(뒷단) |
| 예 | 버튼·레이아웃 | 로그인·DB·결제 |
웹이 복잡해지면서 '화면 표현'과 '데이터·로직 처리'의 역할이 분업화되며 자연스럽게 정착된 구분입니다. 특정 창시자보다 웹 개발 실무에서 형성됐습니다.
가상의 사례로 살펴보겠습니다. 임직원 140명, 연매출 약 480억 원의 생활용품 유통사 A사는 자사몰을 3개월 일정으로 리뉴얼했습니다. 오픈 2주 만에 '장바구니에 담기가 안 된다'는 고객센터 접수가 하루 30건씩 쌓였는데, 외주 개발사와 운영팀이 서로 '저희 쪽은 정상입니다'만 주고받으며 2주를 흘려보냈습니다.
- 운영팀 김 대리가 크롬 개발자도구 Network 탭을 열어놓고 '담기' 버튼을 누르자 cart API가 500 에러를 뱉었고, 화면이 아니라 서버 쪽이라는 사실이 30분 만에 드러났습니다.
- 외주사 백엔드 담당자가 로그를 뒤져보니 재고 조회 쿼리가 평균 4.2초 걸려 타임아웃이 나고 있었습니다. 김 대리는 '그럼 CSS 붙잡고 있던 2주가 통째로 헛일이었네요'라고 했습니다.
- DX팀장은 장애 접수 양식을 뜯어고쳐 화면 캡처와 Network 탭 상태코드를 필수 입력으로 넣었고, 접수 즉시 프론트 담당과 백엔드 담당 중 한 쪽으로 자동 배정되게 했습니다.
- 백엔드 담당자가 재고 테이블에 인덱스를 추가해 조회 시간을 4.2초에서 0.3초로 줄였고, 프론트 담당자는 응답이 늦을 때 '처리 중' 표시를 띄우도록 화면을 손봤습니다.
- 한 달 뒤 장바구니 관련 문의는 하루 30건에서 2건으로 줄었고, 장애 1차 원인을 가려내는 데 걸리던 시간이 평균 2일에서 40분으로 짧아졌습니다.