강의

멘토링

커뮤니티

Programming

/

Back-end

Hoàn thành một chu trình dịch vụ backend với Spring Boot và AWS

Hoàn thành một chu trình của dịch vụ backend với Spring Boot, MySQL, Docker, AWS EC2, RDS. Đạt được cảm giác thành tựu thông qua việc triển khai ứng dụng, và tìm hiểu các vấn đề mà các lập trình viên server gặp phải trong thực tế khi phát triển API cùng với cách giải quyết.

(4.9) 14 đánh giá

122 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

  • apiece
AWS
AWS
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot
JPA
JPA
AWS
AWS
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot
JPA
JPA

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

4.9

5.0

황쭌쭌

23% đã tham gia

Được rồi, hãy cùng xem liên tục từ đầu đến cuối thôi nào

5.0

jyw0714

100% đã tham gia

Buổi học rất bổ ích, chỉ gồm những nội dung trọng tâm!

5.0

innovation0304

24% đã tham gia

Vừa hiểu về công cụ lại vừa thấy kết quả trực tiếp, thật tốt!

Bạn sẽ nhận được điều này sau khi học.

  • Spring Boot

  • Spring Data JPA

  • MySQL

  • Docker

  • Docker compose

  • AWS EC2

  • AWS RDS

  • Phân trang

  • Quan hệ liên kết JPA

  • Chỉ mục cơ sở dữ liệu

  • Giao dịch

  • Git, Github

  • CI/CD (Github Actions)

🧑‍💻 Bạn đã từng có những băn khoăn như thế này chưa?

  • "Tôi đã thử phát triển theo YouTube hoặc blog, nhưng không chắc là cái này có thực sự áp dụng được trong công việc thực tế không?…"

  • "Tôi đã tạo API rồi, nhưng luôn bị vướng ở bước triển khai nên chưa bao giờ hoàn thành đến cùng."

  • "Tôi có thể tạo ứng dụng trên local, nhưng cloud hay Docker trông quá phức tạp nên cứ lảng tránh..."

  • "Tôi muốn làm tốt dịch vụ backend mà mình tạo ra, nhưng không biết phải bắt đầu từ đâu…"

👉 Khóa học này là khóa học hoàn chỉnh một chu trình để trở thành lập trình viên backend có kinh nghiệm từ phát triển Spring Boot đến triển khai AWS.

Một chu trình backend thực tế, tôi cũng có thể hoàn thành một lần.
Dự án Backend được tạo bằng Spring Boot · MySQL · AWS

  • Khóa học này không chỉ là ví dụ CRUD đơn giản,
    mà là trải nghiệm từ cấu trúc ứng dụng → phát triển → triển khai → suy nghĩ vấn đề → cải tiến tính năng
    "Khóa học hoàn thiện dự án backend thực tế".

  • Nội dung học tập chính như sau:

    • Phát triển Backend dựa trên Spring Boot 3.4.4 & Java 21

    • Thiết kế mô hình domain sử dụng JPA

    • Tích hợp cơ sở dữ liệu với MySQL & Docker

    • AWS EC2, RDS, triển khai

    • Phân trang, JPA, Transaction

🎯 Bối cảnh lên ý tưởng khóa học

Tôi cũng từng là một backend junior không có người hướng dẫn đúng đắn.
"Liệu dự án tôi đang làm có được xây dựng đúng cách không?", "Thực tế thì deploy như thế nào?" - những câu hỏi này luôn đầy trong đầu tôi.

Vì vậy khóa học này
👉 Tập trung vào "luồng tổng thể" quan trọng hơn chính việc triển khai tính năng
👉 Cấu trúc tương tự với dịch vụ thực sự hoạt động
👉 Chu trình phát triển backend có xem xét đến triển khai và bảo trì
được thiết kế xung quanh những điều này.


Đặc điểm của khóa học này

📌 Nắm vững công nghệ thực tế dựa trên Spring Boot, MySQL, AWS trong một khóa học!
Hoàn thiện dự án có cấu trúc 'giống dịch vụ thực tế' với stack công nghệ thường được sử dụng trong thực tế.

📌 90% thực hành, 10% lý thuyết. Học Backend với code thực sự hoạt động
Tất cả code trong khóa học đều được kiểm tra trực tiếp và xác minh hoạt động theo thời gian thực. Trải nghiệm thực sự đến cả việc triển khai.

