
직접 만들면서 배우는 Git Internals
Jayce
버전 관리 도구의 사실상 표준인 Git 동작을 깊게 학습하고 직접 만들어보세요!
초급
Git, internals, Go
Learn common components of global-scale services through popular papers, books, and articles.
System design
Computer Engineering
Distributed system
Distributed systems that seem complex and difficult,
Did you know that there's actually a pattern to the solution? ⭐
I have no experience with large-scale systems, but the company I want to work for requires knowledge of large-scale systems...
I want to study distributed systems, but where should I start?
I need to build a large-scale system, but I don't know what problems there might be or how to best solve them.
Distributed systems are a truly challenging area. If there are 100 services built on a distributed system, each service will utilize the distributed system with a different strategy tailored to its specific situation. However, the problems to be solved in distributed systems often follow common patterns. Consequently, the methods for solving these problems are also patterned .
In this lecture, we'll explore the challenges faced in developing planet-scale services through renowned papers. We'll explore common problems encountered in large-scale services through renowned books, papers, and articles.
When I was a junior, I once told a senior colleague at the company, "I've never developed a large-scale system before, so I'm not sure if what I'm trying to build is a good approach."
A senior colleague told me, " No one has ever experienced the exact situation you're in. Large-scale systems face different, detailed problems for each company. So we need to study in depth how similar problems were solved to find solutions that work for us. "
I began studying these issues, and through this process, I discovered how studying can help me grow as an engineer. I hope my lectures will help junior developers learn how to study deeply.
In this course, you'll learn about the fundamentals of distributed systems, including replication, sharding, and consistent hashing. You'll then explore real-world examples of how these components are applied.
Section 0 Introduction
This course provides an overview of the course. You can review the course objectives, target audience, main content, and presentation method.
Section 1: Basic Theory of Large-Scale Systems
Learn about CAP theory, a fundamental principle of system design, and distributed storage techniques such as replication, partitioning, and sharding.
Section 2 Components of a Distributed System
Learn about Consistent Hashing, Rate Limiter (throughput control), and Unique ID Generator, which are components frequently encountered when designing distributed systems.
Section 3 Case Study
Based on this paper, we will examine the implementation of distributed systems by global companies such as Amazon, Facebook, and Instagram.
📢 Please check before taking the class!
Junior developers with no experience designing large-scale systems
Developers who want to study the components of distributed systems
Those who want to study complex systems from a macroscopic and theoretical perspective
Backend developer with 1-3 years of experience developing backend systems
📌 Join this lecture!
Q. Is it okay if I don't know much about computer engineering?
Basic CS knowledge is required. It's difficult to say exactly what constitutes basic knowledge, but if you have the necessary knowledge to work as a backend engineer, you should be able to address any remaining gaps through questions and research.
Q. Is there any practical training?
This course is a theoretical one. While developing even a simple distributed system is a truly valuable learning tool, I believe the difficulty of distributed systems stems from failure situations. Because it's difficult to build an environment that simulates unknown network failures, this course doesn't include implementation exercises. Instead, you'll learn how real-world cases have been used to resolve failures.
Q. What can I expect from this course?
I hope this lecture series will serve as a glossary of distributed systems knowledge for junior developers. You'll learn about common and well-known problems and solutions used in distributed systems. You'll be able to recall the lectures when you encounter or design similar problems. You'll also be able to make compelling arguments in interviews asking for system design skills.
Who is this course right for?
Junior Backend Developer
People who want to study distributed systems
Need to know before starting?
Basic network knowledge and terminology
Basic database knowledge and terminology
393
Learners
14
Reviews
4
Answers
4.8
Rating
2
Courses
안녕하세요. 저는 Jayce입니다. 현재 유니콘 스타트업의 플랫폼 엔지니어로 일하고 있습니다.
저는 창업도 하고 대규모 서비스를 위한 개발도 하고 개발자를 위한 플랫폼을 만들기도 하면서 짧은 시간 동안 서비스 개발자라고 불리는 역할도 수행해보고 플랫폼 엔지니어라고 불리는 역할도 수행했습니다. 그 과정에서 "잘하는 Software Engineer는 어떤 특징이 있고 어떻게 해야 그런 사람이 될 수 있구나"를 나름대로 정립할 수 있었습니다.
저는 짧게 말해서 Deep Dive 하는 사람들을 함께 일하는 엔지니어로서 매력적이라고 느낍니다. 단순히 주어진 일을 기계처럼 쳐내는 사람은 어떤 상황에 대한 최선의 선택을 내리기까지 비교적 오랜 시간이 걸리는 것 같아요. 반면 왜 이런 결정을 해야하는지 기술 내면의 공학적인 이유를 파고들며 이해하는 사람들은 금방 다른 의사 결정에서도 공학적으로 설득력 강한 주장을 할 수 있는 사람이 됩니다.
제가 만드는 강의는 새로운 기술을 얕게 익히는 것을 목표로 하지 않습니다. 저는 주니어 개발자들이 훌륭한 팀 동료, 매력적인 개발자, 단단한 기술자가 될 수 있는 방법을 알려주고 싶습니다. 더욱 매력있는 엔지니어가 되기 위해 조금 더 깊은 내용을 공부해보고 싶은 사람들에게 적합한 강의를 제 최선의 노력으로 만들어보겠습니다. 🙂
All
14 lectures ∙ (2hr 10min)
Course Materials:
All
13 reviews
4.8
13 reviews
Reviews 13
∙
Average Rating 5.0
Reviews 1
∙
Average Rating 5.0
5
대규모 트래픽이나 거대한 시스템 설계 이론에 관심이 있어서 수강했는데 전체적으로 좋았습니다. 관련 분야에 관심이 있으신 분은 수강하시면 좋을 것 같아요. '이러한 개념과 이론이 있고, 아마존 같은 큰 회사에서 이런식으로 설계했구나' 정도로 간략하게 알아보는 형식으로 강의가 구성이 되어있고, 수강 후에 개인적으로 대규모 트래픽과 대용량 데이터 처리 그리고 시스템 설계 관련해서 더 학습해야 할 듯 합니다. 전체적으로 말씀하시는 속도가 조금 빠르고, 강의 속도가 조금 빠른 편입니다. 깊게 파고들지는 않습니다. 강의 자막이 있기는 한데 PDF 오타가 있는 것 같더라구요. 결론은 추천합니다~
Reviews 7
∙
Average Rating 5.0
Reviews 43
∙
Average Rating 4.6
Reviews 9
∙
Average Rating 5.0
$30.80
Check out other courses by the instructor!
Explore other courses in the same field!