Node.js / NestJS

ประสิทธิภาพและการ Deploy บน Cloud

Event loop, blocking I/O, profiling, memory leaks, การ optimize query, การบีบอัด, clustering, worker threads, load balancing, การ caching เชิงกลยุทธ์ (Redis + HTTP), AWS (ECS, Lambda), serverless, กลยุทธ์การ deploy (blue/green, canary)

30 คำถามสัมภาษณ์·
Senior
1

แนวทางใดที่ช่วยเพิ่มประสิทธิภาพการ deploy container NestJS ใน AWS ECS?

คำตอบ

เพื่อเพิ่มประสิทธิภาพการ deploy container NestJS บน ECS: ใช้ multi-stage Docker builds เพื่อลดขนาด image สุดท้าย (build stage + production stage แบบ minimal), ใช้ Docker layer caching เพื่อเร่งการ build, ใช้ ECR (Elastic Container Registry) ใน region เดียวกันเพื่อลด latency, ตั้งค่า health checks ที่เหมาะสม, ใช้ Fargate เพื่อให้การจัดการง่ายขึ้น, กำหนด resource limits (CPU/memory) ที่เหมาะสม, ทำ graceful shutdown สำหรับ SIGTERM อิมเมจ Node.js alpine ที่ optimize แล้วอาจมีขนาด <100MB เทียบกับ >1GB ที่ไม่ได้ optimize

2

เฟสหลักของ event loop ใน Node.js มีอะไรบ้าง?

คำตอบ

event loop ของ Node.js มี 6 เฟสหลัก: timers (setTimeout/setInterval), pending callbacks (I/O callback ที่ถูกเลื่อน), idle/prepare (ภายใน), poll (ดึง event I/O ใหม่), check (setImmediate) และ close callbacks แต่ละเฟสมี queue แบบ FIFO ของ callback ที่จะรัน เฟส poll สำคัญที่สุดเพราะจัดการ event I/O

3

การทำงานแบบบล็อก (blocking I/O) ใน Node.js ส่งผลกระทบอย่างไร?

คำตอบ

การทำงานแบบบล็อกใน Node.js จะบล็อก event loop ทั้งหมด ทำให้การทำงานอื่นๆ ทั้งหมดไม่สามารถประมวลผลได้ สิ่งนี้ทำให้ประสิทธิภาพลดลงอย่างมากเพราะ Node.js เป็นแบบ single-thread การทำงานแบบ synchronous เช่น fs.readFileSync, crypto.pbkdf2Sync หรือ loop ที่หนักจะบล็อก thread หลัก ควรใช้เวอร์ชัน asynchronous เสมอ หรือมอบหมายให้ worker threads

4

จะระบุ memory leak ในแอปพลิเคชัน Node.js บน production ได้อย่างไร?

5

ควรใช้เครื่องมือใดในการ profiling ประสิทธิภาพ CPU ของแอปพลิเคชัน NestJS?

+27 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ

พื้นฐาน Node.js

Junior
20 คำถาม

Core API ของ Node.js

Junior
25 คำถาม

การเขียนโปรแกรมแบบอะซิงโครนัส

Junior
25 คำถาม

พื้นฐาน Express.js

Junior
20 คำถาม

พื้นฐาน NestJS

Junior
23 คำถาม

การออกแบบ REST API

Junior
20 คำถาม

การตรวจสอบความถูกต้องและ DTO

Junior
20 คำถาม

เอกสาร API และ Contract

Junior
20 คำถาม

การจัดการข้อผิดพลาด

Junior
20 คำถาม

การทดสอบหน่วย (Unit Testing)

Junior
20 คำถาม

การจัดตารางงาน

Junior
15 คำถาม

Module และ DI ของ NestJS

Mid-Level
20 คำถาม

การกำหนดค่าและการจัดการสภาพแวดล้อม

Mid-Level
20 คำถาม

การยืนยันตัวตนด้วย JWT

Mid-Level
25 คำถาม

การให้สิทธิ์และ RBAC

Mid-Level
20 คำถาม

ฐานข้อมูลด้วย TypeORM

Mid-Level
30 คำถาม

Prisma ORM

Mid-Level
25 คำถาม

Middleware และ Interceptor

Mid-Level
20 คำถาม

การอัปโหลดไฟล์

Mid-Level
15 คำถาม

WebSockets

Mid-Level
20 คำถาม

GraphQL กับ NestJS

Mid-Level
25 คำถาม

การทดสอบแบบ End-to-End

Mid-Level
20 คำถาม

การแคชด้วย Redis

Mid-Level
20 คำถาม

คิวด้วย Bull

Mid-Level
20 คำถาม

DevOps, Logging และ CI/CD

Mid-Level
25 คำถาม

Docker และ Containerization

Mid-Level
25 คำถาม

ไมโครเซอร์วิส

Senior
30 คำถาม

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

Senior
25 คำถาม

เชี่ยวชาญ Node.js / NestJS สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี