강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Back-end

Learning Large-Scale System Design by Building Directly with Spring Boot - Bulletin Board

We will learn how to create a system to support large amounts of data and traffic by creating it directly with Spring Boot.

(4.9) 99 reviews

1,193 learners

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

Reviews from Early Learners

What you will learn!

  • Large-scale system design

  • Microservice Architecture

  • Event-Driven Architecture

  • Understanding Distributed Systems

  • How to deal with concurrency issues

  • Understanding and Practical Application Strategies for MySQL, Redis, and Kafka

  • Optimizing large data queries using database indexes

  • Complex Hierarchical Table Design and Optimization

  • How to ensure data consistency even with high write traffic

  • Processing event streams and building asynchronous applications

  • System establishment to prevent loss of events

  • Methodology for use in large-scale traffic and complex architectures

  • Performance optimization strategies that can be applied to a variety of requirements

  • Cache Optimization Strategy

Large-scale system development know-how from developers at large IT service companies!

This lecture explains the technical knowledge and methodology for building a large-scale system , and creates it by writing code directly with Spring Boot .

We provide practical development know-how gained through supporting large-scale systems at large IT service companies.

The process of selecting and considering technology is described in detail, and the process of creating a design is examined with hundreds of image materials .

Recommended for the following people:

  • Anyone curious about how to handle large amounts of data and traffic


  • Anyone curious about performance optimization

  • Someone with experience but no traffic experience

  • People who are curious about how to actually make it, rather than just explaining the theory

  • Anyone who has developed a bulletin board with Spring Boot at least once

  • Someone who knows database basics and how to write simple SQL.


Player Knowledge

  • Spring Boot

It does not cover how Spring Boot works or how to use it.

  • Java

It uses Java 21, but it doesn't use complex modern syntax, so you don't necessarily need to know about version 21. It's enough to have learned Java 8 or higher syntax.

  • Relational Databases and SQL Basics Grammar

It does not explain the basics of relational databases or basic SQL grammar. It is sufficient to know how to write only CREATE, SELECT, UPDATE, and DELETE grammar.

Redis and Kafka are explained in the lecture, so no prior knowledge is required.

  • Computer Science Knowledge

A basic understanding of CS knowledge may help, but is not absolutely required.

Technology Stack and Tools

  • Spring Boot 3.3.2

  • Java 21

  • JPA

  • Gradle

  • MySQL 8.0.38

  • Redis 7.4

  • Kafka 3.8.0

  • IntelliJ IDEA


Although this course is not tied to a specific version, we recommend the same environment for smooth practice.

Even if you use another language or framework, the concepts and design methods are the same. If you can think about these parts and develop them yourself, you can learn them even if you don't use Spring Boot.

I won't explain JPA, but since it covers it at a basic level, you don't need to have any separate knowledge.

You will learn:

  • Large-scale system design

  • Microservice Architecture

  • Event-Driven Architecture

  • Understanding Distributed Systems

  • How to deal with concurrency issues


  • Understanding MySQL, Redis, and Kafka and practical application strategies

  • Optimizing large-scale data queries using database indexes

  • Design and optimize complex hierarchical tables

  • How to ensure data consistency even under high write traffic


  • Process event streams and build asynchronous applications

  • Building a system to prevent event loss


  • A methodology that can be utilized in large-scale traffic and complex architectures.

  • Cache optimization strategies applicable to various requirements


Learning Keywords

#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

I have compiled keywords that you can learn in the lecture.

It is natural that you do not know it yet, but you will learn and implement the above concepts through the lecture.

These are concepts that are frequently dealt with in practice, and the necessity of each concept and the design process are explained in detail.

Detailed image data on the gradual change process from simple to complex systems!

Even the process of thinking about practical matters !

Improve your implementation skills by experiencing practical development through live coding!

Java, Spring Boot, MySQL, Redis, Kafka

How can we leverage and develop these tools ?

It doesn't stop at just simple code work,

Applying various architectures, methodologies, and design patterns, designing a structure that is easy to read and maintain

An opportunity to grow further through practical development!

Q&A before class

Q. I am completely new to backend and Spring Boot. Can I still take the course?

A. Since this is not an introductory course, it does not explain the concepts of the backend, the principles of Spring, and how to use it. Therefore, basic knowledge of Spring is a prerequisite, and even if you do not know it well, it is sufficient to have an attitude to learn while studying. Even if it is a very simple bulletin board, it is recommended to those who have created something at least once.


Q. Can I take the course if I don't know MySQL, Redis, Kafka, or Docker?

A. You should know the basic grammar of MySQL and SQL. It is okay if you don't know anything about other contents and tools, because the lectures will explain in detail what they are and how to use them directly.


Q. If I just attend the lectures, will I be able to understand all the content?

A. It may take several times as much time to properly study and fully acquire the content of the lecture. You cannot understand all the content by simply listening to it and following the code once. It is a difficult topic. I recommend that you continuously review and understand the overall structure while going through the lecture. Also, parts that are unrelated to the direction of the lecture or that require direct learning are not explained in the lecture, so they may not feel very friendly. These parts require individual study.


Q. I have backend experience, but I have only used other frameworks, not Spring Boot. Can I still take the course?

A. The concepts are all the same, so you can listen to it. However, since Spring Boot only provides code written in Java, you may need implementation skills that can be directly translated into other languages.


Q. I don’t know any of the keywords mentioned in the lecture introduction.

A. As long as you meet the requirements mentioned as prerequisites, you will learn the theory through lectures and implement it directly with code, so as long as you can follow along, it will be fine.


Q. Do you also cover server deployment and client development?

A. Development and testing are only done locally, and no server deployment or client screen development is done.


Q. Are there any additional costs, such as cloud computing, that are incurred while conducting the lecture?

A. Since development and testing are carried out locally, no separate costs are required.

Recommended for
these people

Who is this course right for?

  • Anyone who wants to know how to handle large amounts of data and traffic

  • People who want to optimize performance

  • People with experience but no traffic experience

  • If you are curious about how to make it, rather than just explaining the theory

  • People who have developed a bulletin board using Spring Boot more than once

  • Someone who knows the basics of databases and how to write simple SQL

Need to know before starting?

  • Java

  • Spring Boot

  • Relational Database Basics

  • SQL Grammar Basics

Hello
This is

1,292

Learners

108

Reviews

187

Answers

4.9

Rating

2

Courses

안녕하세요.

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

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

 

[문의]

Email : kukekyakya@gmail.com

Curriculum

All

71 lectures ∙ (13hr 21min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

99 reviews

4.9

99 reviews

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

    Reviews 7

    Average Rating 5.0

    5

    70% enrolled

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

    • 쿠케
      Instructor

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

  • wisehero님의 프로필 이미지
    wisehero

    Reviews 55

    Average Rating 4.7

    5

    72% enrolled

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

    • 쿠케
      Instructor

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

  • Ian님의 프로필 이미지
    Ian

    Reviews 9

    Average Rating 5.0

    5

    99% enrolled

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

    • 쿠케
      Instructor

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

  • chlghksdyd31님의 프로필 이미지
    chlghksdyd31

    Reviews 10

    Average Rating 4.9

    5

    100% enrolled

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

    • 쿠케
      Instructor

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

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

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

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

    • 쿠케
      Instructor

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

$152.90

kuke's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!