백엔드
백엔드(backend)는 사용자 눈에 안 보이는 서버 쪽에서 요청을 검사하고 계산하고 데이터베이스에 저장하는 부분이에요. 가격 계산·로그인·권한 확인처럼 조작되면 안 되는 일을 맡아요.
목차 보기
백엔드(backend)는 사용자 눈에 안 보이는 서버 쪽에서 요청을 검사하고, 계산하고, 저장하는 부분이에요. 식당으로 치면 손님이 보는 홀이 아니라 주문서를 받아 요리하고 장부에 적는 주방이에요.
글 서순명(솔리드그루 이사 · 퓨쳐인프라 운영) · 2026-10-29 작성 · 예시 서버는 2026-10-29 Windows 11 · Node.js v24.15.0 에서 직접 실행
3줄 요약
백엔드는 어떻게 동작하나요?
흐름은 네 단계예요. 화면에서 버튼을 누르면 요청이 서버로 가요. 백엔드는 그 요청이 말이 되는지 먼저 확인해요. 괜찮으면 계산하고 데이터베이스에 저장해요. 마지막으로 결과를 화면에 돌려줘요.
화면과 백엔드는 정해진 주소와 형식으로 말을 주고받아요. 이 약속을 API라고 하고, 주고받는 글은 보통 JSON 형식이에요.
MDN 웹 문서도 서버 쪽 코드가 받은 데이터를 검사하고, 데이터베이스에 넣고 꺼내고, 허락된 사람에게만 정보를 보여 준다고 설명해요(MDN 서버 쪽 프로그래밍 소개).
백엔드와 프론트엔드는 뭐가 달라요?
핵심 차이는 코드가 어디서 돌아가느냐예요. 프론트엔드는 사용자 브라우저에서, 백엔드는 회사 서버에서 돌아가요.
| 구분 | 백엔드 | 프론트엔드 |
|---|---|---|
| 돌아가는 곳 | 서버 컴퓨터 | 사용자 브라우저 |
| 사용자가 코드를 볼 수 있나 | 못 봐요 | 누구나 볼 수 있어요 |
| 주로 하는 일 | 검사·계산·저장·권한 확인 | 화면 그리기·버튼 반응 |
| 쓰는 언어 예 | Node.js(자바스크립트), 파이썬, PHP, 자바 | HTML, CSS, 자바스크립트 |
| 식당 비유 | 주방과 장부 | 홀과 메뉴판 |
둘 다 혼자 만들고 데이터베이스까지 붙이는 걸 풀스택이라고 해요.
백엔드는 실제로 무슨 일을 해요?
| 하는 일 | 예 | 백엔드가 없으면 |
|---|---|---|
| 입력 검사 | 수량은 1~20잔만 받기 | -5잔 같은 엉뚱한 주문이 들어가요 |
| 값 계산 | 가격표로 합계 내기 | 손님이 보낸 가격을 그대로 믿게 돼요 |
| 저장 | 주문을 데이터베이스에 적기 | 새로고침하면 주문이 사라져요 |
| 로그인·권한 | 내 주문만 보여 주기 | 남의 정보가 보일 수 있어요 |
| 비밀 키 보관 | 결제·AI API 키를 서버에만 두기 | 키가 화면 코드에 드러나요 |
직접 만들어 보면 어떻게 동작하나요?
2026-10-29 Windows 11 PC에서 직접 만들어 돌린 작은 주문 서버예요. 따로 설치한 패키지 없이 Node.js v24.15.0 에 들어 있는 기능만 썼어요. 데이터베이스는 Node.js 내장 SQLite 모듈이에요(Node.js 문서).
// 백엔드: 가격표는 서버가 갖고 있고, 손님이 보낸 가격은 믿지 않아요
const PRICE = { "아메리카노": 4000, "라떼": 4500 };
...
if (!PRICE[o.menu]) return reply(400, { error: "없는 메뉴예요" });
if (!Number.isInteger(o.qty) || o.qty < 1 || o.qty > 20) return reply(400, { error: "수량은 1~20잔이에요" });
const total = PRICE[o.menu] * o.qty; // 손님이 보낸 price 는 무시
const r = db.prepare("INSERT INTO orders (menu, qty, total) VALUES (?, ?, ?)").run(o.menu, o.qty, total);
reply(201, { id: Number(r.lastInsertRowid), menu: o.menu, qty: o.qty, total });
이 서버에 요청 네 개를 보내 봤어요.
$ curl -X POST http://localhost:18083/api/orders -d '{"menu":"라떼","qty":2}' (정상 주문)
{"id":1,"menu":"라떼","qty":2,"total":9000} <- HTTP 201
$ curl -X POST http://localhost:18083/api/orders -d '{"menu":"라떼","qty":2,"price":10}' (가격을 10원으로 조작)
{"id":2,"menu":"라떼","qty":2,"total":9000} <- HTTP 201
$ curl -X POST http://localhost:18083/api/orders -d '{"menu":"라떼","qty":-5}' (수량 -5)
{"error":"수량은 1~20잔이에요"} <- HTTP 400
$ curl -X POST http://localhost:18083/api/orders -d '{"menu":"라떼",}' (깨진 JSON)
{"error":"JSON 형식이 아니에요"} <- HTTP 400
- 정상 주문은 라떼 4,500원 × 2잔 = 9,000원으로 저장됐어요. 201은 "새로 만들었다"는 응답 번호예요.
- 가격을 10원으로 바꿔 보내도 합계는 9,000원 그대로예요. 백엔드가 자기 가격표로 다시 계산했기 때문이에요.
- 수량 -5잔과 형식이 깨진 글은 400("요청이 잘못됐다")으로 거절하고, 저장하지 않았어요.
백엔드와 서버는 같은 말이에요?
비슷하게 쓰이지만 조금 달라요. 백엔드는 위에서 본 "검사하고 저장하는 코드"예요. 서버는 그 코드를 24시간 돌려 주는 컴퓨터예요.
그래서 백엔드 코드를 다 짜도 내 노트북에서만 켜 두면, 노트북을 덮는 순간 앱이 멈춰요. 남들이 쓰게 하려면 서버나 앱 호스팅에 올려야 해요.
바이브코더는 백엔드를 어떻게 다루나요?
바이브코딩으로 앱을 만들면 AI가 백엔드 코드를 대신 써 줘요. 다만 무엇을 서버에서 해야 하는지는 내가 알려 줘야 해요. AI는 시키지 않으면 화면 쪽에서 쉽게 끝내려 할 때가 있어요.
클로드 코드처럼 터미널에서 일하는 도구는 서버를 직접 켜고 curl로 시험까지 해 볼 수 있어요. 위 실험처럼 "이상한 값을 보내 봐"라고 시키면 빈틈을 미리 찾아 줘요.
자주 하는 오해와 주의할 점
- "화면에서 막았으니 괜찮다" — 화면 검사는 편의용이에요. 요청은 화면을 거치지 않고 curl로도 보낼 수 있어서, 최종 확인은 백엔드가 해야 해요.
- API 키를 화면 코드에 넣기 — 브라우저로 내려간 코드는 누구나 열어 봐요. 키는 백엔드의 환경변수에 둬요.
- "백엔드는 꼭 어려운 언어로" — 화면에 쓰는 자바스크립트로도(Node.js) 만들어요. MDN도 서버 쪽 언어 예로 PHP·파이썬·루비·C#·자바스크립트를 들어요.
퓨쳐인프라에서는 어떻게 올리나요?
만든 백엔드를 도커 이미지로 묶으면 퓨쳐인프라 앱 호스팅에서 주소와 HTTPS까지 한 번에 받아요. 앱 하나를 켜 두면 월 5,500원(1코어·1GB·트래픽 20GB 포함, 부가세 포함)이에요.
데이터베이스를 붙이면 월 2,200원이 더해져요. MariaDB·MySQL·PostgreSQL·Redis 중에 고를 수 있어요. 접속 정보는 앱 환경변수로 자동으로 들어가서, 비밀번호를 직접 옮겨 적지 않아도 돼요. API 키 같은 비밀값도 환경변수로 넣으면 암호화해 보관해요.
자주 묻는 질문
백엔드를 배우려면 어떤 언어부터 시작해요?
화면도 함께 만들 생각이면 자바스크립트(Node.js)가 편해요. 한 언어로 앞뒤를 다 쓸 수 있어서예요. 데이터 처리나 AI 기능이 많으면 파이썬도 많이 써요.
백엔드 없이 앱을 만들 수도 있어요?
보여 주기만 하는 소개 페이지나 계산기는 화면만으로 돼요. 회원가입, 결제, 여러 사람이 같은 데이터를 보는 기능이 들어가면 백엔드가 있어야 해요.
백엔드 개발자는 하루 종일 무슨 일을 해요?
API를 만들고, 데이터베이스 구조를 짜고, 느리거나 틀린 요청을 고쳐요. 서버가 잘 돌고 있는지 기록(로그)을 보는 일도 해요.
백엔드에서 오류가 나면 화면에는 어떻게 보여요?
보통 응답 번호로 알려 줘요. 400번대는 요청이 잘못됐다는 뜻이고, 500번대는 서버 안에서 문제가 났다는 뜻이에요. 화면은 그 번호를 보고 안내 문구를 띄워요.
관련 용어
- 프론트엔드 — 백엔드에 요청을 보내는 화면 쪽
- 풀스택 — 화면·백엔드·데이터베이스를 한 번에 만드는 것
- API — 화면과 백엔드가 말을 주고받는 약속
- 데이터베이스 — 백엔드가 주문·회원 정보를 적어 두는 곳
- Node.js — 자바스크립트로 백엔드를 만드는 실행 환경
- 500 에러 — 백엔드 안에서 문제가 났을 때 보이는 응답
- 작성: 서순명(솔리드그루 이사 · 퓨쳐인프라 — 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 를 운영) · 작성일 2026-10-29
- 운영사: 솔리드그루 · 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계: 예시 서버는 2026-10-29 PC 한 대에서 메모리 데이터베이스로 돌린 연습용이라, 실제 서비스라면 로그인·요청 횟수 제한 같은 장치가 더 들어가요. 요금은 같은 날 퓨쳐인프라 공개 요금표 기준이에요.
- 이해관계: 퓨쳐인프라(솔리드그루) 블로그예요. 글 안에 자사 앱 호스팅·데이터베이스 안내가 있어요.
연관 서비스
많이 본 글
-
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글 0
로그인하면 댓글을 남길 수 있습니다.