강의

멘토링

커뮤니티

BEST
Programming

/

Back-end

Spring Bootで直接作りながら学ぶ大規模システム設計 - 掲示板

大規模なデータとトラフィックをサポートするシステムを、Spring Boot を使用して直接作成しながら学習します。

  • kuke
이론 실습 모두
시스템설계
Spring Boot
MySQL
Redis
Kafka
Java

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

受講後に得られること

  • 大規模システム設計

  • マイクロサービス アーキテクチャ

  • イベント駆動型アーキテクチャ

  • 分散システムの理解

  • 同時性問題を扱う方法

  • MySQL、Redis、Kafka の理解と実践的な活用戦略

  • データベース インデックスを活用した大規模データ クエリ最適化

  • 複雑な階層テーブルの設計と最適化

  • 高い書き込みトラフィックでもデータの一貫性を保証する方法

  • イベント ストリームの処理と非同期アプリケーションの構築

  • イベントの損失を防ぐためのシステム構築

  • 大規模なトラフィックと複雑なアーキテクチャで活用できる方法論

  • さまざまな要件に適用できるパフォーマンス最適化戦略

  • キャッシュ最適化戦略

IT企業開発者の大規模システム実戦開発ノウハウ!

本講義は大規模システム構築するための技術的知識方法論を説明し、Spring Boot直接コードを書きながら作ってみます。

IT企業で大規模システムを支えながら経験した実戦開発ノウハウをお伝えします。

技術の選定と検討過程も詳しく記述し、設計を作り上げていく過程数百枚の画像資料と共に見ていきます。

以下のような方におすすめします。

  • 大規模データとトラフィックをどのように処理するのか気になる人


  • パフォーマンス最適化が気になる人

  • 経歴はあるがトラフィック経験のない人

  • 単純に理論だけを説明するよりも、実際にどのように作るのか気になる人

  • Spring Bootで掲示板を1回以上開発したことがある人

  • データベースの基礎と簡単なSQL作成方法を知っている人


前提知識

  • Spring Boot

Spring Bootの動作原理や使用方法については扱いません。

  • Java

Java 21を使用しますが、複雑な最新文法は使用しないため、必ずしも21バージョンについて知る必要はありません。Java 8以上の文法を学習していれば十分です。

  • リレーショナルデータベースおよびSQL基礎文法

リレーショナルデータベースの基礎知識、SQLの基礎文法については説明しません。CREATE、SELECT、UPDATE、DELETE文法だけ書けるようになれば十分です。

RedisとKafkaは講義で説明するので、事前知識は必要ありません。

  • Computer Science知識

CSの知識に関する基礎があれば理解が容易になる可能性がありますが、絶対に必須事項ではありません。

技術スタック及びツール

  • Spring Boot 3.3.2

  • Java 21

  • JPA

  • Gradle

  • MySQL 8.0.38

  • Redis 7.4

  • Kafka 3.8.0

  • IntelliJ IDEA


特定のバージョンにこだわる講義ではありませんが、スムーズな実習のために同じ環境を推奨します。

他の言語やフレームワークを使用しても、概念や設計方式は同じです。このような部分について直接考慮して開発できるなら、Spring Bootを使用しなくても学習することができます。

JPAについては説明しませんが、基礎レベルで扱うため、別途知識がなくても大丈夫です。

次の内容を学習します。

  • 大規模システム設計

  • マイクロサービスアーキテクチャ

  • Event-Driven Architecture

  • 分散システムに対する理解

  • 並行性問題を扱う方法


  • MySQL、Redis、Kafkaの理解と実戦活用戦略

  • データベースインデックスを活用した大規模データクエリ最適化

  • 複雑な階層型テーブル設計及び最適化

  • 高い書き込みトラフィックでもデータ一貫性を保証する方法


  • イベントストリーム処理および非同期アプリケーション構築

  • イベント消失防止のためのシステム構築


  • 大規模トラフィックおよび複雑なアーキテクチャで活用できる方法論

  • 様々な要件に適用できるキャッシュ最適化戦略


