강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Back-end

Trong thực tế! Spring Boot và JPA Usage 2 - Phát triển API và tối ưu hóa hiệu suất

Phát triển API bằng Spring Boot và JPA. Và bạn có thể tìm hiểu cách tối ưu hóa hiệu suất cực cao của JPA.

(5.0) 1,268 đánh giá

20,632 học viên

  • yh
Java
Spring
Spring Boot
JPA

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

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

  • Hiểu cách phát triển API chính xác bằng Spring Boot và JPA.

  • Hiểu cách điều chỉnh hiệu suất truy vấn API bằng Spring Boot và JPA.

  • Hiểu cách tối ưu hóa hiệu suất thực tế bằng Spring Boot và JPA.

Bạn muốn sử dụng Spring Boot hiệu quả trong thực tế?
Phát triển khả năng giải quyết các vấn đề phức tạp.

🚩 Khóa học này là khóa học theo lộ trình.

  • Bài giảng này là bài thứ hai trong khóa học thực hành về phát triển back-end Java. Vui lòng xem lại lộ trình thành thạo Spring Boot và JPA (liên kết) .

Thực hành! Sử dụng Spring Boot và JPA 2 - Phát triển API và Tối ưu hóa Hiệu suất

Trong thế giới Java, việc phát triển ứng dụng web bằng Spring Boot và JPA đang là xu hướng toàn cầu. Do đó, nhiều nhà phát triển đang tìm hiểu và sử dụng hai công nghệ này. Tuy nhiên, việc sử dụng hiệu quả các công nghệ này trong các tình huống thực tế đa dạng và phức tạp, đồng thời vẫn đảm bảo hiệu suất, không hề dễ dàng như chúng ta tưởng.

Trên thực tế, bạn cần vượt ra ngoài phạm vi phát triển chức năng để giải quyết các vấn đề kỹ thuật. Bạn cần phát triển các ứng dụng tối ưu hóa hiệu suất trong các tình huống phức tạp, đòi hỏi nhiều dữ liệu, đồng thời dễ bảo trì.


Mục tiêu của khóa học

Trong khi Phần 1 tập trung vào việc triển khai các tính năng trong quá trình phát triển ứng dụng web, Phần 2 đi xa hơn việc phát triển chức năng và tập trung vào việc giải quyết các vấn đề kỹ thuật . Chúng tôi sẽ đề cập đến cách triển khai chúng đúng cách , những vấn đề về hiệu suất thường phát sinh trong thực tế và cách giải quyết chúng. Chúng tôi cũng sẽ giúp bạn giải quyết các vấn đề kỹ thuật.

Triển khai API đúng cách

Ngay cả khi phát triển một API duy nhất, việc sử dụng JPA cũng dẫn đến khái niệm thực thể, dẫn đến nhiều lo ngại. Liệu các thực thể có nên được hiển thị trực tiếp với API không? Hay chúng nên được tạo thành các đối tượng riêng biệt và được trả về? Tải lười biếng nên được xử lý như thế nào khi trả về các thực thể? Những câu hỏi này thường nảy sinh. Chúng tôi sẽ chia sẻ bí quyết thực tế về cách triển khai chúng một cách an toàn và dễ bảo trì.

 Hiểu về tối ưu hóa hiệu suất truy vấn JPA Extreme

Trong thực tế, thường phát sinh các tình huống phức tạp khi phải kết hợp nhiều bảng để truy xuất dữ liệu nhanh chóng. Tuy nhiên, điều này thường đòi hỏi phải bổ sung dữ liệu thu thập với các mối quan hệ một-nhiều, và có thể cần thêm phân trang. Điều này làm phức tạp vấn đề đáng kể, khiến việc giải quyết bằng các phép kết hợp bảng đơn giản trở nên khó khăn. Bài viết này sẽ chia sẻ bí quyết thực tế về cách tối ưu hóa các vấn đề hiệu suất truy vấn phức tạp này với JPA và các hạn chế của nó.

 Điều chỉnh hiệu suất bằng cách mã hóa các ví dụ phức tạp theo sáu bước.

Chúng tôi đã chuẩn bị hướng dẫn sáu bước để giúp bạn phát triển một API hoạt động kém, phân tích nguyên nhân gây lỗi và tinh chỉnh từng bước thông qua mã hóa . Bằng cách làm theo hướng dẫn này, bạn sẽ tự nhiên học được cách giải quyết các vấn đề hiệu suất phức tạp trong các tình huống thực tế.

 Giải quyết 90% các vấn đề thực tế về hiệu suất JPA

Khóa học này đề cập đến nhiều vấn đề về hiệu suất thường gặp trong thực tế, giúp bạn giải quyết 90% các vấn đề thực tế về hiệu suất JPA. Tôi đã chứng kiến vô số lập trình viên làm việc trên các dự án Spring Boot và JPA triển khai thành công các chức năng, nhưng lại gặp khó khăn với các vấn đề về hiệu suất vào cuối dự án. Vì vậy, khi tôi đến hỗ trợ họ, tôi thường nhận ra họ không biết cách tối ưu hóa hiệu suất JPA.

