
Creating a RESTFUL API using Spring Boot (AWS, EKS)
dron512
This is a backend programming web development course for beginners.
초급
Spring Boot, REST API, restful
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.
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)
“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
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 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ế.
Đâ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 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ộ.
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.
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
, push
và pull
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ế.
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
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.
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.
65
Học viên
7
Đánh giá
6
Trả lời
5.0
Xếp hạng
1
Khóa học
SK를 거쳐, 카카오에서 백엔드 개발자로 일하며
여러 팀과 서비스를 경험하고, 다양한 백엔드 시스템을 설계하고 운영해왔습니다.
“배움은 정보를 넘어서 경험으로 이어질 때 진짜가 된다.”
소프트웨어 지식을 실제로 만들고, 연결하고, 운영해보며 체득하는 진짜 경험을 담고 싶었습니다.
이 배움이 여러분의 실무에 도움이 되었으면 좋겠습니다.
Tất cả
59 bài giảng ∙ (8giờ 10phút)
Tài liệu khóa học:
Tất cả
7 đánh giá
5.0
7 đánh giá
Đánh giá 2
∙
Đánh giá trung bình 5.0
Đánh giá 1
∙
Đánh giá trung bình 5.0
Đánh giá 1
∙
Đánh giá trung bình 5.0
5
It was an essential, substantial class!
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.
Đánh giá 4
∙
Đánh giá trung bình 5.0
Đánh giá 1
∙
Đánh giá trung bình 5.0
5
It was good to understand the tool and see direct results at the same time!
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ám phá các khóa học khác trong cùng lĩnh vực!