Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Back-end

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

Chúng ta sẽ hoàn tất một vòng đời của dịch vụ backend với Spring Boot, MySQL, Docker, AWS EC2, RDS. Thông qua triển khai ứng dụng, bạn sẽ có được cảm giác thành tựu, đồng thời chúng ta sẽ đề cập đến các vấn đề và giải pháp mà nhà phát triển máy chủ gặp phải trong thực tế khi phát triển API.

(5.0) 7 đánh giá

65 học viên

  • apiece
실습 중심
백엔드이해하기
처음하는배포
백엔드
서버
AWS
MySQL
Docker
Spring Boot
JPA

Dịch cái này sang tiếng Việt

  • Spring Boot

  • Spring Data JPA

  • MySQL

  • Docker

  • Docker compose

  • AWS EC2

  • AWS RDS

  • phân trang

  • Mối quan hệ 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 lo lắng này chưa?

  • “Tôi đã thử phát triển bằng cách xem YouTube và các blog, nhưng tôi không chắc liệu cách này có thực sự hiệu quả trong thực tế hay không …”

  • “Tôi đã tạo ra API, nhưng việc phân phối luôn bị chặn, vì vậy tôi không thể hoàn thành nó.

  • “Tôi có thể xây dựng các ứng dụng cục bộ, nhưng tôi tránh sử dụng đám mây hoặc Docker vì chúng có vẻ quá phức tạp …”

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

👉 Khóa học này là khóa học một chu trình để trở thành nhà phát triển backend có kinh nghiệm phát triển Spring Boot và triển khai AWS.

Tôi cũng có thể hoàn thành một chu kỳ công việc thực tế ở giai đoạn cuối.
Dự án backend được tạo bằng Spring Boot, MySQL và AWS

  • Bài giảng này không phải là một ví dụ CRUD đơn giản,
    Trải nghiệm mọi thứ từ cấu hình ứng dụng → phát triển → triển khai → giải quyết vấn đề → cải tiến chức năng.
    “Đây là quá trình hoàn thành một dự án thực tế ở giai đoạn cuối.”

  • Những bài học chính bao gồm:

    • Phát triển phần cuối dựa trên Spring Boot 3.4.4 & Java 21

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

    • Kết nối với cơ sở dữ liệu bằng MySQL & Docker

    • AWS EC2, RDS, Triển khai

    • Phân trang, JPA, Giao dịch

🎯 Bối cảnh lập kế hoạch bài giảng

Tôi cũng từng là một cầu thủ trẻ ở vị trí hậu vệ và không có một cầu thủ ném bóng thực thụ .
Những câu hỏi như “ Dự án tôi tạo ra có hoạt động bình thường không? ” và “ Làm sao để triển khai nó? ” cứ quanh quẩn trong đầu tôi.

Vì vậy bài giảng này
👉 “Dòng chảy tổng thể” quan trọng hơn việc triển khai chức năng đó
👉 Một cấu trúc tương tự như một dịch vụ thực sự trả về
👉 Chu kỳ phát triển backend xem xét phân phối và bảo trì
Được thiết kế xung quanh .


Các tính năng của khóa học này

📌 Có được các kỹ năng thực tế dựa trên Spring Boot, MySQL và AWS cùng một lúc!
Chúng tôi hoàn thành các dự án theo cấu trúc "giống như dịch vụ" bằng cách sử dụng các công nghệ thường được sử dụng trong lĩnh vực này.

📌 90% thực hành, 10% lý thuyết. Học backend với code thực tế.
Trong suốt buổi thuyết trình, tất cả mã đều được kiểm tra trực tiếp và xác minh là hoạt động theo thời gian thực. Bạn sẽ trải nghiệm triển khai thực tế.

