강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Back-end

本当! Spring BootとJPAの活用2 - API開発とパフォーマンスの最適化

Spring BootとJPAを活用してAPIを開発します。そして、JPAは極端なパフォーマンスを最適化する方法を学ぶことができます。

  • yh
Java
Spring
Spring Boot
JPA

学習した受講者のレビュー

こんなことが学べます

  • Spring BootとJPAを活用してAPIを開発する正しい方法を理解します。

  • Spring BootとJPAを活用してAPIルックアップパフォーマンスをチューニングする方法を理解します。

  • Spring BootとJPAを活用して、実用的なパフォーマンスを最適化する方法を理解します。

スプリングブート、実務でうまく使いたいなら?
複雑な問題まで解決する力を育ててみてください。

🚩この講義はロードマップコースです。

  • 本講義はJavaバックエンド開発の実践コースの2番目の講義です。スプリングブートとJPA実務完全征服ロードマップをまず確認してください。 (リンク)

本当! Spring BootとJPAの活用2 - API開発とパフォーマンスの最適化

Java Jin Youngでは、Spring BootとJPAを活用してWebアプリケーションを開発することが世界的な傾向です。そのため、多くの開発者がこれら2つの技術を学習して使用しています。しかし、実務の多様で複雑な状況にパフォーマンスまで考慮しながら、これらの技術を再び活用することは考えほど簡単ではありません。

実務では、機能を開発するために必要な手順を超えて技術的な問題を解決できる必要があります。複雑で、データも多くの状況でパフォーマンスを最適化し、同時にメンテナンスしやすいアプリケーションを開発する必要があります。


講義目標

1編ではWebアプリケーションを開発しながら機能の実装に焦点を当てたら、 2編は機能開発を超えて技術問題を解決することに焦点を当てました。きちんと実装する方法は何か、実務で主にどんな性能問題があり、どのように解決すべきか、技術問題を解決するのに役立ちます。

APIを正しく実装

APIを1つ開発してもJPAを使用すると、エンティティという概念が入りながら悩む距離が多くなります。エンティティをAPIに直接公開する必要がありますか?それとも別のオブジェクトを別々に作成して返す必要がありますか?エンティティを返すと、遅延ローディングはどのように処理する必要がありますか?など数多くの悩みをすることになります。実務でどのように実装するのが安全で、メンテナンスが良い方法なのか本番のノウハウをお知らせします。

 JPA 極限の照会パフォーマンスの最適化について

実務では、複数のテーブルを結合し、データをすばやく照会する必要がある複雑な状況が頻繁に発生します。ところでここに一対多関係のコレクションデータも一緒に照会し、さらにページングまで処理しなければならない場合があります。これは問題が非常に複雑になり、単にテーブルの結合だけでは問題を解決するのが困難です。このような複雑なルックアップパフォーマンスの問題をJPAでどのように最適化するか、そして限界はどこまでであるのか本番のノウハウをお知らせします。

 複雑な例をコーディングで6段階に分けてパフォーマンスチューニング

パフォーマンスが出ないAPIを直接開発し、なぜパフォーマンスが出ないのかを分析し、 6段階に分けて段階的に直接コーディングしながらチューニングできるように準備しました。こういったことに従うと、当然のことながら、実務の複雑なパフォーマンス問題にどのように対処すべきかがわかります。

 ワーキングJPAパフォーマンス問題の90%を解決

今回の講義では、実務JPAのパフォーマンス問題の90%を解決できるように、実務で本当に頻繁に発生するさまざまなパフォーマンス問題が含まれています。スプリングブートとJPAで進行する実務プロジェクトを見ると、機能の実装はうまくいきますが、プロジェクトの最後にパフォーマンスが出なくなって苦労する開発者の方々を本当にたくさん見ました。それで、助けに行ってみると、JPAのパフォーマンス最適化をどうすべきかわからない方が多かったです。

数日の夜を刻みながら何とか解決しようとする方から、方法がわからないので、JPAの代わりにSQLを直接汗で汗で書いて、数多くのコードをSQLに変更する方まで、本当に様々な状況を見ました。ところがいざ助けに行って実際の性能がよく出るようにチューニングするのには5分かかりませんでした。 JPAクエリオプションを調整して、少しのコードだけを修正しましたが、数日苦労しても1時間ずつかかったクエリが数十秒に減るのを見た開発者の方の表情がまだ生き生きしています。 JPAは、それ自体でさまざまなパフォーマンスチューニングオプションを提供しています。したがって、いくつかのオプションとコードを修正するだけで、さまざまなパフォーマンスの最適化を試すことができます。

