강의

멘토링

로드맵

BEST
Programming

/

Back-end

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

20,706 learners

  • yh
Java
Spring
Spring Boot
JPA

Reviews from Early 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.

Want to use Spring Boot effectively in practice?
Develop the power to solve even complex problems.

🚩 This course is a roadmap course.

  • This lecture is the second in a practical course on Java backend development. Please first review the roadmap for mastering Spring Boot and JPA (link) .

Practice! Using Spring Boot and JPA 2 - API Development and Performance Optimization

In the Java world, developing web applications using Spring Boot and JPA is a global trend. Consequently, many developers are learning and using these two technologies. However, effectively utilizing these technologies in diverse and complex real-world situations while also considering performance is not as easy as it might seem.

In practice, you need to go beyond functional development to solve technical problems. You need to develop applications that optimize performance in complex, data-intensive situations while also being easy to maintain.


Course Objectives

While Part 1 focused on implementing features while developing web applications, Part 2 goes beyond functional development and focuses on solving technical issues . We'll cover how to implement them properly , what performance issues typically arise in practice, and how to address them. We'll also help you resolve technical issues.

Implement the API properly

Even when developing a single API, using JPA introduces the concept of entities, leading to numerous concerns. Should entities be exposed directly to the API? Or should they be created as separate objects and returned? How should lazy loading be handled when returning entities? These questions often arise. We'll share practical know-how on how to implement these in a safe and maintainable way.

 Understanding JPA Extreme Query Performance Optimization

In practice, complex situations often arise where multiple tables must be joined to quickly retrieve data. However, this often requires the addition of collection data with one-to-many relationships, and additional paging may be required. This complicates the problem significantly, making it difficult to resolve with simple table joins. This article will share practical know-how on how to optimize these complex query performance issues with JPA and its limitations.

 Performance tuning by coding complex examples in six steps.

We've prepared a six-step guide to help you develop an underperforming API, analyze why it's failing, and tune it step-by-step through coding . By following this guide, you'll naturally learn how to address complex performance issues in real-world situations.

 Solving 90% of practical JPA performance issues

This course covers a variety of performance issues that frequently arise in practice, helping you resolve 90% of practical JPA performance issues. I've seen countless developers working on Spring Boot and JPA projects successfully implement functionalities, but struggle with performance issues at the end of the project. So, when I went to help them, I often found they didn't know how to optimize JPA performance.

I've seen a wide range of scenarios, from people who pulled all-nighters trying to figure out a solution, to those who, unsure of a solution, manually rewrote SQL instead of JPA and converted countless codes into SQL. However, when I actually went to help, it took less than five minutes to tune the system for optimal performance. I can still vividly see the look on the developer's face as they saw a query that used to take an hour, despite days of hard work, reduced to tens of seconds by adjusting JPA query options and making a few minor code changes. JPA inherently provides a wide range of performance tuning options , so with just a few options and code modifications, you can experiment with various performance optimizations.

If you understand what I'm talking about in this lecture, you'll be able to solve 90% of your practical performance problems.


Main Table of Contents

These days, rather than using view templates to directly generate HTML on the server and respond, many developers are loading JSON data into APIs and returning it. The goal of this article is to understand the considerations and proper design guidelines for developing APIs using Spring Boot and JPA, and to complete the API with performance in mind.

Part 2 develops a REST API based on the domain created in Part 1. We then step by step optimize the performance of the query API. This process provides a thorough and comprehensive explanation of JPA query tuning, a crucial practice.

  • API Development Basics : Develop a basic REST API for registration, modification, and querying.
  • Advanced API Development: We'll explain the key considerations and design guidelines for developing query APIs using JPA in practice. We'll address JPA lazy loading issues and explain various performance optimizations step-by-step.
  • Essential Optimizations for Practice: Covers OSIV topics that can lead to practical issues if not handled carefully when using Spring Boot and JPA.

How to learn

This course is largely hands-on . Therefore, you'll get the most out of it by following the lecture from beginning to end, coding on your own .

Please note that this course is intended for those who have some familiarity with Spring Boot and JPA and are capable of developing simple web applications. The goal is to help these individuals develop a deep technical understanding beyond functional implementation. Therefore, if you lack a solid understanding of Spring Boot and JPA, we recommend taking Part 1 first.

💻 Check out the player lecture!

  • We'll develop an API based on the domain model designed in Part 1 and demonstrate various performance optimization techniques. Therefore, we recommend taking Part 1 before Part 2.

Related lectures

Basic Edition

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

Usage section

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

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

Real-world! Querydsl
Solve complex and dynamic query problems with Querydsl.

reference book

The book is for those who want to study more in-depth content.
You can think of it as a reference book.
(Even if you don't 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

558,104

Learners

36,590

Reviews

8,965

Answers

5.0

Rating

25

Courses

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

Curriculum

All

24 lectures ∙ (6hr 35min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1,277 reviews

5.0

1,277 reviews

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

    Reviews 2

    Average Rating 5.0

    5

    67% enrolled

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

    • 김영한
      Instructor

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

  • kingbbode님의 프로필 이미지
    kingbbode

    Reviews 3

    Average Rating 5.0

    5

    79% enrolled

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

    • 김영한
      Instructor

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

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

    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

    100% enrolled

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

    • 김영한
      Instructor

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

  • David님의 프로필 이미지
    David

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

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

    • 김영한
      Instructor

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

Limited time deal ends in 10:12:51

$61,600.00

30%

$68.20

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!