📌 Không chỉ đơn giản là CRUD, mà còn hướng đến tính nhất quán của dữ liệu và hiệu suất được cải thiện
Bạn có thể duy trì tính nhất quán của dữ liệu thông qua các giao dịch, thực hiện nhiều cải tiến hiệu suất khác nhau và có được các kỹ năng thực tế trong phát triển máy chủ.

📌 Khóa học này dành cho người mới bắt đầu.
Chúng tôi cung cấp 'cầu nối' cho những người có kiến ​​thức cơ bản về Java và Spring Boot để chuyển sang công việc thực tế.

💡 Điều gì làm cho bài giảng khác biệt?

  • Đây không phải là bài giảng theo kiểu hướng dẫn chỉ đơn thuần tuân theo các chức năng.

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

  • Trong nửa sau, chúng tôi sẽ tập trung vào việc chỉ ra những lĩnh vực mà các nhà phát triển phần mềm cần xem xét và cùng nhau giải quyết.

  • Nó chứa đựng bí quyết của một nhà phát triển phần mềm dựa trên quá trình thử nghiệm và kinh nghiệm trong lĩnh vực này.

Tôi giới thiệu điều này cho những người này

“Tôi muốn thử phát triển máy chủ, nhưng tôi không biết phải làm thế nào…”

Các nhà phát triển/sinh viên đầy tham vọng không quen thuộc với phát triển dịch vụ phụ trợ và không biết bắt đầu từ đâu để phát triển máy chủ

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

Nhà phát triển/người tìm việc đầy tham vọng đang tự học Java và Spring Boot

“Tôi muốn xây dựng một dịch vụ triển khai thực sự từ đầu đến cuối, nhưng tôi cũng không quen thuộc với AWS.”
Các nhà phát triển mới vào nghề không tự tin vào việc thiết lập hoặc triển khai AWS ngoài việc phát triển cục bộ.

Sau giờ học

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

  • Một người tìm việc đã học được những kiến ​​thức cơ bản về Java nhưng lại không biết cách bắt đầu và cải thiện quá trình phát triển trong lĩnh vực này .
    → Khóa học này hoàn hảo để phát triển các kỹ năng thực tế vì nó cung cấp các mẹo cải thiện giúp bạn phát triển các ứng dụng và máy chủ Spring Boot như thể chúng là các dịch vụ thực tế.

  • Tôi chỉ phát triển trên máy tính cục bộ của mình và muốn thử sử dụng đám mây, nhưng tôi luôn cảm thấy bực bội vì nó không hoạt động bình thường cho dù tôi đã tìm kiếm thế nào.
    → Khóa học này trình bày chi tiết về máy chủ ứng dụng và kết nối cơ sở dữ liệu trên đám mây AWS , giúp bạn không còn lo lắng khi triển khai.


Tìm hiểu về những điều này.

API: Cách thức máy khách và máy chủ giao tiếp, yêu cầu và phản hồi dữ liệu

API là một tập hợp các quy tắc để giao tiếp giữa các chương trình. Giống như một thực đơn trong nhà hàng, đây là một thông số kỹ thuật xác định những gì máy khách có thể yêu cầu và cách máy chủ sẽ phản hồi. Thông qua phép so sánh với một thực đơn, bạn có thể dễ dàng hiểu được khái niệm API và tìm hiểu cách sử dụng nó trong các dịch vụ web thực tế.

Thực hành phát triển API được tạo trực tiếp bằng IntelliJ

Không chỉ dừng lại ở việc nghe khái niệm về API là gì. Bạn có thể sử dụng IntelliJ để tạo API nơi máy khách và máy chủ trao đổi dữ liệu và tìm hiểu cấu trúc cốt lõi của các dịch vụ web cần thiết cho công việc 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? Một tiến trình daemon có tên là dockerd quản lý hình ảnh và container, và chúng tôi đưa ra lệnh thông qua máy khách docker . Hiểu các thành phần cốt lõi của Docker, chẳng hạn như hình ảnh, container và sổ đăng ký, và tìm hiểu về mặt cấu trúc 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 xa lạ nữa. Tạo một phiên bản AWS EC2, kết nối trực tiếp với thiết bị đầu cuối và tìm hiểu những điều cơ bản về hoạt động của máy chủ, những điều cần thiết cho công việc thực tế bằng cách xử lý môi trường Linux. Trải nghiệm cài đặt Docker, mở cổng và thiết lập nhóm bảo mật bằng chính đôi tay của bạn.

