강의

멘토링

커뮤니티

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,727

受講生

181

受講レビュー

230

回答

4.9

講座評価

3

講座

안녕하세요.

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

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

 

[문의]

Email : kukekyakya@gmail.com

カリキュラム

全体

71件 ∙ (13時間 21分)

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

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

受講レビュー

全体

162件

4.9

162件の受講レビュー

  • 리나님의 프로필 이미지
    리나

    受講レビュー 7

    平均評価 5.0

    5

    70% 受講後に作成

    단순히 강의 목록만 보고 강의 내용 판단하면 안되었네요. 실제로 강의를 들어보니 Index 알고리즘 부터 시작해서 최적화 된 인덱스 활용법, 그리고 애플리케이션이 Sale-out 환경과 DB 샤딩 구조 환경에서 안전하게 이벤트 메시지 발행하는 방법까지 정말 제가 원하는 강의였습니다. 단순히 서비스를 구축하는 것을 떠나서 대용량 트래픽에 기반하는 여러가지 TIP이 많아 정말 좋은 강의였습니다. 덕분에 많은 지식을 배우고 갑니다. 앞으로 이렇게 좋은 강의 부탁드립니다 :)

    • 쿠케
      知識共有者

      리나님, 좋은 평가 주셔서 정말 감사합니다! 수강생 분들에게 어떻게 잘 전달할 수 있을지 고민도 많이 되었고 장시간 열심히 준비해왔는데, 어려운 강의 잘 따라와주셔서 감사하고 뿌듯합니다!! 새해 복 많이 받으시고 남은 강의도 화이팅입니다! (후반부도 꽤나 재미(?)있을 겁니다!)

  • wisehero님의 프로필 이미지
    wisehero

    受講レビュー 55

    平均評価 4.7

    5

    72% 受講後に作成

    이 강의는 최고입니다. 이 강의는 인프런의 중, 상급 강의는 이래야 한다라는 기준과 같은 강의입니다. 이제 만 1년을 채운 주니어 개발자입니다. 사내에서는 아직 어드민만 새로 개발을 하거나 유지보수 해왔습니다. 모든 분들이 아시다시피 어드민은 트래픽이 많이 몰리지도 않고 자주 쓰이는 것도 정해져있습니다. 기획도 유저에게 전달되는 것이 아니니 내부 직원들도 속되게 말해 '개판'으로 기획하고 개발하는 경우가 대부분입니다. 이 상황속에서도 도전할 만한 과제들을 찾아보고 있지만 쉽지 않았습니다. 그러던 도중 이 강의를 만났고 앞으로 수행하게될 프로젝트에 대해 어떤 설계를, 어떤 코드를 짤지에 대해 적어도 '생각'은 해볼 수 있는 재료들을 얻었습니다. 최근 들었던 강의들에서는 거의 Q&A란을 인프런 인턴에게 맡겨두고 사실상 유기하는 지식공유자들이 많았는데 쿠케님은 주말에도 Q&A를 열심히 받아주십니다. 강의평 서문에 적었던 것처럼, 이 강의는 중,상급 강의 중 최고입니다. '중,상급 강의는 이래야한다' 라는 기준, 가이드를 제시한 강의라고 생각합니다. 이는 인프런에서 지식을 공유하는 분들이나, 인프런 서비스를 운영하시는 분들 에게도 좋은 레퍼런스가 될 수 있다고 생각합니다. 제약이 많고 꽉꽉 막힌 환경속에서 아직 더 도전적인 업무 수행을 위한 실력을 기르고 싶은 불씨가 아직 꺼지지 않은 분들은 망설이지 말고 수강하셨으면 좋겠습니다. 아쉬운 점은 코드를 제공하시기는 하나 커밋 기록이 찍혀있는 깃허브 레포지토리나 섹션별로 코드가 나뉘어져 있지 않아 흐름을 따라가기가 힘들었는데 이 부분이 개선이 되면 좋을 것 같습니다. 좋은 강의 감사드립니다. 오랜만에 진짜 강의같은 강의를 만났습니다.

    • 쿠케
      知識共有者

      wisehero님, 좋은 평가 감사합니다! 수강평까지 정성스럽게 적어주셔서 너무 감사하네요 ㅎㅎㅎ 강의를 만들면서 “이렇게 어렵게 만들어도 되는건가?” 라는 생각도 있었고, 수강생 분들이 내용을 다 소화하진 못하더라도 무엇을 모르는지 알려드릴 수 있는 것만 해도 나름의 성과라고 생각했었습니다. 다행히 난이도에 대해서는 만족하시는 수강생 분들도 많은 것 같고, wisehero님 또한 앞으로의 방향성을 잘 잡아나가고 계신 것 같아서 뿌듯하네요!! Q&A는 만족해주신 것 같아서 다행입니다! 열정 있는 수강생 분들이라면 강의 들으면서 당연히 궁금한 점이 생길 수 있겠더라고요. 저도 그러한 열정에 보답하고자 최대한 열심히 답변 달려고 노력하고 있습니다 ㅎㅎㅎ 다양한 질문 보면서 강의 내용만으로는 부족했던 점이나 보충해드릴 부분 고민하면서 저 또한 많이 배우고 있고요. 특히 wisehero님은 다른 분 질문에서도 문제 해결 도와주시던 멋진 모습 기억하고 있습니다!! 코드 분리에 대해 아쉬운 점은 충분히 공감됩니다..! 처음부터 완벽하게 오류 없는 코드를 짜면 딱 분리해 둘 수 있겠지만, 그게 생각보다 쉽지 않더라고요..! 강의 범위가 방대하고 내용이 어렵다보니, 코드 수정할 부분이 이후에서야 눈에 들어올 때가 있습니다. 이럴 경우 섹션마다 잘게 나뉘어져 있으면 앞선 내용까지 수정하는게 너무 어렵다보니 귀찮은 마음에 따로 나누지 않은 부분도 있습니다..! 관련해서는 죄송스러운 마음이 있어서 양해를 구하게 되네요 ㅠㅠ 개선할 방법은 조금 더 고민해보겠습니다..! 열정 가득한 최고의 수강생 분들이 들어주시는 덕분에 강의도 가치가 생기는 것 같습니다!! 잘 수강해주셔서 감사합니다!

  • Ian님의 프로필 이미지
    Ian

    受講レビュー 10

    平均評価 5.0

    5

    99% 受講後に作成

    처음엔 가격때문에 고민 많이 했는데, 기대한 것보다 더 방대한 내용을 의식 흐름대로 잘 설명해주셔서 즐겁게 완강했습니다. 대부분의 백엔드 개발자가 들으면 얻어가는게 많을 내용이라 생각하고, 면접에도 큰 도움 될 것 같습니다. 감사합니다!

    • 쿠케
      知識共有者

      Ian님, 좋은 평가 감사합니다!! 즐겁게 완강해주시다니 너무 감사하고 기쁘네요!! 면접도 잘 준비하시길 바랍니다!!

  • chlghksdyd31님의 프로필 이미지
    chlghksdyd31

    受講レビュー 11

    平均評価 4.9

    5

    100% 受講後に作成

    잘 들었습니다. 시스템 설계와 성능 개선 방법에 대해서 궁금했었는데, 강의를 듣고 많이 배워 갑니다. 가격이 높은 편이라서 좀 고민하고 구매했는데 가격 이상의 내용을 배웠다고 생각합니다. 앞으로도 좋은 강의 부탁드립니다. 감사합니다.

    • 쿠케
      知識共有者

      chlghksdyd31님, 좋은 평가 감사합니다!! 잘 배워가셨다니 너무 뿌듯하고 기쁘네요!! 완강 하시느라 고생 많으셨습니다!!

  • 김현진님의 프로필 이미지
    김현진

    受講レビュー 3

    平均評価 5.0

    5

    100% 受講後に作成

    좋은 강의 잘 들었습니다 여러모로 생각이 확장되는 경험이었네요. 특히 kafka가 익숙하지않아 kafka를 활용하는 Transactional Messaging 기법은 생각지도 못한 부분이어서 되게 어려웠지만 재미있는 강의였습니다 !

    • 쿠케
      知識共有者

      현진님, 좋은 평가 감사합니다! Transactional Messaging 정말 어려운 부분인데 재밌게 들으셨다니 다행입니다. ㅎㅎㅎ 완강 하시느라 고생 많으셨고, 새해 복 많이 받으세요!!

¥24,557

kukeの他の講座

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

似ている講座

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