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,181 reviews

20,007 students

Java
Spring
Spring Boot
JPA
Thumbnail

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

503,147

Students

31,544

Reviews

8,794

Answers

5.0

Rating

22

Courses

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

More

Curriculum

All

24 lectures ∙ (6hr 35min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1,181 reviews

5.0

1,181 reviews

  • ckdals123456782875

    Reviews 2

    Average Rating 5.0

    5

    67% enrolled

    Oh no. Younghan is starting to look more and more handsome. Is this love?

    • yh
      Instructor

      ㅋㅋㅋㅋㅋ Thank you, Changmin Lee, for listening so diligently. I love you ㅎㅎ

  • kingbbode0570

    Reviews 3

    Average Rating 5.0

    5

    79% enrolled

    What if I tell you everything, Team Leader! This lecture is full of know-hows that have been very helpful in my work. Thank you for making such a great lecture :)

    • yh
      Instructor

      Hahaha kingbbode, thank you so much, you're always the best!

  • wnstn0154

    Reviews 6

    Average Rating 5.0

    5

    100% enrolled

    Thanks to the numerous Q&A's posted by students studying Spring and JPA together, if you have any questions while watching the lecture, 90% of them can be resolved by referring to the Q&A. This is because King Young-Hwan has been paying attention to the Q&A from the beginning... It is a lecture where I can earn money just by paying and listening.

    • yh
      Instructor

      I think that the harder you work, Talullah, the more you gain from it. Thank you.

  • khjvvv70387

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

    I have completed the JPA Basics and Utilization 1 and 2. There were many lectures that were so boring that it was hard to listen to them without playing them at high speed, but I couldn't play Younghan's lectures at high speed. The content was so rich and the lecture tension was good, so I was able to concentrate and listen to all the lectures. Thank you for the great lecture~!~!

    • yh
      Instructor

      Wow! Thank you, Jeongwon. Actually, I also think that tension is important, so when the tension dies down, I take it again. ㅋㅋㅋ I worked hard on this part, so I feel good to receive good feedback. ㅎㅎ

  • deeplyrooted

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    * You explain the best practices, but you also explain the bad practices, so I could understand why the improved ones are the best practices. * You explain in detail the trade-offs of development convenience, performance, and maintenance. I haven't experienced much traffic yet, but I was able to understand what backend developers should consider to improve performance when the service grows and traffic increases. * When I worked on improving performance, you showed me SQL queries one by one and explained how performance optimization is done, and also explained that this type of performance optimization is not always a silver bullet. After listening to the explanation of Spring Data JPA and QueryDSL, I feel like I want to solidify my basics of DB and JPA. Thank you for sharing your practical experience in a great lecture :)

    • yh
      Instructor

      You really learned the course well^^! I feel more rewarded by your in-depth learning than by the wonderful course reviews. I will always cheer you on.

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

$48.40

29%

$68.20