큰 그림
여러분이 만들게 될 거의 모든 앱은 서로 대화하는 네 부분으로 이루어져 있습니다:
- frontend(사용자가 보는 화면) — 사용자가 보고 클릭하는 것. 브라우저나 휴대폰 앱 안의 화면, 버튼, 글자입니다.
- backend(서버에서 도는 로직) — 여러분이 관리하는 서버에서 돌아가는 로직. 규칙을 강제하고, 일을 처리하고, 누가 무엇을 할 수 있는지 결정합니다.
- 데이터베이스 — 정보가 머무는 곳, 그래서 내일도 그 정보가 그대로 있게 해줍니다. 계정, 게시물, 주문 같은 것들.
- 호스팅 — 세상 어딘가에 있는, 위의 모든 것을 실제로 돌려서 다른 사람들이 접근할 수 있게 해주는 컴퓨터들입니다.
이것들이 어떻게 연결되는지 봅시다:
┌──────────────┐ request ┌──────────────┐ query ┌──────────────┐
│ │ ─────────────────────▶ │ │ ──────────────────▶ │ │
│ FRONTEND │ │ BACKEND │ │ DATABASE │
│ (browser) │ ◀───────────────────── │ (server) │ ◀────────────────── │ (storage) │
│ │ response │ │ rows │ │
└──────────────┘ └──────────────┘ └──────────────┘
보이는 것 규칙 + 로직 데이터가 사는 곳
└──────────────────────────── 이 모든 것은 HOSTING 위에서 돈다 ──────────────────────────────┘
frontend는 절대 데이터베이스와 직접 대화하지 않습니다. 항상 규칙이 머무는 backend를 거칩니다. 이 한 가지 사실이 앱이 어떻게 만들어지는지에 대해 많은 것을 설명해줍니다 — 그리고 왜 "그냥 페이지가 데이터베이스를 읽게 하자"가 거의 정답이 아닌지도요.