MẬT DANH: ZERO — Chương 08: Backend & Dữ liệu (Database · API · Cloud) | HÀN NGỮ KOOKMIN
Tủ sách
MẬT DANH: ZERO · Chương 08 · Backend & Dữ liệu
📕 Đặt sách 1 / 1
Đọc miễn phí · Chương 08

Vũ khí thứ tám // 백엔드

TẦNG HẦMBÍ MẬT
Backend · Database · API · Cloud

Thế giới phía sau màn hình — nơi dữ liệu sống, và nơi "A." đang ẩn.
백엔드와 데이터

Chạm nửa phải màn hình để lật trang ›

Tiền bối

"Em không làm gì sai. Vấn đề là em CHƯA nhìn thấy — phần dưới mặt nước của tảng băng. Đây là backend — tầng hầm nơi mọi bí mật được cất giữ. Nếu frontend là sân khấu, thì đây là hậu trường. Cũng là nơi kẻ tấn công thật sự nhắm tới — hắn không quan tâm màu nút bấm, hắn muốn dữ liệu."

Frontend & Backend — hai nửa một thế giới

Frontend · 프론트엔드

Phần trước — tất cả những gì người dùng nhìn thấy và chạm vào: nút bấm, hình ảnh, bố cục. Chính là HTML/CSS/JS bạn đã học.

Backend · 백엔드

Phần sau — phần ẩn người dùng không thấy: xử lý logic, kiểm tra mật khẩu, lưu đơn hàng, tính toán. Chạy trên máy chủ (server), không chạy trên máy người dùng.

🍽️
FRONTEND
Phòng ăn — khách NHÌN THẤY
HTML · CSS · JS
👨‍🍳
BACKEND
Nhà bếp — khách KHÔNG thấy
Server · Logic · Database

Ví dụ nhà hàng: Frontend là phòng ăn & thực đơn khách thấy; Backend là nhà bếp nấu món phía sau.

Kho lưu trữ khổng lồ

Database

Cơ sở dữ liệu — Database (DB) · 데이터베이스

Nơi lưu trữ có tổ chức mọi thông tin của ứng dụng: tài khoản, bài đăng, đơn hàng… Hình dung như một tủ hồ sơ khổng lồ với vô số ngăn dán nhãn rõ ràng. Dữ liệu thường sắp thành bảng (table) — như bảng tính Excel có hàng và cột.

idtênemail
1ZEROzero@nox.tech
2Seo-yeonsun@nox.tech

SQL — ngôn ngữ ra lệnh cho database

SQL · 에스큐엘

Ngôn ngữ dùng để "nói chuyện" với database: lấy dữ liệu ra, thêm, sửa, xóa. Đọc gần như tiếng Anh tự nhiên.

truy-van.sql
SELECT tên FROM NguoiDung -- lấy cột "tên" từ bảng
WHERE id = 1; -- chỉ lấy người có id = 1
-- Kết quả → ZERO

App To-do quen thuộc — phiên bản database

Khi mỗi việc là một hàng trong bảng

IDNOI_DUNGNGUOI_DUNGDA_XONG
1Học SQLZERO
2Sửa bug đăng nhậpZERO
3Gọi điện cho kháchMinh
viec.sql
-- Thêm một việc mới (giống nút "Thêm")
INSERT INTO ViecCanLam (noi_dung, nguoi_dung, da_xong)
VALUES ('Viết báo cáo', 'ZERO', 0);

-- Đánh dấu việc số 2 đã xong
UPDATE ViecCanLam SET da_xong = 1 WHERE id = 2;

-- Lấy các việc CHƯA xong của ZERO để hiện lên
SELECT noi_dung FROM ViecCanLam
WHERE nguoi_dung = 'ZERO' AND da_xong = 0;

Cùng một app, cùng những thao tác — nhưng giờ chúng sống trong database thay vì trình duyệt. Nhờ vậy, dù ZERO đăng nhập từ điện thoại, laptop công ty hay máy ở nhà, việc của cô vẫn ở đó. Và cả đội cùng nhìn thấy. Đó chính là thứ biến một bài tập cá nhân thành một sản phẩm thật.

