
직접 만들면서 배우는 Git Internals
Jayce
버전 관리 도구의 사실상 표준인 Git 동작을 깊게 학습하고 직접 만들어보세요!
Basic
Git, internals, Go
システム設計
コンピュータ工学
分散システム
複雑で難しく見える分散システム、
実際、回避策にパターンがあることをご存知ですか? ⭐
大規模なシステムを経験したことがないのですが、離職したい会社は大規模なシステム知識を求めています。
分散システムを勉強したいのですが、どこから始めるべきですか?
大規模なシステムを作る必要がありますが、どのような問題があるのか、どのように解決するのが良いのかわかりません。
分散システムは本当に難しい領域です。分散システムで構成された100のサービスがある場合、各サービスは状況に応じてすべて異なる戦略で分散システムを利用しています。しかし、分散システムで解決しなければならない問題は一般的なパターンに従うことが多いです。したがって、問題を解決する方法もパターン化されています。
講義ではPlanet-scaleのサービスがどんな悩みをしながら開発されたのか有名な論文を通じて勉強します。大規模なサービスで出会うことができる共通の問題を、有名な本、論文、記事で学びます。
私がジュニアの時、会社のシニアの方に「私が大規模なシステムを開発したことがないので、今作ろうとするのが良い方法なのかよくわかりません。」という話をしたことがあります。
シニアの方は私に、「誰も現在の状況を正確に経験したことはありません。
私はこのような問題を勉強し始め、この過程でどのように勉強すればエンジニアとして成長できることが分かりました。私の講義を通じてジュニア開発者の皆さんが深く勉強する方法を知ることができるようになればいいですね。
レッスンでは、分散システムの基本的な内容であるReplication、Sharding、Consistent Hashingなどのコンポーネントを学びます。その後、学んだコンポーネントが適用された有名な実際のケースを学びます。
セクション 0 Introduction
講義全般をご紹介します。講義目標と受講対象、講義の主な内容、進行状況を確認できます。
セクション1 大規模システム基本理論
システム設計の帯電剤であるCAP理論と分散ストレージ技術であるレプリケーション、パーティショニング、シャーディングを学習します。
セクション2 分散システムのコンポーネント
分散システムの設計時によく接するコンポーネントであるConsistent Hashing、Rate Limiter(処理率制御)、Unique ID Generatorを学習します。
セクション3 Case Study
論文に基づいて、グローバル企業であるAmazon、Facebook、Instagramの分散システムの実装例を見ていきます。
📢受講前に確認してください!
大規模なシステム設計を経験したことのないジュニア開発者
分散システムのコンポーネントを勉強したい開発者
複雑なシステムを巨視的かつ理論的に勉強したい方
バックエンドシステムを開発する1〜3年目のバックエンド開発者
📌この講義と一緒に!
Q. コンピュータ工学をよく知らなくても大丈夫でしょうか?
基本的なCS知識が必要です。ある程度を基本と言うのは難しいですが、Backendエンジニアで働ける程度なら、残りの不足な知識は質問と検索で解決できると予想されます。
Q. 実習はありますか?
この講義は理論講義です。分散システムを簡単に開発してみるのは本当に有意義な勉強方法ですが、分散システムが難しい理由は障害状況のためだと思います。未知のネットワーク障害をシミュレートしてみる環境まで構築することは容易ではないため、この講義では実装実習はありません。代わりに、実際のケースがどのように障害を解決したかを学ぶことができます。
Q. この講義を聞くとどんなことが期待できますか?
このレッスンシリーズは、ジュニア開発者が分散システム知識の用語集のように使用されることを願っています。分散システムで使用される本当に一般的で有名な問題と解決策をこの講義から習得し、同様の問題に遭遇または解決するように設計することがあるときに、この講義の内容を思い出すことができます。あるいは、システム設計を求める面接でも説得力のある主張ができます。
学習対象は
誰でしょう?
ジュニアバックエンド開発者
分散システムを勉強したい人
前提知識、
必要でしょうか?
基本的なネットワーク知識と用語
基本データベースの知識と用語
388
受講生
14
受講レビュー
4
回答
4.8
講座評価
2
講座
안녕하세요. 저는 Jayce입니다. 현재 유니콘 스타트업의 플랫폼 엔지니어로 일하고 있습니다.
저는 창업도 하고 대규모 서비스를 위한 개발도 하고 개발자를 위한 플랫폼을 만들기도 하면서 짧은 시간 동안 서비스 개발자라고 불리는 역할도 수행해보고 플랫폼 엔지니어라고 불리는 역할도 수행했습니다. 그 과정에서 "잘하는 Software Engineer는 어떤 특징이 있고 어떻게 해야 그런 사람이 될 수 있구나"를 나름대로 정립할 수 있었습니다.
저는 짧게 말해서 Deep Dive 하는 사람들을 함께 일하는 엔지니어로서 매력적이라고 느낍니다. 단순히 주어진 일을 기계처럼 쳐내는 사람은 어떤 상황에 대한 최선의 선택을 내리기까지 비교적 오랜 시간이 걸리는 것 같아요. 반면 왜 이런 결정을 해야하는지 기술 내면의 공학적인 이유를 파고들며 이해하는 사람들은 금방 다른 의사 결정에서도 공학적으로 설득력 강한 주장을 할 수 있는 사람이 됩니다.
제가 만드는 강의는 새로운 기술을 얕게 익히는 것을 목표로 하지 않습니다. 저는 주니어 개발자들이 훌륭한 팀 동료, 매력적인 개발자, 단단한 기술자가 될 수 있는 방법을 알려주고 싶습니다. 더욱 매력있는 엔지니어가 되기 위해 조금 더 깊은 내용을 공부해보고 싶은 사람들에게 적합한 강의를 제 최선의 노력으로 만들어보겠습니다. 🙂
全体
14件 ∙ (2時間 10分)
講座資料(こうぎしりょう):
全体
13件
4.8
13件の受講レビュー
受講レビュー 13
∙
平均評価 5.0
受講レビュー 1
∙
平均評価 5.0
5
대규모 트래픽이나 거대한 시스템 설계 이론에 관심이 있어서 수강했는데 전체적으로 좋았습니다. 관련 분야에 관심이 있으신 분은 수강하시면 좋을 것 같아요. '이러한 개념과 이론이 있고, 아마존 같은 큰 회사에서 이런식으로 설계했구나' 정도로 간략하게 알아보는 형식으로 강의가 구성이 되어있고, 수강 후에 개인적으로 대규모 트래픽과 대용량 데이터 처리 그리고 시스템 설계 관련해서 더 학습해야 할 듯 합니다. 전체적으로 말씀하시는 속도가 조금 빠르고, 강의 속도가 조금 빠른 편입니다. 깊게 파고들지는 않습니다. 강의 자막이 있기는 한데 PDF 오타가 있는 것 같더라구요. 결론은 추천합니다~
受講レビュー 6
∙
平均評価 5.0
受講レビュー 41
∙
平均評価 4.6
受講レビュー 8
∙
平均評価 5.0
¥4,685
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!