Tôi đã chứng kiến đủ loại tình huống, từ những người thức trắng đêm tìm giải pháp, đến những người, vì không chắc chắn về giải pháp, đã tự tay viết lại SQL thay vì JPA và chuyển đổi vô số mã thành SQL. Tuy nhiên, khi tôi thực sự vào cuộc, chỉ mất chưa đầy năm phút để tinh chỉnh hệ thống để đạt hiệu suất tối ưu. Tôi vẫn có thể hình dung rõ nét vẻ mặt của nhà phát triển khi họ thấy một truy vấn từng mất cả giờ, bất chấp nhiều ngày làm việc chăm chỉ, đã được rút ngắn xuống còn vài chục giây bằng cách điều chỉnh các tùy chọn truy vấn JPA và thực hiện một vài thay đổi nhỏ về mã. JPA vốn cung cấp nhiều tùy chọn tinh chỉnh hiệu suất , vì vậy chỉ với một vài tùy chọn và sửa đổi mã, bạn có thể thử nghiệm nhiều cách tối ưu hóa hiệu suất khác nhau.

Nếu bạn hiểu những gì tôi đang nói trong bài giảng này, bạn sẽ có thể giải quyết 90% các vấn đề về hiệu suất thực tế của mình.


Mục lục chính

Ngày nay, thay vì sử dụng các mẫu view để tạo HTML trực tiếp trên máy chủ và phản hồi, nhiều nhà phát triển đang tải dữ liệu JSON vào API và trả về. Mục tiêu của bài viết này là tìm hiểu các cân nhắc và hướng dẫn thiết kế phù hợp để phát triển API bằng Spring Boot và JPA, đồng thời hoàn thiện API với mục tiêu tối ưu hóa hiệu suất.

Phần 2 phát triển một REST API dựa trên miền đã tạo trong Phần 1. Sau đó, chúng tôi từng bước tối ưu hóa hiệu suất của API truy vấn. Quy trình này cung cấp giải thích chi tiết và toàn diện về việc tinh chỉnh truy vấn JPA, một hoạt động quan trọng.

  • Cơ bản về phát triển API : Phát triển API REST cơ bản để đăng ký, sửa đổi và truy vấn.
  • Phát triển API Nâng cao: Chúng tôi sẽ giải thích những cân nhắc chính và hướng dẫn thiết kế để phát triển API truy vấn sử dụng JPA trong thực tế. Chúng tôi sẽ giải quyết các vấn đề về tải chậm JPA và hướng dẫn từng bước các phương pháp tối ưu hóa hiệu suất khác nhau.
  • Tối ưu hóa cần thiết cho thực hành: Bao gồm các chủ đề OSIV có thể dẫn đến các vấn đề thực tế nếu không được xử lý cẩn thận khi sử dụng Spring Boot và JPA.

Làm thế nào để học

Khóa học này chủ yếu là thực hành . Do đó, bạn sẽ tận dụng tối đa lợi ích của nó bằng cách tự mình viết mã và theo dõi bài giảng từ đầu đến cuối .

Xin lưu ý rằng khóa học này dành cho những người đã quen thuộc với Spring Boot và JPA và có khả năng phát triển các ứng dụng web đơn giản. Mục tiêu là giúp những người này phát triển hiểu biết chuyên sâu về kỹ thuật, vượt ra ngoài phạm vi triển khai chức năng. Do đó, nếu bạn chưa có kiến thức vững chắc về Spring Boot và JPA, chúng tôi khuyên bạn nên học Phần 1 trước.

💻 Hãy xem bài giảng của người chơi!

  • Chúng tôi sẽ phát triển một API dựa trên mô hình miền được thiết kế trong Phần 1 và trình bày các kỹ thuật tối ưu hóa hiệu suất khác nhau. Do đó, chúng tôi khuyên bạn nên học Phần 1 trước Phần 2.

Bài giảng liên quan

Phiên bản cơ bản

Lập trình JPA chuẩn Java ORM - Cơ bản
Đây là khóa học tiên quyết để hiểu về các công nghệ dựa trên JPA.

Phần sử dụng

Thực tế! Sử dụng Spring Boot và JPA 1 - Phát triển ứng dụng web
Thiết kế và phát triển các ứng dụng web thực tế với Spring Boot và JPA.

Spring Data JPA trong thực tế!
Học Spring JPA từ cơ bản đến thực hành.

Thực tế! Querydsl
Giải quyết các vấn đề truy vấn phức tạp và động với Querydsl.

sách tham khảo