Toàn cảnh: một lần bấm "Đăng nhập"

Frontend gửi tên+mật khẩu → qua API → Backend nhận, hỏi Database "có người này không?" bằng SQL → Database trả lời → Backend báo lại Frontend "đúng rồi, mời vào". Tất cả trong chớp mắt.

Bốn "động từ" làm được 90% việc

LệnhNghĩaVí dụ đời thường
SELECTLấy dữ liệu ra"Cho tôi xem danh sách khách hàng"
INSERTThêm dữ liệu mới"Thêm một khách hàng mới"
UPDATESửa dữ liệu có sẵn"Đổi số điện thoại của khách này"
DELETEXóa dữ liệu"Xóa đơn hàng đã hủy"
⚠ Cẩn thận với WHERE!

Câu DELETE FROM NguoiDungquên WHERE sẽ xóa toàn bộ người dùng. Đây là một trong những lỗi kinh điển và đáng sợ nhất. Luôn kiểm tra kỹ điều kiện WHERE trước khi chạy lệnh sửa/xóa.

Vì sao kiểm tra mật khẩu phải ở backend?

🔒 Bài học bảo mật cốt lõi

Code frontend chạy trên máy người dùng — ai cũng xem được (bấm F12 là thấy hết). Kiểm tra mật khẩu ở frontend = kẻ xấu đọc code là biết cách qua mặt. Mọi việc nhạy cảm (mật khẩu, thanh toán, phân quyền) đều phải làm ở backend — chạy trên máy chủ của bạn. Quy tắc: không bao giờ tin dữ liệu từ phía người dùng.

✓ Kiểm tra nhanh

1. Lệnh SQL nào để lấy dữ liệu ra xem?
SELECT — ví dụ SELECT * FROM NguoiDung;

2. Frontend hay backend nên kiểm tra mật khẩu?
Backend — vì code frontend ai cũng xem được, không an toàn để giữ logic nhạy cảm.

3. API đóng vai trò gì?
Là cửa giao tiếp có quy ước, giúp frontend và backend trao đổi dữ liệu.

▣ Nhiệm vụ 08 — vẽ hành trình dữ liệu

☐ Vẽ 4 hộp: Frontend → API → Backend → Database
☐ Vẽ mũi tên một lần "đăng nhập" đi qua từng hộp
☐ Viết một câu SQL lấy email của người tên "Seo-yeon"
☐ Tự giải thích: vì sao mật khẩu kiểm ở backend, không phải frontend?

Một lời gọi API trông thế nào?

Khi app cần dữ liệu từ nơi khác, nó gửi một "yêu cầu" (request) tới địa chỉ API, và nhận lại "phản hồi" (response) — thường ở dạng JSON.

goi-api.js
// Yêu cầu dữ liệu thời tiết từ một API
fetch("https://api.thoitiet.com/hanoi")
  .then(response => response.json())
  .then(data => {
    console.log(data.nhietdo); // vd: 28 độ
  });

JSON — ngôn ngữ chung của dữ liệu

JSON · 제이슨

Định dạng dữ liệu mà gần như mọi API dùng để trao đổi. Nó trông giống hệt object trong JavaScript — cặp "tên: giá trị". Dễ đọc cho cả người lẫn máy.

phan-hoi.json
{
  "thanhpho": "Hà Nội",
  "nhietdo": 28,
  "trangthai": "Nắng",
  "doam": 65
}
💡 Vì sao API quan trọng với bạn?

Web hiện đại được ghép từ nhiều mảnh: một app có thể dùng API bản đồ Google, API thanh toán ngân hàng, API gửi tin nhắn… Lập trình viên ngày nay không xây mọi thứ từ đầu — họ kết nối các API. Biết gọi API là kỹ năng cốt lõi.

Các "động từ" của API

HTTP methods