学習キーワード

#Relational_Database #MySQL #Shard #Replication #Index #Clustered_Index #Secondary_Index #Covering_Index #Query_Plan #Query_Optimization #Primary_Key #Transaction #(De)Normalization #dbms_schema_design #Adjacency_list #Path_enumeration #database_collation #Lock #Optimistic_Lock #Pessimistic_Lock #Record_Lock #Concurrency_Problem #In-memory_database #NoSQL #Redis #Data_Structure #Distributed_Lock #Event_Streaming #Stream_Processing #Async #Kafka #Distributed_Transaction #Transctional_Messaging #Two_Phase_Commit #Transactional_Outbox #CDC #Transaction_Log_Tailing #CQRS #Cache #Request_Collapsing #Distributed_System #Microservice_Architecture #Event_Driven_Architecture

講義で学べるキーワードをまとめてみました。

まだ知らないのは当然ですが、講義を通じて上記の概念について学習および実装することになります。

実務でよく扱うことになる概念であり、各概念の必要性と設計する過程を詳しく説明します。

シンプルなシステムから複雑なシステムまで、段階的に変化するプロセスに関する詳細な画像資料

実務での悩みのプロセスまで!

ライブコーディングで実戦開発を体験し、実装能力を向上!

Java, Spring Boot, MySQL, Redis, Kafka

このようなツールをどのように活用し開発できるのか?

単純なコード作業にとどまらず、

様々なアーキテクチャ、方法論、デザインパターンを適用し、可読性と保守性に優れた構造設計

実戦開発を通じてさらなる成長ができる機会!

受講前Q&A

Q. バックエンドとSpring Bootを全く初めて学ぶのですが、受講できるでしょうか?

A. 入門講座ではないため、バックエンドの概念、Springの原理と使用方法については説明しません。したがって、Springに関する基礎知識は必須要件であり、よく分からなくても学習しながら習得できる姿勢さえあれば十分です。とても簡単な掲示板であっても、最低1回は何かを作ったことがある方におすすめします。


Q. MySQL、Redis、Kafka、Dockerを知らないのですが受講できますか?

A. MySQLとSQLの基礎文法は知っておく必要があります。それ以上の内容や他のツールについては、講義で何なのかを詳しく説明し、直接活用するため、知らなくても大丈夫です。


Q. 講義を最後まで受講すれば、すべての内容を理解できますか?

A. 講義の内容をしっかりと学習し、完全に習得するには数倍の時間がかかる場合があります。単純に目で見て聞いて、コードを一度だけ真似して打つだけでは、すべての内容を理解することはできません。それほど難しいトピックです。講義を進めながらも継続的に復習し、全体的な構造を把握することをお勧めします。また、講義の方向性と関係がなかったり、直接学習が必要だと判断した部分は、講義では説明しないため、決して親切に感じられないかもしれません。このような部分は個人学習が必要です。


Q. バックエンドの経験はありますが、Spring Bootではなく他のフレームワークしか使ったことがありません。講義を受講できるでしょうか?

A. 概念はすべて同じなので、受講していただいても問題ありません。ただし、Spring Bootでは Java 言語で書かれたコードのみを提供しているため、他の言語に直接移植できる実装能力が必要になる場合があります。


Q. 講義紹介に記載されているキーワードが一つも分かりません。

A. 前提条件として言及された事項さえ満たしていれば、講義を通じて理論を学習し、コードで直接実装してみるため、しっかりとついてこられれば大丈夫です。


Q. サーバーデプロイやクライアント開発も扱いますか?

A. ローカル環境でのみ開発とテストが行われ、サーバーデプロイやクライアント画面開発は行われません。


Q. 講義を進める中で、クラウドなどの追加費用がかかるものはありますか?

