BEST

Real-world! Spring Boot and JPA Utilization 2 - API Development and Performance Optimization

Develop APIs using Spring Boot and JPA. And learn how to optimize JPA's extreme performance.

(5.0) 1,219 reviews

20,284 students

Java
Spring
Spring Boot
JPA

This course is prepared for Intermediate Learners.

What you will learn!

  • Understand the right way to develop APIs using Spring Boot and JPA.

  • Understand how to tune API query performance using Spring Boot and JPA.

  • Understand how to optimize practical performance using Spring Boot and JPA.

Spring Boot, if you want to use it well in practice?
Develop the power to solve complex problems.

🚩 This course is a roadmap course.

  • This lecture is the second lecture of the practical course of Java backend development. Please check the Spring Boot and JPA practical complete conquest roadmap first. (Link)

Real-world! Spring Boot and JPA Utilization 2 - API Development and Performance Optimization

In the Java world, it is a global trend to develop web applications using Spring Boot and JPA. So many developers are learning and using these two technologies. However, it is not as easy as it sounds to properly utilize these technologies while considering performance in various and complex situations in practice.

In practice, you need to be able to solve technical problems beyond the stage of developing features. You need to develop applications that optimize performance in complex, data-intensive situations and are easy to maintain at the same time.


Course Objectives

If Part 1 focused on implementing functions while developing web applications, Part 2 focuses on solving technical problems beyond functional development . We will help you solve technical problems by explaining how to properly implement them, what performance problems are common in practice, and how to solve them.

Implementing the API properly

Even if you develop one API, if you use JPA, there are many things to worry about because the concept of entities is included. Should entities be exposed directly to the API? Or should they be returned as separate objects? How should lazy loading be handled if entities are returned? You will have many concerns. We will tell you practical know-how on how to implement them safely and maintainably in practice.

 Understanding JPA Extreme Query Performance Optimization

In practice, complex situations often arise where multiple tables must be joined to quickly retrieve data. However, collection data with one-to-many relationships must also be retrieved, and additional paging may be required. Then, the problem becomes very complex, and it is difficult to solve the problem simply by joining tables. We will share practical know-how on how to optimize such complex query performance problems with JPA, and what the limits are.

 Performance tuning by coding complex examples in 6 steps

We have prepared a system where you can develop an API that does not perform well, analyze why it does not perform well, and tune it by dividing it into 6 steps and coding step by step . If you follow this content, you will naturally learn how to deal with complex performance issues in practice.

 Solves 90% of practical JPA performance issues

This lecture covers various performance problems that occur frequently in practice so that you can solve 90% of practical JPA performance problems. When I look at practical projects using Spring Boot and JPA, I see many developers who are good at implementing functions but struggle because the performance is not good at the end of the project. So when I go to help them, there are many people who don't know how to optimize JPA performance.

I've seen a wide variety of situations, from people who stay up all night trying to solve it somehow, to people who don't know how to do it and manually write SQL instead of JPA, changing a lot of code to SQL. However, when I actually went to help, it didn't even take 5 minutes to tune it for good performance. I can still vividly see the look on the developer's face when he saw a query that used to take an hour after struggling for several days reduced to tens of seconds by adjusting the JPA query options and modifying only a few codes. JPA already provides various performance tuning options in itself . Therefore, you can try various performance optimizations with just a few options and code modifications.

If you understand what is explained in this lecture, you will be able to solve 90% of practical performance problems.


Main Table of Contents

Recently, rather than using view templates to directly create HTML on the server and respond, it is common to load JSON data into an API and return it. The goal of this article is to understand the points to keep in mind and the correct design direction when developing an API using Spring Boot and JPA, and to complete the API while considering performance.

Part 2 develops a REST API based on the domain created in Part 1. Then, we step by step optimize the performance of the API for querying. Through this process, we will quickly and clearly explain the parts related to JPA query tuning that are essential in practice.

  • API Development Basics : Develop a basic REST API for registration, modification, and querying.
  • Advanced API Development: We will inform you of the precautions and correct design direction when developing APIs for querying with JPA in practice. We will solve JPA lazy loading issues and explain various performance optimization methods step by step.
  • Essential Optimizations for Practice: Covers OSIV topics that can lead to practical problems if not handled carefully when using Spring Boot and JPA.

How to learn

This course is mostly hands- on, so you'll get the most out of it if you follow the course from start to finish and code on your own .

For reference, this lecture is for those who have some knowledge of Spring Boot and JPA and can develop simple web applications. The goal is to help these people gain a technically in-depth understanding beyond functional implementation. Therefore, if you lack understanding of Spring Boot and JPA, it is recommended that you first take the first lecture.

💻 Check out the player lecture!

  • We will develop an API based on the domain model designed in Part 1 and show various performance optimization techniques. Therefore, we recommend that you listen to Part 1 and then Part 2.

Related lectures

Basics

Java ORM Standard JPA Programming - Basics
This is a prerequisite course for understanding JPA-based technologies.

Usage section

Real-world! Spring Boot and JPA Utilization 1 - Web Application Development
Design and develop real-world web applications with Spring Boot and JPA.

Practice! Spring Data JPA
Learn Spring JPA from basics to practice.

Practice! Querydsl
Solve complex and dynamic query problems with Querydsl.

reference book

The book is for those who want to study more in depth.
You can think of it as a reference book.
(If you do not have a book, separate materials for the lecture will be provided.)


Recommended for
these people!

Who is this course right for?

  • For those who use Spring Boot and JPA in their work but want to get better use out of the technology

  • I know Spring Boot and JPA, but I want to understand the correct way to develop APIs.

  • Those who know Spring Boot and JPA, but want to understand the performance optimization techniques required for practical use

  • I know Spring Boot and JPA, but I want to understand the in-depth content that is essential for practical use.

Need to know before starting?

  • JAVA language

  • Spring Framework

  • Relational database basics

  • JPA

Hello
This is yh

532,309

Students

33,360

Reviews

8,859

Answers

5.0

Rating

22

Courses

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

More

Curriculum

All

24 lectures ∙ (6hr 35min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1,219 reviews

5.0

1,219 reviews

  • 탈룰라

    Reviews 6

    Average Rating 5.0

    5

    100% enrolled

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

    • 김영한
      Instructor

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

  • 이창민

    Reviews 2

    Average Rating 5.0

    5

    67% enrolled

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

    • 김영한
      Instructor

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

  • 이정원

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

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

    • 김영한
      Instructor

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

  • kingbbode

    Reviews 3

    Average Rating 5.0

    5

    79% enrolled

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

    • 김영한
      Instructor

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

  • David

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

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

    • 김영한
      Instructor

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

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

$68.20