このレッスンで説明されている内容を理解すると、90%の実務パフォーマンスの問題を解決できます。


主な目次

最近では、ビューテンプレートを使用して直接サーバーからHTMLを作成して応答するのではなく、APIにJSONデータを投稿して返すことがよくあります。 Spring BootとJPAを使用してAPIを開発する際の注意点と正しい設計方向を理解し、パフォーマンスまで考慮してAPIを完成することが今回の目標です。

パート2は、パート1で作成したドメインに基づいてREST APIを開発します。そして、段階的にルックアップ用APIのパフォーマンスを最適化します。このプロセスを通じて、実務で必要なJPAの照会クエリのチューニングに関連する部分を素早く解放します。

  • API開発の基本:基本的な登録、変更、照会用のREST APIを開発します。
  • API開発の高度化:実務からJPAとして照会用APIを開発するときは、注意点と正しい設計方向をお知らせします。 JPA遅延ローディングの問題を解決し、段階的にさまざまなパフォーマンス最適化方法を説明します。
  • 実務必須の最適化: Spring BootとJPAを使用するときに慎重に使用しないと、実務が障害につながる可能性があるOSIVの内容がカバーされます。

学習方法

この講義はほとんど練習で行われています。そのため、最初から最後まで、自分が直接コーディングしながら講義に従わなければならない最も多くのものを得ることができます。

ちなみにこの講義はSpring BootとJPAをある程度知り、簡単なWebアプリケーション程度は開発できる方が対象です。これらの人々が機能の実装を超えて技術的に深い理解をするのを助けることが目標です。したがって、Spring BootとJPAの理解が不足している場合は、最初のレッスンを最初に聞くことをお勧めします。

💻選手講義を確認してください!

  • 第1章で設計したドメインモデルに基づいてAPIを開発し、さまざまなパフォーマンス最適化手法を紹介します。そのため、1編の講義を聞き、2編の講義を聞くことをお勧めします。

関連講義

基本編

Java ORM標準JPAプログラミング - 基本編
JPAベースの技術を理解するために必要な選手講義です。

活用編

本当! Spring BootとJPAの活用1 - Webアプリケーション開発
Spring BootとJPAで実際のWebアプリケーションを設計および開発します。

本当! Spring Data JPA
基礎から実務までスプリングJPAを学びます。

本当! Querydsl
Querydslを介して複雑なクエリと動的クエリの問題を解決します。

参考書

本はより深い内容を勉強したい人のために
参考書と考えてください。
(本がなくても講義のための別途資料が提供されます。)


こんな方に
おすすめです

学習対象は
誰でしょう?

  • 実務ではSpring BootとJPAを使用していますが、そのスキルをよりよく活用したい方

  • Spring BootとJPAは知っていますが、正しいAPIの開発方法を理解したい人

  • Spring BootとJPAは知っていますが、実務に必要なパフォーマンス最適化技術を理解したい人

  • スプリングブートとJPAは分かるが、実務で必ず知るべき深い内容を理解したい方

前提知識、
必要でしょうか?

  • JAVA言語

  • スプリングフレームワーク

  • リレーショナルデータベースの基礎知識

  • JPA

こんにちは
です。

552,826

受講生

36,140

受講レビュー

8,952

回答

5.0

講座評価

24

講座

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

カリキュラム

全体

24件 ∙ (6時間 35分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

1,268件

5.0

1,268件の受講レビュー

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

    受講レビュー 2

    平均評価 5.0

    5

    67% 受講後に作成

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

    • 김영한
      知識共有者

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

  • kingbbode님의 프로필 이미지
    kingbbode

    受講レビュー 3

    平均評価 5.0

    5

    79% 受講後に作成

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

    • 김영한
      知識共有者

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

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

    受講レビュー 6

    平均評価 5.0

    5

    100% 受講後に作成

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

    • 김영한
      知識共有者

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

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

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

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

    • 김영한
      知識共有者

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

  • David님의 프로필 이미지
    David

    受講レビュー 5

    平均評価 5.0

    5

    100% 受講後に作成

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

    • 김영한
      知識共有者

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

¥10,375

yhの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!