강의

멘토링

로드맵

BEST
개발 · 프로그래밍

/

백엔드

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

대규모 데이터와 트래픽을 지탱하기 위한 시스템을, 스프링부트로 직접 만들면서 배워봅니다.

(4.9) 수강평 101개

수강생 1,201명

  • 쿠케
이론 실습 모두
시스템설계
Spring BootMySQLRedisKafkaJava

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • 대규모 시스템 디자인

  • Microservice Architecture

  • Event-Driven Architecture

  • 분산 시스템에 대한 이해

  • 동시성 문제를 다루는 방법

  • MySQL, Redis, Kafka에 대한 이해 및 실전 활용 전략

  • 데이터베이스 인덱스를 활용한 대규모 데이터 쿼리 최적화

  • 복잡한 계층형 테이블 설계 및 최적화

  • 높은 쓰기 트래픽에서도 데이터 일관성을 보장하는 방법

  • 이벤트 스트림 처리 및 비동기 애플리케이션 구축

  • 이벤트 유실 방지를 위한 시스템 구축

  • 대규모 트래픽 및 복잡한 아키텍처에서 활용할 수 있는 방법론

  • 다양한 요구사항에 적용할 수 있는 성능 최적화 전략

  • 캐시 최적화 전략

IT 서비스 대기업 개발자의 대규모 시스템 실전 개발 노하우!

본 강의는 대규모 시스템구축하기 위한 기술적 지식방법론을 설명하고, 스프링부트직접 코드를 작성하며 만들어봅니다.

IT 서비스 대기업에서 대규모 시스템을 지탱하며 경험실전 개발 노하우를 전달합니다.

기술의 선정 및 고민 과정도 자세하게 서술하고, 설계를 만들어가는 과정수백장의 이미지 자료와 함께 살펴봅니다.

다음과 같은 분들에게 추천드립니다.

  • 대규모 데이터와 트래픽을 어떻게 처리하는지 궁금한 사람


  • 성능 최적화가 궁금한 사람

  • 경력은 있지만 트래픽 경험은 없는 사람

  • 단순하게 이론만 설명하는 것 보다는, 실제로 어떻게 만드는지 궁금한 사람

  • 스프링부트로 게시판을 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


특정 버전에 구애받는 강의는 아니지만, 원활한 실습을 위해 동일한 환경을 권장합니다.

타 언어 또는 프레임워크를 사용하더라도, 개념 및 설계 방식은 동일합니다. 이러한 부분에 대해 직접 고려하고 개발할 수 있다면, 스프링부트를 사용하지 않더라도 학습하실 수 있습니다.

JPA에 대해 설명하진 않지만 기초 수준에서 다루기 때문에, 별도 지식은 없어도 괜찮습니다.

다음 내용을 배우게 됩니다.

  • 대규모 시스템 디자인

  • Microservice Architecture

  • 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. 백엔드와 스프링부트를 완전히 처음 배우는데 수강할 수 있을까요?

A. 입문 강의는 아니기 때문에 백엔드의 개념, 스프링의 원리와 사용 방법을 설명하진 않습니다. 따라서 스프링에 대한 기초 지식은 필수 요건이고, 잘은 모르더라도 학습하면서 배울 수 있는 자세만 있으면 충분합니다. 아주 간단한 게시판이더라도, 최소 1회는 무언가를 만들어본 분들께 추천드립니다.


Q. MySQL, Redis, Kafka, Docker를 모르는데 수강할 수 있나요?

A. MySQL과 SQL 기초 문법은 알아야합니다. 그 이상의 내용과 타 도구는 강의에서 무엇인지 상세히 설명하고 직접 활용하기 때문에, 모르셔도 괜찮습니다. 


Q. 강의만 완강하면, 모든 내용 다 이해할 수 있나요?

A. 강의의 내용을 제대로 학습하고 온전히 습득하려면 몇 배의 시간이 들 수 있습니다. 단순하게 눈으로만 듣고 코드만 한번 따라친다고 해서 모든 내용을 이해할 수는 없습니다. 그만큼 어려운 주제입니다. 강의를 진행하면서도 지속적으로 복습하고 전반적인 구조를 파악해보는 것을 권장드립니다. 또, 강의의 방향성과 무관하거나 직접 학습이 필요하다고 판단한 부분은, 강의에서 설명하지 않기 때문에 마냥 친절하게 느껴지진 않을 수 있습니다. 이러한 부분은 개인 학습이 필요합니다.


Q. 백엔드 경험은 있으나, 스프링부트가 아니라 다른 프레임워크만 사용해봤어요. 강의를 들을 수 있을까요?

A. 개념은 모두 동일하므로 들으셔도 무방합니다. 다만, 스프링부트에서 자바 언어로 작성된 코드만 제공하기 때문에, 타 언어로 직접 옮길 수 있는 구현 능력은 필요할 수 있습니다. 


Q. 강의 소개에 언급된 키워드들 하나도 모르겠어요.

A. 선행 조건으로 언급된 사항만 충족되면, 강의를 통해서 이론을 학습하고 코드로 직접 구현해보기 때문에, 잘 따라올 수만 있으면 괜찮습니다.


Q. 서버 배포나 클라이언트 개발도 다루나요?

A. 로컬에서만 개발 및 테스트가 진행되고, 서버 배포나 클라이언트 화면 개발은 진행되지 않습니다.


Q. 강의를 진행하면서 클라우드 등 부가적인 비용이 드는게 있을까요?

A. 로컬에서만 개발 및 테스트가 진행되므로, 별도 비용은 필요하지 않습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 대규모 데이터와 트래픽을 어떻게 처리하는지 궁금한 사람​

  • 성능 최적화가 궁금한 사람

  • 경력은 있지만 트래픽 경험은 없는 사람

  • 단순하게 이론만 설명하는 것 보다는, 실제로 어떻게 만드는지 궁금한 사람

  • 스프링부트로 게시판을 1번 이상 개발해본 사람

  • 데이터베이스 기초와 간단한 SQL 작성 방법을 아는 사람

선수 지식,
필요할까요?

  • Java

  • Spring Boot

  • Relational Database 기초

  • SQL 문법 기초

안녕하세요
입니다.

1,300

수강생

111

수강평

188

답변

4.9

강의 평점

2

강의

안녕하세요.

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

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

 

[문의]

Email : kukekyakya@gmail.com

커리큘럼

전체

71개 ∙ (13시간 21분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

101개

4.9

101개의 수강평

  • syh8088님의 프로필 이미지
    syh8088

    수강평 7

    평균 평점 5.0

    5

    70% 수강 후 작성

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

    • kuke
      지식공유자

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

  • wisehero님의 프로필 이미지
    wisehero

    수강평 55

    평균 평점 4.7

    5

    72% 수강 후 작성

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

    • kuke
      지식공유자

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

  • heekng님의 프로필 이미지
    heekng

    수강평 9

    평균 평점 5.0

    5

    99% 수강 후 작성

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

    • kuke
      지식공유자

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

  • chlghksdyd313144님의 프로필 이미지
    chlghksdyd313144

    수강평 10

    평균 평점 4.9

    5

    100% 수강 후 작성

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

    • kuke
      지식공유자

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

  • fruitworldplanet3134님의 프로필 이미지
    fruitworldplanet3134

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

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

    • kuke
      지식공유자

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

₩198,000

쿠케님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!