📌 Vượt qua CRUD đơn giản, đến tính nhất quán dữ liệu và cải thiện hiệu suất
Thông qua transaction, bạn có thể duy trì tính nhất quán của dữ liệu, thực hiện các cải tiến hiệu suất đa dạng và nâng cao năng lực phát triển server thực tế.

📌 Đây là khóa học dành cho người mới bắt đầu
Chúng tôi sẽ xây dựng 'cây cầu' giúp những người đã có nền tảng cơ bản về Java, Spring Boot có thể chuyển sang làm việc thực tế.

💡 Điểm khác biệt của khóa học là gì?

  • Đây không phải là khóa học kiểu hướng dẫn chỉ làm theo các chức năng.

  • Ở phần đầu, bạn sẽ trực tiếp phát triển một ứng dụng nhỏ và triển khai thực tế để có được cảm giác thành tựu,

  • Ở phần sau, chúng tôi tập trung vào việc chỉ ra những vấn đề mà các nhà phát triển backend cần phải suy nghĩ và cùng nhau giải quyết chúng.

  • Khóa học chứa đựng nguyên vẹn bí quyết của một lập trình viên backend dựa trên những thử nghiệm và kinh nghiệm thực tế trong công việc.

Khóa học này dành cho những ai

"Tôi muốn thử phát triển server, nhưng không biết phải bắt đầu từ đâu…"

Các lập trình viên tương lai / sinh viên đang bối rối không biết phải bắt đầu từ đâu để phát triển server vì chưa quen thuộc với việc phát triển dịch vụ backend

"Tôi không chắc mình đang xây dựng ứng dụng tốt hay không, và không biết mình có đang phát triển đúng cách hay không.."

Lập trình viên tương lai / Người chuẩn bị xin việc đang tự học Java, Spring Boot

"Tôi muốn tạo một dịch vụ backend có thể triển khai thực tế từ đầu đến cuối, nhưng tôi không quen với AWS."
Lập trình viên junior không tự tin về cài đặt AWS hoặc triển khai ngoài phát triển local.

Sau khi hoàn thành khóa học

  • Luồng phát triển server vốn cảm thấy mơ hồ sẽ trở nên rõ ràng, và bạn có thể trực tiếp trải nghiệm toàn bộ chu trình phát triển dịch vụ backend từ lập kế hoạch, thiết kế, phát triển đến triển khai.
    → Thông qua khóa học này, bạn sẽ hoàn thành một dự án từ đầu đến cuối và tích lũy được kinh nghiệm thực chiến có thể tự tin trình bày trong portfolio.

  • Bạn đã học cơ bản về Java nhưng không biết trong thực tế công việc thì bắt đầu phát triển và cải thiện như thế nào, cảm thấy bế tắc khi chuẩn bị xin việc.
    → Khóa học này cung cấp từ phát triển ứng dụng Spring Boot như dịch vụ thực tế đến các mẹo cải thiện hữu ích khi phát triển server, rất phù hợp để rèn luyện kỹ năng thực tế.

  • Tôi chỉ phát triển trên máy tính cục bộ và muốn thử sử dụng cloud, nhưng ngay cả khi làm theo hướng dẫn tìm kiếm được thì vẫn không hoạt động đúng nên cứ thất vọng mãi.
    → Khóa học này đề cập chi tiết đến AWS, máy chủ ứng dụng trên cloud và kết nối cơ sở dữ liệu, giúp xóa tan nỗi lo sợ về triển khai.


Bạn sẽ học những nội dung này.

API: Phương thức giao tiếp giữa client và server, yêu cầu và phản hồi dữ liệu

API là quy tắc để các chương trình giao tiếp với nhau. Giống như thực đơn nhà hàng, nó là bản mô tả quy định client có thể yêu cầu gì và server sẽ phản hồi như thế nào. Thông qua ví dụ về thực đơn, bạn sẽ dễ dàng hiểu khái niệm API và học cách nó được ứng dụng trong các dịch vụ web thực tế.

Thực hành phát triển API tự tay tạo bằng IntelliJ

Không chỉ dừng lại ở việc nghe khái niệm về API. Bạn sẽ tự tay tạo API để client và server trao đổi dữ liệu bằng IntelliJ, qua đó làm quen với cấu trúc cốt lõi của dịch vụ web cần thiết trong thực tế.

Docker: Hiểu cấu trúc cốt lõi của phát triển dựa trên container