Kiến trúc phân lớp, DTO, Phân tách thực thể: Thiết kế đáng tin cậy thông qua việc 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 tách ứng dụng theo vai trò để cải thiện khả năng bảo trì và khả năng mở rộng. Mỗi lớp bộ điều khiển, dịch vụ và kho lưu trữ có trách nhiệm rõ ràng và DTO là đối tượng để truyền dữ liệu giữa các lớp và phải được tách khỏi Entity. Tìm hiểu về mặt cấu trúc lý do tại sao sự tách biệt này lại quan trọng và cách thiết kế nó.

Chỉ mục cơ sở dữ liệu: Hiểu cấu trúc bên trong để tìm kiếm nhanh

Cơ sở dữ liệu tìm dữ liệu nhanh như thế nào? Chỉ mục được sử dụng để tăng tốc tìm kiếm một cột cụ thể trong bảng và hoạt động giống như mục lục trong sách. Hiểu cấu trúc bên trong như B-Tree và tìm hiểu về mặt cấu trúc trong những tình huống nào thì nên sử dụng chỉ mục để cải thiện hiệu suất.

Phân trang so với Cuộn vô hạn: Phân phối dữ liệu hiệu quả vượt ra ngoài giới hạn của OFFSET

Các truy vấn dựa trên OFFSET , thường được sử dụng khi hiển thị một lượng lớn dữ liệu theo cách chia nhỏ, cho thấy hiệu suất giảm mạnh khi trang quay lại. Điều này là do DB quét dữ liệu tương ứng với OFFSET trước khi trả về kết quả mong muốn. Ở phần phụ trợ, các cải tiến được thực hiện để giải quyết vấn đề này thông qua các phương pháp như phân trang dựa trên con trỏ hoặc tra cứu phạm vi dựa trên ID . Chúng tôi sẽ xem xét phân trang và cuộn vô hạn theo cấu trúc, cũng như sự khác biệt trong UX và các thay đổi trong chiến lược truy vấn để tối ưu hóa hiệu suất.

Tương quan bài đăng và 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 thực thể (như Post-Comment), 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 giao dịch cam kết thông qua phát hiện thay đổi (kiểm tra bẩn). Bạn cũng sẽ tìm hiểu cách sử dụng phát hiện thay đổi trong giao dịch, cách nhóm các đơn vị làm việc và các chiến lược để xử lý dữ liệu ổn định cùng với các thiết lập mối quan hệ.

Cách sử dụng Git: Từ các lệnh đơn giản đến các chiến lược cho sự hợp tác và ổn định

Git là công cụ kiểm soát phiên bản được các nhà phát triển sử dụng rộng rãi nhất, nhưng nó không chỉ đơn thuần là lưu trữ mã mà còn đóng vai trò quan trọng trong cộng tác và kiểm soát chất lượng. Khi làm việc một mình, các lệnh cơ bản như commit , pushpull có vẻ đủ, nhưng phát triển nhóm đòi hỏi một cách tiếp cận có cấu trúc hơn như chiến lược nhánh và quản lý lịch sử commit.

Trong công việc thực tế, Git được sử dụng để tổ chức luồng đánh giá mã, đảm bảo tính ổn định khi triển khai và cung cấp nền tảng cho các thành viên trong nhóm thực hiện công việc song song. Nếu Git được sử dụng đúng cách, nó có thể giảm thiểu sự nhầm lẫn có thể phát sinh trong quá trình cộng tác và tăng năng suất phát triển.

