강의

멘토링

커뮤니티

Programming

/

Back-end

Designing Scalable Systems

Modern digital products and services start from small ideas and grow to be loved by millions of users. The key to making this possible is scalable system design. In this course, you will learn the design principles and implementation methods for growing from small to large systems.

(4.9) 17 reviews

192 learners

Level Basic

Course period Unlimited

  • jykmww1219
  • SpringRunner
시스템설계
시스템설계
이론 중심
이론 중심
software-design
software-design
Architecture
Architecture
시스템설계
시스템설계
이론 중심
이론 중심
software-design
software-design
Architecture
Architecture

Reviews from Early Learners

Reviews from Early Learners

4.9

5.0

vvlfmald

100% enrolled

I applied and watched it all at once! This course is introduced as a course for beginners, but I think it's content that will be helpful to everyone in the IT industry! When you're running towards your goal of studying, getting a job, or changing jobs, you can easily get caught up in the 'trees' and not see the 'forest'. (That's what happened to me...😭^😭) Even before taking the course, I had heard of and knew concepts like 'search engine' and 'scale out'. However, I didn't systematically organize and understand why they were needed and how they developed after implementation. So if I had explained the content covered in this course, I would have ended up focusing on specific concepts (trees) that I knew the best. However, this course allows you to naturally understand how these concepts are connected and expanded into a huge service that handles traffic from all over the world!! Thanks to this, I was able to look at service design from a broader perspective! The course progresses in a way that makes it feel like one thing leads to another, so it was so fun that I watched it all at once, but I think I'll be checking it out often in the future!

5.0

Jacky

100% enrolled

I had the chance to hear this content in another lecture by the instructor, and I enjoyed it so much that I thought I had to listen to it again when it came out as a lecture. I always study the details, so I wanted to know the big picture, and this is a good lecture that helps me understand what part of the project I am involved in and how it is related to other parts. Having a perspective that looks at the whole picture from a distance makes me feel like my vision has become much wider.

5.0

코크

100% enrolled

It was a very good lecture.

What you will gain after the course

  • Learn the basic principles of scalable system design for growing from small to large services.

  • Learn about step-by-step design strategies and implementation plans that consider availability, performance, and scalability.

  • Learn about the roles and collaboration of platform, server, and client engineering.

Designing scalable systems; from small ideas to large-scale services-

Modern digital products and services start from small ideas and grow into something loved by millions of users. The key to making this possible is scalable system design. Scalability is the ability of a system to respond to the growth of users and the explosion of data.

This lecture will be centered around the project #POTD (Photo of the Day) . POTD is a simple and intuitive app that makes our stories special with one photo a day. Users take a photo, upload it with a short text, and then interact with other users, like it, and leave comments. It also started with the idea of using hashtags to easily find photos of people with similar interests.

However, this seemingly simple app also presents many challenges to system operation as the number of users gradually increases. In this lecture, you will learn the process of designing and launching an MVP (Minimum Viable Product) by applying the Outside-In and API-First Development Approach through the POTD project, and then expanding the system by solving various problems that actually occur when the number of users and traffic increases.

Key learnings that will be covered in the POTD project include:

  • Starting with a minimum viable product, you learn to design simple, efficient systems that focus on initial user requirements.

  • Learn how to scale your servers horizontally to accommodate user growth and how to effectively distribute traffic with a load balancer.

  • Learn how to process large amounts of data reliably and quickly using database clustering, replication, and caching strategies.

  • To overcome the limitations of database search, we introduce a search engine and a message queue to implement efficient search and asynchronous processing.

  • We use machine learning to analyze user data and design personalized recommendation systems.

  • Learn how to provide fast and reliable services to global users through CDN and multi-data centers.

Software development is not just about making systems work, it’s about making them maintain value and expandable in a changing environment. In this course, we’ll take the first step toward designing scalable and flexible systems. 🚀

Learn about these things

Scalable system design

Learn step-by-step the process of designing a global service starting from MVP through the POTD project. Design a system with performance and scalability by utilizing key technologies such as load balancing, database clustering, search engine, caching, and CDN.

Software design for scalability

You will learn how to solve session management problems that arise in horizontal scaling, design software for flexibility, and learn about adaptive architectures that can maintain the value of a system in changing environments.

Things to note before taking the class

Note

  • This course is a theory-oriented course with no practical exercises, and focuses primarily on introducing and understanding concepts and strategies.

  • This course provides an easy-to-understand introduction to the concepts for beginners in scalable system design. However, in-depth study of each technology is required separately.

  • This lecture was created using AI voice technology for more accurate delivery.


Recommended for
these people

Who is this course right for?

  • If you are familiar with programming but not with system architecture design

  • Those who do not have practical experience but want to understand the overall structure of software engineering and the principles of system design

  • Those who want to learn about the process of creating and operating large-scale services from small ideas

Need to know before starting?

  • You need experience with one or more programming languages (Java, Python, etc.).

  • You need to understand the basic concepts of computer science (CS) such as databases, networks, and algorithms.

  • You need a basic understanding of how HTTP and web applications work.

Hello
This is

1,475

Learners

47

Reviews

4.9

Rating

3

Courses

JYK management

“Jazz Your Knowledge 🆙

“당신의 지식을 더 신나게, 더 매력적으로 만들어라“

——

"당신의 아이디어가 세상을 바꿀 수 있습니다. 우리는 그 과정을 함께합니다."

Curriculum

All

16 lectures ∙ (1hr 19min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

17 reviews

4.9

17 reviews

  • pilming님의 프로필 이미지
    pilming

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

    I applied and watched it all at once! This course is introduced as a course for beginners, but I think it's content that will be helpful to everyone in the IT industry! When you're running towards your goal of studying, getting a job, or changing jobs, you can easily get caught up in the 'trees' and not see the 'forest'. (That's what happened to me...😭^😭) Even before taking the course, I had heard of and knew concepts like 'search engine' and 'scale out'. However, I didn't systematically organize and understand why they were needed and how they developed after implementation. So if I had explained the content covered in this course, I would have ended up focusing on specific concepts (trees) that I knew the best. However, this course allows you to naturally understand how these concepts are connected and expanded into a huge service that handles traffic from all over the world!! Thanks to this, I was able to look at service design from a broader perspective! The course progresses in a way that makes it feel like one thing leads to another, so it was so fun that I watched it all at once, but I think I'll be checking it out often in the future!

    • jacky님의 프로필 이미지
      jacky

      Reviews 1

      Average Rating 5.0

      5

      100% enrolled

      I had the chance to hear this content in another lecture by the instructor, and I enjoyed it so much that I thought I had to listen to it again when it came out as a lecture. I always study the details, so I wanted to know the big picture, and this is a good lecture that helps me understand what part of the project I am involved in and how it is related to other parts. Having a perspective that looks at the whole picture from a distance makes me feel like my vision has become much wider.

      • cokes님의 프로필 이미지
        cokes

        Reviews 19

        Average Rating 5.0

        Edited

        5

        100% enrolled

        It was a very good lecture.

        • juhojeong4641님의 프로필 이미지
          juhojeong4641

          Reviews 12

          Average Rating 5.0

          5

          31% enrolled

          • rlawns34672614님의 프로필 이미지
            rlawns34672614

            Reviews 3

            Average Rating 5.0

            5

            100% enrolled

            $8.80

            jykmww1219's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!