Động từNghĩaVí dụ
GETLấy dữ liệu vềXem danh sách bài viết
POSTGửi dữ liệu mới lênĐăng một bài viết mới
PUTCập nhật dữ liệuSửa bài viết đã có
DELETEXóa dữ liệuXóa một bài viết
🔗 Thấy quen không?

Bốn động từ này tương ứng với bốn lệnh SQL (SELECT/INSERT/UPDATE/DELETE)! Không phải trùng hợp — cả hai đều phản ánh bốn thao tác cơ bản với dữ liệu: đọc, tạo, sửa, xóa — dân trong nghề gọi tắt là CRUD (Create, Read, Update, Delete).

✓ Kiểm tra nhanh

1. API giống vai trò gì trong nhà hàng?
Người phục vụ — truyền yêu cầu vào bếp và mang kết quả ra, bạn không cần vào bếp.

2. JSON dùng để làm gì?
Định dạng dữ liệu chung các API dùng để trao đổi, gồm cặp "tên: giá trị".

3. CRUD là gì?
Bốn thao tác: Create (tạo), Read (đọc), Update (sửa), Delete (xóa).

⚿ Không có trên Google · ghi chép từ người đi trước

Hiểu lầm về API khiến fresher lúng túng trong họp

✕ "Gọi API" không phải gọi điện — là chương trình của bạn xin dữ liệu từ chương trình khác qua mạng.

✕ Khi dev nói 운영 서버 (server vận hành) họ nói tới production — server thật khách đang dùng, KHÔNG phải "server để vận hành thử". Dịch sai chỗ này là tai họa.

✕ Lỗi 401 = "chưa đăng nhập/không có quyền", 404 = "không tìm thấy", 500 = "server hỏng". Nhớ ba con số này, bạn theo được 80% cuộc họp.

✕ "API bị rate limit" = gọi quá nhiều lần bị chặn — không phải API hỏng.

# nox-backend
Backend · 15:40

API /login đẩy lên staging rồi nhé. Bên frontend test thử đi.

ZERO · 15:44

Em gọi thử thì trả về 401 anh ạ. Là do token chưa đúng phải không?

Backend · 15:46

Đúng rồi, em gửi kèm header Authorization vào. Đừng test trên 운영 서버 nhé, dùng staging thôi.

✦ Trợ thủ AI · dùng đúng cách

💬 "Giải thích sự khác nhau giữa các mã lỗi HTTP 200, 401, 404, 500 bằng ví dụ đời thường."

💬 "Đoạn gọi API này trả về lỗi 401. Liệt kê các nguyên nhân thường gặp và cách kiểm tra từng cái."

▤ Hồ sơ nghề · Bậc: Người nối hai thế giới

Hiểu API, bạn vào nhóm giá trị cao: kết nối frontend với dữ liệu thật · đọc tài liệu API & tự thử endpoint · họp kỹ thuật không bị lạc · làm cầu nối (Bridge SE) / phiên dịch IT có chiều sâu. Kỹ năng đặc biệt quý cho phiên dịch IT, sales IT, kỹ sư cầu nối.

"Đám mây" thực ra là gì?

Nghe "cloud — đám mây" rất bay bổng, nhưng sự thật trần trụi hơn: đám mây chỉ là máy tính của người khác — những trung tâm dữ liệu khổng lồ (hàng nghìn máy chủ trong tòa nhà có điều hòa, bảo vệ nghiêm ngặt), do các công ty lớn vận hành rồi cho thuê qua mạng.

☁️ Hình dung dễ nhất

Ngày xưa muốn có điện, bạn phải tự mua máy phát, tự bảo trì. Ngày nay chỉ cắm phích và trả tiền theo lượng dùng. Cloud chính là "nhà máy điện" cho sức mạnh máy tính — công ty không cần tự mua server, chỉ "cắm phích" vào AWS và trả tiền theo mức dùng.

Cloud — Điện toán đám mây · 클라우드

