Mở đăng ký khóa học Fullstack qua Zoom. Tham khảo tại đây

Thư Viện Câu Hỏi Phỏng Vấn

Tổng hợp các câu hỏi tuyển dụng thực tế theo nhiều cấp độ từ Entry đến Expert để bạn tự tin chinh phục nhà tuyển dụng.

Interactive Practice Tổng cộng 4,442 câu hỏi độc bản

Luyện Tập Phỏng Vấn Thử

Mô phỏng áp lực phỏng vấn thật với đồng hồ đếm ngược từng câu, tự đánh giá phản xạ và đo lường độ sẵn sàng của bạn.

Vui lòng đăng nhập để tham gia luyện tập và lưu tiến độ phỏng vấn.
391

Trong kiến trúc hệ thống Enterprise, tại sao chúng ta cần sử dụng Salt khi thực hiện Hashing mật khẩu và cơ chế này giúp ngăn chặn tấn công Rainbow Table như thế nào?

Junior

Bản chất của Salt trong Hashing

Salt là một chuỗi dữ liệu ngẫu nhiên được thêm vào mật khẩu trước khi thực hiện quá trình Hashing.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
392

Sự khác biệt giữa Digital Signature và Encryption là gì? Khi nào cần sử dụng Digital Signature trong kiến trúc Microservices?

Junior

Phân biệt Digital Signature và Encryption

  • Encryption (Mã hóa): Mục tiêu là bảo mật dữ liệu (Confidentiality). Chỉ người có khóa giải mã mới đọc được nội dung.
  • Digital Signature (Chữ ký số): Mục tiêu là xác thực nguồn gốc (Authentication) và toàn vẹn dữ liệu (Integrity). Nó đảm bảo rằng dữ liệu không bị thay đổi và được gửi bởi đúng người sở hữu khóa bí mật.

Ứng dụng trong Microservices

Trong kiến trúc Microservices, Digital Signature thường được sử dụng để xác thực các yêu cầu (Request) giữa các Service thông qua JWT (JSON Web Token).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
393

Khi thiết kế hệ thống lưu trữ dữ liệu nhạy cảm, tại sao việc quản lý Key Management lại quan trọng hơn cả thuật toán mã hóa?

Junior

Tầm quan trọng của Key Management

Trong Cryptography, thuật toán mã hóa (như AES-256) thường được coi là tiêu chuẩn công nghiệp và rất khó để phá vỡ. Điểm yếu lớn nhất của hệ thống thường nằm ở cách quản lý khóa (Key Management).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
394

Trong bối cảnh truyền tải dữ liệu giữa Client và Server, tại sao HTTPS lại quan trọng và cơ chế nào đảm bảo tính bảo mật của nó?

Junior

HTTPS và bảo mật truyền tải

HTTPS là sự kết hợp giữa giao thức HTTP và lớp bảo mật SSL/TLS. Nó giải quyết ba vấn đề chính:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
395

Thế nào là tấn công Man-in-the-Middle (MITM) và làm thế nào để phòng chống trong kiến trúc hệ thống API?

Junior

Tấn công Man-in-the-Middle (MITM)

MITM là hình thức tấn công mà kẻ tấn công đứng giữa Client và Server, chặn và sửa đổi thông tin truyền tải mà cả hai bên đều không hay biết.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
396

Trong thiết kế phần mềm hướng dịch vụ, sự khác biệt cốt lõi giữa kiến trúc Monolithic và Microservices là gì và khi nào một kỹ sư cấp độ Junior nên đề xuất sử dụng loại kiến trúc nào cho dự án mới?

Junior