Chúng tôi sẽ không chỉ đề cập đến cách sử dụng cơ bản mà còn cả các chiến lược nhánh và quy trình công việc thường được sử dụng trong thực tế.


GitHub Actions và tích hợp AWS SSM: Xác thực an toàn và thuận tiện thông qua OIDC

Một trong những mối quan tâm khi truy cập tài nguyên đám mây trong quy trình CI/CD là phương pháp xác thực. Trước đây, việc đăng ký khóa người dùng AWS IAM trong GitHub Secrets và sử dụng chúng là điều phổ biến, nhưng điều này đi kèm với gánh nặng thay thế 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 GitHub Actions hỗ trợ. AWS xác minh mã thông báo do GitHub cấp và cấp quyền tạm thời, do đó bạn có thể vừa bảo mật vừa tiện lợi mà không cần quản lý khóa riêng.

Chúng ta sẽ xem xét cấu trúc tích hợp GitHub Actions và AWS OIDC, tìm hiểu về các phương pháp thiết lập cụ thể và cách áp dụng chúng vào thực tế.

Những điều cần lưu ý trước khi tham gia lớp học

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

  • Thông minh

  • Java21

  • Khởi động mùa xuân 3.4.4

  • MySQL (Docker)

  • AWS (EC2, RDS, IAM, SSM)


  • AWS miễn phí sử dụng (không mất thêm chi phí)

  • Git, Github

  • Hành động Github

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

  • Chúng tôi cung cấp cho bạn phiên bản PDF của bài giảng để bạn có thể xem lại.

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

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

  • Người tìm việc

  • Người đang chuẩn bị trở thành nhà phát triển backend

  • Bạn nào muốn tự tay phát triển server backend từ đầu đến khi triển khai.

  • Những ai muốn tìm hiểu về các điểm cần lưu ý và giải pháp khi phát triển dịch vụ backend.

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

  • Java cơ bản trở lên

  • Dù không rành về Spring, Spring JPA cũng không sao. Chúng ta sẽ cùng tìm hiểu trong bài giảng.

Xin chào
Đây là

65

Học viên

7

Đánh giá

6

Trả lời

5.0

Xếp hạng

1

Khóa học

SK를 거쳐, 카카오에서 백엔드 개발자로 일하며
여러 팀과 서비스를 경험하고, 다양한 백엔드 시스템을 설계하고 운영해왔습니다.

 

“배움은 정보를 넘어서 경험으로 이어질 때 진짜가 된다.”

소프트웨어 지식을 실제로 만들고, 연결하고, 운영해보며 체득하는 진짜 경험을 담고 싶었습니다.
이 배움이 여러분의 실무에 도움이 되었으면 좋겠습니다.

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ả

7 đánh giá

5.0

7 đánh giá

  • gimn700095776님의 프로필 이미지
    gimn700095776

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    31% đã tham gia

    • gydo75님의 프로필 이미지
      gydo75

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      31% đã tham gia

      • jyw07140279님의 프로필 이미지
        jyw07140279

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        It was an essential, substantial class!

        • apiece
          Giảng viên

          Hello jyw0714 :) You've worked hard to complete the course! We will continue to strive to create valuable content with higher quality lectures and materials. Thank you.

      • jaymoon5099님의 프로필 이미지
        jaymoon5099

        Đánh giá 4

        Đánh giá trung bình 5.0

        5

        54% đã tham gia

        • wjdtjsdnd127786님의 프로필 이미지
          wjdtjsdnd127786

          Đánh giá 1

          Đánh giá trung bình 5.0

          5

          24% đã tham gia

          It was good to understand the tool and see direct results at the same time!

          • apiece
            Giảng viên

            Hello, innovation0304 I'm truly happy that you liked being able to see concrete results. Thank you for the course review. We will continue to come back with practical lectures and materials :)

        2.298.364 ₫

        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!