Dịch vụ cho thuê sức mạnh máy tính (máy chủ, lưu trữ, mạng) qua Internet, trả tiền theo mức dùng — thay vì tự mua và bảo trì. Khi bạn xem video, dùng app, mở web — gần như chắc chắn nó đang chạy trên cloud.

AWS — Amazon Web Services · 아마존 웹 서비스

Nền tảng cloud lớn nhất thế giới, của Amazon. Cung cấp hàng trăm "dịch vụ" nhỏ — nhưng người mới chỉ cần biết vài cái cốt lõi. Ba tên lớn ở công ty Hàn: AWS, Azure (Microsoft), GCP (Google) — trong đó AWS phổ biến nhất.

Chỉ cần hiểu nôm na — để gật đầu trong họp

Vài dịch vụ AWS nên biết tên

TênNói nôm na là gì
EC2Một máy chủ ảo bạn thuê để chạy code ("đẩy bản mới lên EC2")
S3Kho chứa file: ảnh, video, bản sao lưu ("ảnh lưu ở S3")
RDSDatabase chạy sẵn trên cloud, AWS lo bảo trì
LambdaChạy một đoạn code nhỏ mà không cần server riêng
CloudFrontMạng giao nội dung nhanh khắp thế giới (tăng tốc tải trang)

App To-do của ZERO lên cloud cần gì?

Phần của appĐặt lênVì sao
Code xử lý (thêm/xóa việc)EC2Cần máy chủ luôn bật chạy logic
Bảng ViecCanLamRDSDatabase được AWS lo bảo trì, sao lưu
Ảnh đại diện người dùngS3Kho chứa file, rẻ và bền
Giao diện tải nhanh mọi nướcCloudFrontViệt Nam hay Hàn đều mở nhanh như nhau
◎ Bước nhảy từ người học code → người làm sản phẩm

Khoảnh khắc ZERO đặt app To-do lên cloud, nó không còn là "bài tập chạy trên laptop" nữa — nó thành một sản phẩm thật, online 24/7, ai ở đâu cũng dùng được. Đó cũng là lý do mọi công ty Hàn bạn ứng tuyển đều hỏi về cloud.

Vì sao công ty thích cloud?

(1) Không phải mua máy đắt — thuê bao nhiêu dùng bấy nhiêu. (2) Co giãn tức thì — ngày sale đông khách tự thuê thêm, hết đông lại giảm. (3) Có sẵn bảo mật, sao lưu, mạng toàn cầu. Với người Việt ở Hàn: gần như mọi công ty đều dùng cloud, biết tên các dịch vụ này là điểm cộng thật sự trong phỏng vấn.

⚠ 3 điều về cloud khiến fresher hay "ngợp"

"Phải học hết hàng trăm dịch vụ AWS?" — Không. Kỹ sư thật chỉ dùng vài cái. Biết EC2, S3, RDS là đủ trò chuyện mức người mới.

"Cloud đắt và dễ cháy túi?" — Có thật, nhưng do cấu hình sai (quên tắt máy chủ test). Luôn biết mình đang bật cái gì.

"Cloud = an toàn tuyệt đối?" — Sai lầm chết người. Cloud lo hạ tầng, nhưng code & cấu hình của bạn vẫn có thể hở. Kẻ tấn công như 'A.' tìm đúng những khe hở đó.

✓ Kiểm tra nhanh — Cloud

1. Nói đơn giản nhất, "đám mây" là gì?
Là máy tính (máy chủ) của người khác, đặt trong trung tâm dữ liệu, cho thuê qua Internet.

2. EC2 và S3 khác nhau thế nào?
EC2 là máy chủ ảo để chạy code; S3 là kho chứa file. Một cái "chạy", một cái "chứa".

3. Cloud có nghĩa là an toàn tuyệt đối không?
Không. Cloud lo hạ tầng, nhưng code và cấu hình của bạn vẫn có thể có lỗ hổng. Trách nhiệm bảo mật chia đôi.

Còn nội dung — cuộn xuống