1. Phân biệt Monolithic và Microservices

  • Monolithic Architecture: Tất cả các thành phần của ứng dụng (giao diện người dùng, business logic, tầng truy cập dữ liệu) được đóng gói và triển khai thành một khối duy nhất. Ưu điểm là dễ phát triển ban đầu, dễ deploy và debug ở quy mô nhỏ. Nhược điểm là khi hệ thống lớn lên, mã nguồn trở nên cồng kềnh (Monolith hell), khó scale riêng lẻ từng tính năng và một lỗi nhỏ có thể làm sập toàn bộ hệ thống.
  • Microservices Architecture: Hệ thống được chia thành các dịch vụ độc lập nhỏ hơn, giao tiếp với nhau qua mạng (thường là REST API, gRPC hoặc Message Broker). Ưu điểm là tính mở rộng cao (scalability), dễ bảo trì từng phần, độc lập công nghệ giữa các service. Nhược điểm là độ phức tạp cao về vận hành, khó khăn trong việc quản lý transaction phân tán (Distributed Transactions) và độ trễ mạng.

2. Định hướng lựa chọn cho Junior

  • Đề xuất Monolithic: Khi bắt đầu xây dựng một sản phẩm mới (MVP - Minimum Viable Product), team có quy mô nhỏ (dưới 10 người), chưa rõ về domain business hoặc lượng truy cập dự kiến ban đầu thấp.
  • Đề xuất Microservices: Khi hệ thống Monolithic hiện tại đã quá tải, đội ngũ phát triển chia thành nhiều team độc lập làm việc song song, hoặc nghiệp vụ yêu cầu scale cực lớn ở một vài tính năng cụ thể.

3. Kinh nghiệm thực chiến

Không nên áp dụng Microservices ngay từ đầu chỉ vì xu hướng (hype-driven development). Hãy bắt đầu với Modular Monolith để tách biệt rõ ràng các ranh giới module trước khi chuyển đổi sang Microservices khi thực sự cần thiết.

397

API Gateway đóng vai trò như thế nào trong một hệ thống phân tán và tại sao chúng ta không nên gọi trực tiếp các Microservices từ Client?

Junior

1. Vai trò của API Gateway

API Gateway là điểm vào duy nhất (Single Entry Point) cho tất cả các client (Web, Mobile, Third-party) khi muốn tương tác với hệ thống backend. Nó nằm giữa client và các Microservices phía sau.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
398

Mẫu thiết kế Layered Architecture (Kiến trúc phân tầng) bao gồm những tầng nào cơ bản và quy tắc dòng chảy phụ thuộc (Dependency Rule) giữa các tầng là gì?

Junior

1. Các tầng cơ bản trong Layered Architecture

  • Presentation Layer (Tầng giao diện): Chịu trách nhiệm hiển thị dữ liệu cho người dùng và nhận yêu cầu từ client (Controllers, UI components, API Endpoints).
  • Business Logic Layer / Service Layer (Tầng nghiệp vụ): Chứa các quy tắc nghiệp vụ cốt lõi của ứng dụng (Services, Use Cases).
  • Data Access Layer / Persistence Layer (Tầng dữ liệu): Chịu trách nhiệm giao tiếp với cơ sở dữ liệu hoặc các external API (Repositories, ORM, Database queries).

2. Quy tắc dòng chảy phụ thuộc (Dependency Rule)

  • Tầng ở phía trên có quyền gọi tầng ở phía dưới trực tiếp.
  • TUYỆT ĐỐI KHÔNG để tầng ở phía dưới gọi ngược lại tầng phía trên (trừ khi sử dụng các kỹ thuật đảo ngược phụ thuộc như Dependency Injection hoặc Observer Pattern).
  • Quy tắc truyền thống: Presentation phụ thuộc vào Business, Business phụ thuộc vào Data Access. Data Access hoàn toàn độc lập và không biết gì về Presentation.

3. Ví dụ minh họa cấu trúc thư mục chuẩn

com.company.project/
│
├── presentation/
│   └── UserController.java  (Gọi Service)
│
├── business/
│   └── UserService.java     (Gọi Repository)
│
└── data/
    └── UserRepository.java  (Tương tác Database)

4. Kinh nghiệm thực chiến

Hạn chế hiện tượng 'Leaky Abstraction' (Rò rỉ trừu tượng), ví dụ như việc truyền trực tiếp các Entity của tầng Database lên tận tầng Presentation. Nên sử dụng DTO (Data Transfer Object) để chuyển đổi dữ liệu giữa các tầng nhằm giảm sự phụ thuộc.

