Virtual DOM = object tree จำลอง DOM จริงใน memory เมื่อ state เปลี่ยน React สร้าง tree ใหม่แล้ว diff (reconciliation) หาส่วนที่ต่าง แล้วแก้ DOM จริงเฉพาะจุดนั้น → ลดการจัดการ DOM ที่แพง
LEFT JOIN: ทุกแถวฝั่งซ้าย + ข้อมูลขวาที่ match (ไม่ match เป็น NULL) — ใช้บ่อยสุด เช่น รายการทั้งหมด + เอาเฉพาะที่ยังไม่ถูกผูก (WHERE right.id IS NULL)
RIGHT JOIN: ตรงข้าม LEFT (นิยมกลับด้านเป็น LEFT แทน)
กติกา tag ที่ดี: ใช้ version หรือ commit sha (app:1.4.2, app:git-abc1234) — เลี่ยง latest เพราะไม่มีวันรู้ว่ากำลังรัน version ไหนอยู่จริง และ rollback ยาก
Mac เป็น ARM แต่ server เป็น x86 → ใช้ docker buildx build --platform linux/amd64 หรือสร้าง multi-arch (linux/amd64,linux/arm64) ให้ image เดียวรันได้ทุกสถาปัตยกรรม
ลดขนาด image อีก: multi-stage, base slim/distroless, อย่า COPY ของที่ไม่ใช้, รวม RUN ที่ควรอยู่ด้วยกันและเคลียร์ cache ใน layer เดียวกัน เช่น RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
หลักปฏิบัติ: build จริงใน CI แล้ว push ขึ้น registry เท่านั้น — อย่า build ที่เครื่องตัวเองแล้วเอาไฟล์ไปรันที่ server
▶
Hardening container ทำอะไรได้บ้าง (ระดับ mid)?
Docker (101 → Mid)#security#non-root#scan
รันเป็น non-root: สร้าง user ใน Dockerfile แล้วสั่ง USER appuser — root ใน container ถ้าหลุดออกมาทำอันตราย host ได้ง่ายกว่ากันมาก