강의

멘토링

커뮤니티

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

1,451 learners

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

Reviews from Early Learners

What you will gain after the course

  • 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

Real-world development know-how for large-scale systems from IT company developers!

This course explains the large-scale systems technical knowledge and methodologies needed to build them, and creates them by directly writing code with Spring Boot.

We deliver practical development expertise gained from supporting large-scale systems at IT companies and real-world development know-how.

The technology selection and consideration process is described in detail, and we examine the process of creating the design along with hundreds of image materials.

We recommend this for the following people.

  • Someone curious about how to handle large-scale data and traffic


  • People curious about performance optimization

  • Someone with experience but no traffic handling experience

  • Someone who is curious about how to actually build things, rather than just having simple theoretical explanations

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

  • Someone who knows database fundamentals and how to write simple SQL


Prerequisites

  • Spring Boot

It does not cover the operating principles or usage methods of Spring Boot.

  • Java

Although we use Java 21, we don't use complex modern syntax, so you don't necessarily need to know about version 21. It's sufficient if you've learned Java 8 or higher syntax.

  • Relational Database and SQL Basic Grammar

Basic knowledge of relational databases and SQL basic syntax will not be explained. It's sufficient if you can write CREATE, SELECT, UPDATE, DELETE syntax.

Redis and Kafka are explained in the course, so prior knowledge is not required.

  • Computer Science Knowledge

Having a foundation in CS knowledge can make understanding easier, but it is absolutely not a requirement.

Tech 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


This course is not tied to a specific version, but we recommend using the same environment for smooth practice sessions.

Even if you use other languages or frameworks, the concepts and design approaches are the same. If you can directly consider and develop these aspects, you can learn even without using Spring Boot.

Although it doesn't explain JPA, it covers it at a basic level, so no separate knowledge is required.

You will learn the following content.

  • Large-Scale System Design

  • Microservice Architecture

  • Event-Driven Architecture

  • Understanding Distributed Systems

  • Methods for Handling Concurrency Issues


  • MySQL, Redis, Kafka Understanding and Practical Application Strategies

  • Database Index Utilization for Large-Scale Data Query Optimization

  • Complex Hierarchical Table Design and Optimization

  • Methods to Ensure Data Consistency Even Under High Write Traffic


  • Event Stream Processing and Building Asynchronous Applications

  • Building a System to Prevent Event Loss


  • Methodologies that can be utilized in large-scale traffic and complex architectures

  • Cache optimization strategies that can be applied 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've organized the keywords that can be learned from the lecture.

It's natural that you don't know these yet, but you'll learn and implement these concepts through the lectures.

These are concepts frequently encountered in practical work, and I explain in detail the necessity of each concept and the design process.

From simple systems to complex systems, detailed image materials about the gradual transformation process!

Practical work and the decision-making process included!

Improve your implementation skills by experiencing real-world development through live coding!

Java, Spring Boot, MySQL, Redis, Kafka

How can we utilize and develop these tools?

Not just limited to simple coding tasks,

Applying various architectures, methodologies, and design patterns while designing structures that are easy to read and maintain

An opportunity to grow even further through hands-on development!

Pre-Enrollment Q&A

Q. I'm completely new to backend and Spring Boot - can I take this course?

A. This is not a beginner course, so it doesn't explain backend concepts or Spring principles and usage methods. Therefore, basic knowledge of Spring is a prerequisite, but even if you don't know it well, having the attitude to learn as you go is sufficient. I recommend this course to those who have built something at least once, even if it was just a very simple bulletin board.


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

A. You need to know MySQL and basic SQL syntax. For anything beyond that and other tools, it's okay if you don't know them since the course will explain in detail what they are and how to use them directly.


Q. If I just complete all the lectures, will I be able to understand everything?

A. To properly learn and fully master the content of the lectures, it may take several times more effort. You cannot understand everything just by listening with your eyes and typing the code once. It's that challenging of a topic. I recommend continuously reviewing and grasping the overall structure while progressing through the lectures. Also, parts that are unrelated to the lecture's direction or that I judge require direct learning are not explained in the lectures, so it may not feel particularly kind. These parts require individual study.


Q. I have backend experience, but I've only used other frameworks, not Spring Boot. Can I take this course?

A. The concepts are all the same, so it's fine to take the course. However, since only Java code written in Spring Boot is provided, you may need the implementation skills to directly port it to other languages.


Q. I don't understand any of the keywords mentioned in the course introduction.

A. If you meet only the prerequisites mentioned, you'll be fine as long as you can follow along well, since you'll learn the theory through lectures and implement it directly with code.


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

A. Development and testing will only be conducted locally, with no server deployment or client screen development.


Q. Are there any additional costs like cloud services while conducting the lectures?

A. Since development and testing are conducted only locally, no additional 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,768

Learners

188

Reviews

233

Answers

4.9

Rating

3

Courses

안녕하세요.

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

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

 

[문의]

Email : kukekyakya@gmail.com

Curriculum

All

71 lectures ∙ (13hr 21min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

166 reviews

4.9

166 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 56

    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 10

    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 11

    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 3

    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!!

$152.90

kuke's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!