399

Cơ chế Caching (Bộ nhớ đệm) đóng vai trò gì trong việc tối ưu hóa hiệu năng hệ thống? Hãy phân biệt caching tại tầng ứng dụng (In-memory Cache) và caching phân tán (Distributed Cache).

Junior

1. Vai trò của Caching

Caching giúp lưu trữ tạm thời các dữ liệu thường xuyên được truy vấn hoặc tốn nhiều thời gian tính toán vào bộ nhớ truy cập nhanh (như RAM). Điều này giúp giảm tải trực tiếp cho cơ sở dữ liệu chính, giảm độ trễ (Latency) và tăng khả năng chịu tải (Throughput) cho hệ thống.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
400

Load Balancer (Bộ cân bằng tải) hoạt động như thế nào và các thuật toán phân phối lưu lượng phổ biến nào thường được áp dụng trong kiến trúc hệ thống?

Junior

1. Khái niệm và vai trò của Load Balancer

Load Balancer là một thành phần phần cứng hoặc phần mềm đứng trước một nhóm các máy chủ backend (Server Pool). Nhiệm vụ của nó là tiếp nhận các yêu cầu từ client và phân phối chúng đều tới các máy chủ backend dựa trên các thuật toán định sẵn. Điều này giúp ngăn chặn tình trạng quá tải ở một máy chủ đơn lẻ và đảm bảo tính sẵn sàng cao (High Availability).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
401

Trong hệ thống web phân tán, khi nào chúng ta nên sử dụng chiến lược Cache-Aside (Lazy Loading) và khi nào nên sử dụng Write-Through Caching?

Junior

Bản chất cơ chế

  • Cache-Aside (Lazy Loading): Ứng dụng sẽ tương tác trực tiếp với Cache trước. Nếu dữ liệu không tồn tại trên Cache (Cache Miss), ứng dụng sẽ truy vấn vào Database, lấy dữ liệu về, sau đó ghi ngược lại vào Cache để phục vụ cho các lần gọi tiếp theo.
  • Write-Through Caching: Khi có dữ liệu mới cần cập nhật, ứng dụng sẽ ghi dữ liệu đó đồng thời vào cả Cache và Database trong cùng một giao dịch (transaction) hoặc thông qua một tầng trung gian.

So sánh và Tình huống áp dụng thực tế

  • Cache-Aside:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
402

Khái niệm TTL (Time to Live) và Sliding Expiration trong Caching khác nhau như thế nào? Lựa chọn sai hai cơ chế này dẫn đến hậu quả gì?

Junior

Định nghĩa

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
403

Khi sử dụng Redis làm tầng caching, tại sao chúng ta cần quan tâm đến cấu hình Maxmemory và các thuật toán Eviction Policy? Hãy nêu cách xử lý khi Redis đầy bộ nhớ.

Junior

Bản chất vấn đề

Redis lưu trữ dữ liệu hoàn toàn trên RAM (In-memory database). Nếu không giới hạn dung lượng bộ nhớ tối đa thông qua thuộc tính maxmemory, Redis sẽ tiêu thụ toàn bộ RAM vật lý của máy chủ khi lượng dữ liệu phình to, dẫn đến việc hệ điều hành kích hoạt cơ chế OOM Killer (Out Of Memory) và tiến trình Redis bị crash đột ngột.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
404

Làm thế nào để giải quyết bài toán đồng bộ dữ liệu giữa Database và Cache khi hệ thống có nhiều luồng (multithreading) cùng thực hiện cập nhật dữ liệu?

Junior

Vấn đề Race Condition trong Caching

Khi có hai luồng (Thread A và Thread B) cùng thực hiện cập nhật dữ liệu cho một bản ghi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
405

Application Cache (In-Memory Cache) khác gì so với Distributed Cache (Redis, Memcached)? Khi nào nên dùng loại nào?

Junior

Phân loại kiến trúc Caching

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học