Docker hoạt động như thế nào? Tiến trình daemon dockerd quản lý các image và container, còn chúng ta ra lệnh thông qua client docker. Bạn sẽ hiểu các thành phần cốt lõi của Docker như image, container, registry và học một cách có cấu trúc về vai trò của từng thành phần.

AWS EC2: Truy cập trực tiếp vào máy chủ đám mây

Máy chủ đám mây không còn là thứ xa lạ nữa. Tạo instance AWS EC2, kết nối trực tiếp qua terminal để làm quen với môi trường Linux và học những kiến thức cơ bản về vận hành máy chủ cần thiết trong thực tế. Trải nghiệm trực tiếp từ cài đặt Docker, mở port, đến cấu hình security group.

Kiến trúc phân lớp, tách biệt DTO và Entity: Thiết kế ổn định thông qua phân tách trách nhiệm

Ứng dụng backend được cấu trúc như thế nào? Kiến trúc phân lớp (Layered Architecture) phân tách ứng dụng theo vai trò để nâng cao khả năng bảo trì và mở rộng. Mỗi lớp Controller, Service, Repository đều có trách nhiệm rõ ràng, và DTO là đối tượng truyền dữ liệu giữa các tầng, cần được tách biệt với Entity. Chúng ta sẽ học một cách có cấu trúc về tại sao sự tách biệt này quan trọng và cách thiết kế như thế nào.

Index trong Cơ sở dữ liệu: Hiểu về cấu trúc nội bộ để tìm kiếm nhanh

Cơ sở dữ liệu tìm kiếm dữ liệu nhanh như thế nào? Index được sử dụng để tăng tốc độ tìm kiếm trên các cột cụ thể của bảng, hoạt động giống như mục lục của một cuốn sách. Chúng ta sẽ tìm hiểu cấu trúc bên trong như B-Tree và học một cách có hệ thống về những tình huống nào nên sử dụng index để nâng cao hiệu suất.

Phân trang vs Cuộn vô hạn: Vượt qua giới hạn của OFFSET để cung cấp dữ liệu hiệu quả

Khi hiển thị nhiều dữ liệu theo từng phần, truy vấn dựa trên OFFSET thường được sử dụng nhưng hiệu suất giảm mạnh khi càng về các trang sau. Điều này là do DB phải quét lượng dữ liệu tương ứng với OFFSET trước khi trả về kết quả mong muốn. Trong backend, để giải quyết vấn đề này, người ta cải thiện bằng các phương pháp như phân trang dựa trên con trỏ (cursor) hoặc truy vấn phạm vi theo ID. Chúng ta sẽ tìm hiểu một cách có cấu trúc không chỉ về sự khác biệt UX giữa phân trang và cuộn vô hạn, mà còn về sự thay đổi chiến lược truy vấn để tối ưu hóa hiệu suất.

Quan hệ liên kết giữa bài viết, bình luận và xử lý giao dịch

Trong JPA, khi thiết lập mối quan hệ giữa các entity (Post-Comment, v.v.), bạn có thể tự động phản ánh các thay đổi vào cơ sở dữ liệu tại thời điểm commit transaction thông qua cơ chế Dirty Checking (phát hiện thay đổi). Ngoài ra, chúng ta sẽ học một cách có cấu trúc về cách tận dụng Dirty Checking bên trong transaction, phạm vi nào cần được gộp thành một đơn vị công việc, cùng với chiến lược thiết lập mối quan hệ và xử lý dữ liệu ổn định.

Cách sử dụng Git: Vượt xa các lệnh đơn giản đến chiến lược cho cộng tác và tính ổn định

Git là công cụ quản lý phiên bản được các lập trình viên sử dụng nhiều nhất, nhưng nó không chỉ đơn thuần là lưu trữ code mà còn đóng vai trò cốt lõi trong việc cộng tác và quản lý chất lượng. Khi làm việc một mình, các lệnh cơ bản như commit, push, pull có vẻ là đủ, nhưng trong phát triển nhóm thì cần có cách tiếp cận có cấu trúc hơn như chiến lược nhánh, quản lý lịch sử commit, v.v.

Trong thực tế làm việc, Git được sử dụng để tổ chức quy trình code review, đảm bảo tính ổn định khi triển khai, và tạo nền tảng cho phép các thành viên trong nhóm làm việc song song. Khi sử dụng Git đúng cách, bạn có thể giảm thiểu sự nhầm lẫn có thể xảy ra trong quá trình cộng tác và nâng cao năng suất phát triển.