A. ローカル環境でのみ開発およびテストを行うため、別途費用は必要ありません。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 大規模なデータとトラフィックをどのように処理するかを知りたい人

  • パフォーマンスの最適化に興味のある人

  • 経験はあるがトラフィック経験がない人

  • 単に理論を説明するだけでなく、実際にどのように作るのかを知りたい人

  • Spring Boot で掲示板を 1 回以上開発したことがある人

  • データベースの基礎と簡単なSQLの作成方法を知っている人

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

  • Java

  • Spring Boot

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

  • SQL 文法の基礎

こんにちは
です。

1,788

受講生

189

受講レビュー

237

回答

4.9

講座評価

3

講座

안녕하세요.

IT 기업 개발자로 근무하며, 대규모 시스템을 지탱하기 위해 다양한 기술을 활용해보고 있습니다.

실무 관점의 개발 지식을 공유하고자 개설하였고, 많은 도움이 되었으면 좋겠습니다.

 

[문의]

Email : kukekyakya@gmail.com

カリキュラム

全体

71件 ∙ (13時間 21分)

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

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

受講レビュー

全体

167件

4.9

167件の受講レビュー

  • syh8088님의 프로필 이미지
    syh8088

    受講レビュー 7

    平均評価 5.0

    5

    70% 受講後に作成

    単に講義リストを見て講義内容を判断するだけではダメでした。実際に講義を聞いてみると、インデックス アルゴリズムから最適化されたインデックスの活用法、そしてアプリケーションが Sale-out 環境と DB シャーディング構造環境で安全にイベント メッセージを発行する方法まで、本当に私が求めていた講義でした。単にサービスを構築するだけでなく、大容量トラフィックに基づくさまざまなヒントがたくさんあったので、本当に良い講義でした。 おかげで多くの知識を学びました。これからもこのような良い講義をお願いします :)

    • kuke
      知識共有者

      リナ様、良い評価をいただきありがとうございます! 受講生の方々にどのようにうまく伝えることができるか悩みも多くなり、長時間頑張って準備してきましたが、 難しい川のよくついてくださってありがとうございます! 明けましておめでとうございます残りの講義もファイティングです! (後半部もかなり楽しい(?)あるでしょう!)

  • wisehero님의 프로필 이미지
    wisehero

    受講レビュー 56

    平均評価 4.7

    5

    72% 受講後に作成

    この講義は最高です。この講義は、Inflearnの中、上級講義はこうあるべきだという基準のような講義です。 まもなく丸1年になるジュニア開発者です。社内ではまだアドミンだけを新規開発したり、メンテナンスしてきただけです。皆様ご存知のように、アドミンはトラフィックが集中することも少なく、よく使われるものも決まっています。企画もユーザーに伝わるものではないので、内部職員も俗に言う「めちゃくちゃ」に企画して開発する場合がほとんどです。この状況の中でも挑戦しがいのある課題を探していますが、簡単ではありませんでした。 そんな中、この講義に出会い、これから遂行するプロジェクトについて、どんな設計を、どんなコードを書くかについて、少なくとも「考える」ことができる材料を得られました。 最近受けた講義では、ほとんどQ&A欄をInflearnのインターンに任せて事実上放置する知識共有者が多かったのですが、クケさんは週末にもQ&Aに熱心に対応してくださいます。 講義評の冒頭に書いたように、この講義は中、上級講義の中で最高です。「中、上級講義はこうあるべきだ」という基準、ガイドを提示した講義だと思います。これはInflearnで知識を共有する方々や、Inflearnサービスを運営されている方々にも良いレファレンスになると思います。 制約が多く、閉塞感のある環境の中で、まだより挑戦的な業務遂行のための実力を身につけたいという気持ちが消えていない方は、迷わずに受講していただきたいと思います。 残念な点は、コードは提供されるものの、コミット履歴が残っているGitHubリポジトリやセクション別にコードが分かれていないため、流れを追うのが難しいのですが、この部分が改善されれば良いと思います。 良い講義をありがとうございます。久しぶりに本当の講義に出会えました。

    • kuke
      知識共有者

      wisehero様、良い評価をいただきありがとうございます! レビューまで丁寧に書いていただき、本当に感謝しております😊😊😊 講座を作る際、「こんなに難しく作っても大丈夫かな?」という思いもありましたが、受講生の皆さんが内容をすべて理解できなくても、何が分からないのかをお伝えできるだけでも、それなりの成果だと思っていました。 幸い、難易度については満足してくださる受講生の方も多いようで、wisehero様も今後の方向性をしっかりと定めていらっしゃるようで、嬉しく思います!! Q&Aにご満足いただけたようで、安心しました! 熱心な受講生の方なら、講座を受けているうちに当然疑問点が湧いてくるだろうと思っていました。 私もそのような熱意に応えるべく、できる限り一生懸命回答しようと努力しています😊😊😊 様々な質問を見ながら、講座内容だけでは足りなかった点や補足すべき点を考え、私自身も多くを学んでいます。 特にwisehero様は、他の方の質問でも問題解決を手伝ってくださる素敵な姿を覚えています!! コードの分離について残念に思われた点は、十分に共感できます…! 最初から完璧でエラーのないコードを書けば、きれいに分離しておけるのですが、それがなかなか難しいのです…! 講座の範囲が広大で内容が難しいため、コードの修正箇所が後になってから目に付くことがあります。 このような場合、セクションごとに細かく分かれていると、以前の内容まで修正するのが非常に難しいため、面倒に感じて分割していない部分もあります…! この件については申し訳ない気持ちがあり、ご容赦いただければと思います😭😭 改善策はもう少し検討してみます…! 情熱あふれる最高の受講生の皆様に受講していただけるおかげで、講座も価値が生まれるのだと思います!! よく受講していただきありがとうございます!

  • heekng님의 프로필 이미지
    heekng

    受講レビュー 10

    平均評価 5.0

    5

    99% 受講後に作成

    最初は値段のことで悩みましたが、期待していた以上に膨大な内容を意識の流れに沿って分かりやすく説明してくださり、楽しく最後まで受講できました。 ほとんどのバックエンド開発者が聞けば得るものが多い内容だと思いますし、面接にも大いに役立つと思います。 ありがとうございます!

    • kuke
      知識共有者

      Ianさん、良い評価ありがとうございます!! 楽しく最後まで受講していただき、とても感謝していますし嬉しいです!! 面接の準備も頑張ってください!!

  • chlghksdyd313144님의 프로필 이미지
    chlghksdyd313144

    受講レビュー 11

    平均評価 4.9

    5

    100% 受講後に作成

    お話、 잘 들었습니다. システム設計とパフォーマンス改善の方法について 궁금했었는데、講義を聴いてたくさん学んでいきます。価格が高めなので少し 고민하고購入しましたが、価格以上の内容を学べたと思います。今後とも良い講義をお願いいたします。ありがとうございます。

    • kuke
      知識共有者

      chlghksdyd31様、良い評価をありがとうございます!! ভালোভাবে 배워帰られたとのこと、とても誇らしく嬉しいです!! 最後まで受講お疲れ様でした!!

  • fruitworldplanet3134님의 프로필 이미지
    fruitworldplanet3134

    受講レビュー 3

    平均評価 5.0

    5

    100% 受講後に作成

    良い講義をありがとうございました。 さまざまな面で考えが広がる経験でした。 特にkafkaに慣れていないので、kafkaを活用するTransactional Messagingのテクニックは予想外の部分だったのでとても難しかったですが、面白い講義でした!

    • kuke
      知識共有者

      ヒョンジンさん、良い評価ありがとうございます! トランザクション メッセージングは本当に難しい部分ですが、楽しく聞いていただけて良かったです。😊😊😊 一生懸命勉強してくださってありがとうございます。良いお年をお迎えください!!

期間限定セール、あと8日日で終了

¥2,921,582

29%

¥24,802

kukeの他の講座

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

似ている講座

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