Cuốn sách này dành cho những ai muốn nghiên cứu sâu hơn về nội dung.
Bạn có thể coi nó như một cuốn sách tham khảo.
(Ngay cả khi bạn không có sách, tài liệu riêng cho bài giảng vẫn sẽ được cung cấp.)


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

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

  • Những người sử dụng Spring Boot và JPA trong thực tế nhưng muốn sử dụng những công nghệ đó tốt hơn

  • Bất kỳ ai biết Spring Boot và JPA nhưng muốn hiểu cách phát triển API phù hợp

  • Bất cứ ai biết Spring Boot và JPA nhưng muốn hiểu các kỹ thuật tối ưu hóa hiệu suất cần thiết để sử dụng thực tế

  • Những người biết Spring Boot và JPA nhưng muốn hiểu sâu nội dung cần thiết cho việc sử dụng thực tế

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

  • ngôn ngữ JAVA

  • khung mùa xuân

  • Cơ sở dữ liệu quan hệ cơ bản

  • JPA

Xin chào
Đây là

552,843

Học viên

36,150

Đánh giá

8,952

Trả lời

5.0

Xếp hạng

24

Các khóa học

진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.

 

저의 개발 인생 이야기

EO 인터뷰 영상

개발바닥 - 시골 청년 개발왕 되다

취업과 이직에 대한 고민 해결

 

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

Tất cả

24 bài giảng ∙ (6giờ 35phú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ả

1,268 đánh giá

5.0

1,268 đánh giá

  • 이창민님의 프로필 이미지
    이창민

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    67% đã tham gia

    큰일이다. 점점 영한이형이 잘생겨보이기 시작한다. 이것이 사랑인가?

    • 김영한
      Giảng viên

      ㅋㅋㅋㅋㅋ 이창민님 열심히 들어주셔서 감사합니다. 사랑합니다 ㅎㅎ

  • kingbbode님의 프로필 이미지
    kingbbode

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    79% đã tham gia

    다 알려주면 어떻게 하나요 팀장님! 실무에서 많은 도움이 되었던 노하우들이 가득한 강의입니다. 좋은 강의 제작해주셔서 감사합니다 :)

    • 김영한
      Giảng viên

      ㅎㅎㅎ kingbbode님 항상 최고 감사합니다!

  • 탈룰라님의 프로필 이미지
    탈룰라

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Spring과 JPA를 같이 공부하는 학생들이 올려준 수많은 Q&A 덕에 강의를 보다 의문이 생기는 부분이 있으면 Q&A를 참고하면 9할은 해결된다. 이건 킹영환님께서 초지일관 Q&A에 신경을 잘 써주셨기 때문... 결제하고 듣기만해도 내가 오히려 돈을 벌어가는 강의.

    • 김영한
      Giảng viên

      탈룰라님 열심히 하시니 그만큼 더 얻어가시는 것이라 생각해요^^ 감사합니다.

  • 이정원님의 프로필 이미지
    이정원

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    JPA 기본편과 활용 1, 2편까지 완강 했습니다. 배속 재생을 하지 않으면 듣기 힘들정도로 지루한 강의 들이 많았는데 영한님 강의는 배속 재생을 할 수가 없었습니다. 그만큼 내용이 알차게 담겨있고 강의 텐션도 좋으셔서 집중해서 모든 강의를 들을 수 있었습니다. 좋은 강의 감사합니다~!~!

    • 김영한
      Giảng viên

      크! 고맙습니다. 정원님. 사실 저도 텐션이 중요하다고 생각해서, 텐션이 죽으면 다시 찍습니다 ㅋㅋㅋ 이 부분을 상당히 많이 노력했는데, 알아주시는 좋은 피드백을 받아서 기분이 좋네요 ㅎㅎ

  • David님의 프로필 이미지
    David

    Đánh giá 5

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    * best practice를 알려주시되 bad practice도 함께 설명해주시니 개선된 것들이 왜 best practice가 되는지 알 수 있었습니다. * 개발편의, 성능, 유지보수 등의 트레이드 오프에 대해 자세히 설명해주십니다. 아직까지 많은 트래픽을 경험한적이 없지만 서비스가 커지고 트래픽이 늘었을 때 백엔드 개발자가 성능 개선을 위해 어떤 점을 고려해야 하는지 알 수 있었습니다. * 성능 개선을 위해 작업 했을 때 SQL 쿼리를 하나씩 보여주시면서 어떻게 성능 최적화가 되는지, 항상 이런 방식의 성능 최적화가 은탄환이 아님도 함께 알려주십니다. Spring Data JPA, QueryDSL 설명을 듣다보니 DB와 JPA의 기본을 더욱 탄탄히 다지고 싶다는 생각이 듭니다. 실무에서의 경험을 멋진 강의로 풀어내주셔서 감사합니다:)

    • 김영한
      Giảng viên

      강의를 정말 제대로 습득하셨네요^^! 멋진 수강평보다 깊이있게 학습하셔서 제가 더 보람이 있습니다. 항상 응원하겠습니다.

1.853.441 ₫

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

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!