Chúng ta sẽ cùng tìm hiểu không chỉ cách sử dụng cơ bản mà còn cả các chiến lược nhánh và workflow thường được sử dụng trong thực tế.


Tích hợp GitHub Actions và AWS SSM: Phương thức xác thực an toàn và tiện lợi thông qua OIDC

Một trong những vấn đề cần cân nhắc khi truy cập tài nguyên đám mây trong CI/CD pipeline là phương thức xác thực. Trước đây, cách thông dụng là đăng ký khóa người dùng AWS IAM vào GitHub Secrets để sử dụng, nhưng phương pháp này đi kèm với gánh nặng là phải thay đổi khóa định kỳ và rủi ro bị lộ.

Bạn có thể truy cập an toàn vào tài nguyên AWS mà không cần khóa người dùng IAM bằng cách sử dụng OIDC (OpenID Connect) được hỗ trợ bởi GitHub Actions. Theo phương thức này, AWS xác thực token do GitHub cấp và sau đó cấp quyền tạm thời, giúp đảm bảo cả tính bảo mật và tiện lợi mà không cần quản lý khóa riêng biệt.

Tìm hiểu cấu trúc liên kết GitHub Actions và AWS OIDC, cùng với phương pháp cấu hình cụ thể về cách áp dụng trong thực tế.

Lưu ý trước khi học

🛠 Công cụ và môi trường sử dụng

  • IntelliJ

  • Java 21

  • Spring Boot 3.4.4

  • MySQL (Docker)

  • AWS (EC2, RDS, IAM, SSM)


  • AWS sử dụng Free Tier (miễn phí). (Không phát sinh thêm chi phí)

  • Git, Github

  • Github Actions

Tài liệu học tập

  • Chúng tôi sẽ cung cấp tài liệu dưới dạng PDF để bạn có thể ôn tập lại bài giảng.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Người chuẩn bị xin việc

  • Người đang chuẩn bị trở thành lập trình viên backend

  • Những người muốn tự mình thực hiện phát triển server backend từ đầu đến triển khai

  • Người muốn biết những điểm cần lưu ý và cách giải quyết khi phát triển dịch vụ backend

Cần biết trước khi bắt đầu?

  • Java trở lên

  • Không biết Spring, Spring JPA cũng không sao. Chúng ta sẽ cùng tìm hiểu trong khóa học.

Xin chào
Đây là

490

Học viên

20

Đánh giá

25

Trả lời

5.0

Xếp hạng

3

Các khóa học

Tôi đã từng làm việc tại Kakao và SK với tư cách là nhà phát triển,
từng thiết kế và vận hành nhiều hệ thống backend khác nhau trong môi trường dịch vụ thực tế.

Tôi đang tạo ra các nội dung chia sẻ kiến thức với hy vọng rằng
những sai lầm và trăn trở mà tôi đã trải qua có thể giúp các bạn học viên
tiết kiệm được dù chỉ một chút thời gian và công sức trong những lựa chọn của mình.

Nếu bạn có bất kỳ ý kiến đóng góp hay điểm nào cần cải thiện về nội dung,
vui lòng liên hệ qua email bên dưới bất cứ lúc nào.
Tôi rất mong nhận được những phản hồi chân thành từ các bạn. Xin cảm ơn.
apiece.dev.ai@gmail.com

Chương trình giảng dạy

Tất cả

59 bài giảng ∙ (8giờ 10phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

14 đánh giá

4.9

14 đánh giá

  • s1121238291님의 프로필 이미지
    s1121238291

    Đánh giá 74

    Đánh giá trung bình 4.9

    5

    100% đã tham gia

    • syhan75162629님의 프로필 이미지
      syhan75162629

      Đánh giá 16

      Đánh giá trung bình 5.0

      5

      31% đã tham gia

      • boogiewooki님의 프로필 이미지
        boogiewooki

        Đánh giá 3

        Đánh giá trung bình 5.0

        Đã chỉnh sửa

        5

        100% đã tham gia

        • ahdqh010258님의 프로필 이미지
          ahdqh010258

          Đánh giá 2

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          • bobopro님의 프로필 이미지
            bobopro

            Đánh giá 2

            Đánh giá trung bình 5.0

            5

            31% đã tham gia

            1.146.211 ₫

            Khóa học khác của apiece

            Hãy khám phá các khóa học khác của giảng viên!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!