강의

멘토링

로드맵

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) 104 reviews

1,243 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,348

Learners

114

Reviews

189

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

104 reviews

4.9

104 reviews

  • syh8088님의 프로필 이미지
    syh8088

    Reviews 7

    Average Rating 5.0

    5

    70% enrolled

    I shouldn't have judged the content of the lecture just by looking at the list of lectures. When I actually listened to the lecture, it was exactly what I wanted, starting with the index algorithm, how to use an optimized index, and how to safely publish event messages in a sale-out environment and a DB sharding structure environment. It was a really good lecture with many tips based on large-scale traffic, beyond simply building a service. Thanks to this, I learned a lot. Please continue to provide such good lectures in the future :)

    • kuke
      Instructor

      Lina, thank you so much for your kind review! I was worried about how to convey the content to the students, and I prepared for a long time, but I am grateful and proud that you were able to follow the difficult lectures!! I hope you have a happy new year, and I hope you do well in the remaining lectures! (The second half will be quite interesting too!)

  • wisehero님의 프로필 이미지
    wisehero

    Reviews 55

    Average Rating 4.7

    5

    72% enrolled

    This lecture is the best. It sets a standard for what intermediate to advanced level lectures on Inflearn should be. I am a junior developer with just under a year of experience. Within the company, I have only been developing or maintaining admin systems. As everyone knows, admin systems don't experience high traffic and their usage is limited. Since the planning isn't directly for end-users, even internal employees often plan and develop in a haphazard manner. In this environment, it has been challenging to find tasks that offer room for growth. Then I encountered this lecture, and I gained the tools to at least 'think' about how to approach the design and code for upcoming projects. In many of the lectures I've taken recently, the Q&A sections are often left to Inflearn interns and essentially abandoned by the instructors. However, Kuke actively responds to Q&A even on weekends. As I mentioned in the preface, this lecture is the best among intermediate to advanced level courses. I believe it sets a standard and provides a guideline for what intermediate to advanced lectures should be. This could serve as a good reference for those sharing knowledge on Inflearn or those operating the Inflearn service. For those who are in a restrictive and stifling environment, but still have the desire to improve their skills for more challenging tasks, I recommend taking this course without hesitation. The only downside is that while code is provided, it's hard to follow the flow because there isn't a GitHub repository with commit history or code separated by sections. It would be great if this could be improved. Thank you for the great lecture. It's been a long time since I've encountered a lecture that feels like a real class.

    • kuke
      Instructor

      Wisehero, thank you for the kind review! I'm so grateful that you took the time to write such a thoughtful review. 😊😊😊 While creating the course, I wondered, "Is it okay to make it this difficult?" Even if students couldn't digest all the content, I thought it would be a success if I could at least show them what they didn't know. Fortunately, many students seem to be satisfied with the difficulty level, and I'm proud to hear that you, wisehero, are also setting your future direction well! I'm glad you were satisfied with the Q&A! I figured that passionate students would naturally have questions while taking the course. I'm trying my best to answer them as a way of reciprocating that passion. 😊😊😊 By seeing various questions, I also learn a lot by thinking about what was lacking in the course content or what I could supplement. I especially remember wisehero's wonderful ability to help solve problems in other people's questions!! I fully understand your disappointment regarding the code separation..! If I could write perfect, error-free code from the beginning, I could separate it neatly, but that's not as easy as it sounds..! Since the scope of the course is vast and the content is difficult, there are times when I only notice parts that need to be modified later on. In this case, if it is divided into small sections, it is too difficult to modify the previous content, so there are parts that I did not separate out of annoyance..! I'm sorry about this and ask for your understanding. 😭😭 I'll think a bit more about how to improve it! The course is valuable because the best, most passionate students take it!! Thank you for taking the course so well!

  • heekng님의 프로필 이미지
    heekng

    Reviews 9

    Average Rating 5.0

    5

    99% enrolled

    I was initially hesitant because of the price, but I enjoyed completing the course as it explained a more extensive range of content than I expected, in a well-structured stream of consciousness. I believe most backend developers will gain a lot from it, and it will be of great help in interviews as well. Thank you!

    • kuke
      Instructor

      Ian, thank you for the great review!! I'm so grateful and happy that you enjoyed completing the course!! I hope you prepare well for your interview!!

  • chlghksdyd313144님의 프로필 이미지
    chlghksdyd313144

    Reviews 10

    Average Rating 4.9

    5

    100% enrolled

    I enjoyed the lecture. I was curious about system design and performance improvement methods, and I learned a lot from the lecture. The price was a bit high, so I hesitated before purchasing, but I think I learned more than the price was worth. Thank you, and please continue to provide good lectures in the future.

    • kuke
      Instructor

      chlghksdyd31, thank you for the kind review!! I'm so proud and happy that you learned well!! You worked hard to complete the course!!

  • fruitworldplanet3134님의 프로필 이미지
    fruitworldplanet3134

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

    I enjoyed the good lecture. It was an experience that expanded my thinking in many ways. In particular, since I am not familiar with Kafka, the Transactional Messaging technique using Kafka was something I had never thought of before, so it was very difficult, but it was an interesting lecture!

    • kuke
      Instructor

      Thank you for your good review, Hyun-jin! Transactional Messaging is a really difficult topic, so I'm glad you found it interesting. 😊😊😊 I'm glad you worked hard to complete it, and I hope you have a happy new year!!

Limited time deal

$115.50

24%

$152.90

kuke's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!