初級
チャプター 10つ · 7時間 59分
日本語 · 英語 · 韓国語|オーディオ 韓国語

複数のインフラストラクチャ要素の使用
このクラスでは 2点の作品を作ります。

作品1点につき制作にかかる時間の目安は4 時間から 5 時間です。

  • 継続的自動導入システム

  • 信頼性が高く高速なバックエンドシステム

こんなことを学びます

Nginx の無停止デプロイメント

Nginxを通じて、スケールアウトで中断のないデプロイシステムを構築します。

Git は Jenkins のデプロイを自動化します

実践的な Git と Jenkins を使ってデプロイを自動化する方法を学びましょう。

メッセージキュー

RabbitMQ を使用してリクエストを保存し、サーバーリソースと同じくらい処理する方法を学びましょう。

エラスティックサーチによる高速検索

検索エンジンであるESを使用して、DBよりもはるかに高速に検索する方法を学びましょう。

大手IT企業からのバックエンド開発者の求人情報を見たことがありますか?

IT 대기업들의 백엔드 개발자 채용공고

📍 上記の下線が引かれた部分を学習できるようにカリキュラムを構成しました。

一見難しそうですが、やっぱり学んでみると、そういうところで働ける人間になると言えますよね?

代表として紹介された求人情報は1つだけですが、カリキュラムに含まれる内容は大企業のIT開発者の求人情報と共通です。つまり、彼らは実際にそれを頻繁に使用しているということです。

このクラスを受講すれば、大企業やユニコーンスタートアップで働くバックエンド開発者に一歩近づくきっかけになります。



実際には、バックエンドをどのように構成しますか?

私も、開発を始めたとき、そのことについてたくさん疑問を抱いていました。

📍これらは私が仕事をする前に気になっていた質問です。

  • Git は実際にどのように使用していますか?コミットとプッシュの方法しかわかりませんが...
  • コードが変更されたので、これを新しいサーバーにアップロードする必要がありますが、サーバーの実行中にリクエストを受け取ることができません。これについてどうしたらいいですか?
  • データベースにLIKEを使った検索を実装しましたが、データの蓄積により処理速度が遅くなりすぎました。DB以外に、検索に適したリポジトリはありますか?
  • アプリケーションをサーバーに配置して、アプリケーションが受信できるトラフィック量をテストする方法を教えてください。
  • AWS や GCP などのクラウドサービスにサービスをアップロードしたいです。どのように設定すればよいですか?


これらの質問がある場合は、必ずこのクラスを受講してください。きっと後悔はしないでしょう。



私はカカオ開発者のフーです。バックエンドプラクティスの初心者として一緒に仕事をします。

📍現在、カカオはスパムと悪用の分析と対応システムの開発に取り組んでいます。

カカオに入社する前、学部生の時に初めてウェブサービスを作成したとき、本当に興味がありました。」カカオやネイバーのような大規模IT企業はどのようにバックエンドを設定しているのでしょうか?」 そうだった。

なぜ好奇心が強いのか不思議ではありませんよね?カカオとネイバーはユーザーの多い会社ですが、その秘密は何ですか トラブルフリーサービスこれからも稼働するのだろうかと思っていました。


また、他に質問がある場合は、 「複数の人が Git を使ってプロジェクトを開発している場合、マージ時にコンフリクト (コンフリクト) が発生しないようにするにはどうすればよいでしょうか?」 そうだった。

まだまだ先は長いですが、試行錯誤を重ねて、当時気になっていた疑問がいくつか理解できたと思います。

このクラスでは、私が学部生のときに持っていた質問への回答や、ほとんどのバックエンド環境で使用されるシステム構成に関するその他のことを扱います。

開発を始めたばかりの方には、バックエンドに関する質問や懸念事項がたくさんある場合に役立つ実践的なクラスを用意しています。



バックエンドの練習をうまくこなすには、何を知っておく必要がありますか?

📍 4つのことだけをすっきり覚えましょう。

  1. アプリケーションのパフォーマンスをテストして改善する方法
  2. サーバーを分散して高トラフィックに耐える方法
  3. 仕事でうまくコラボレーションしたいときの Git の使い方
  4. 大量のトラフィックを処理するようにシステムを構成する方法


1) アプリケーションのパフォーマンスをテストして改善する方法

📍 パフォーマンスチューニングの始まりは、現在のパフォーマンスをテストすることですよね?

初めて作成したアプリケーションのパフォーマンスを確認してから、改善のプロセスを進めます。これは、アプリケーションが向上するのを見て、スキルが向上していると感じる最良の方法です。


2) サーバーを分散して大量のトラフィックに耐える方法

📍 NginxとJenkinsで良いサーバーを構築します。

言葉は難しそうに見えるかもしれませんが、簡単に考えてみると 大量のトラフィックに耐えられるようにサーバーを分散させる必要があるそれは物語です。

新しいバージョンを中断することなく配信でき、大量のトラフィックを受信できるシステムの始まりは何でしょうか。 Nginx ロードバランシング (*) そして スケールアウト (**) それは。まず、ユーザーリクエストを複数のサーバーに分散します。

これで Jenkins デプロイメントの自動化それまでやってみましょう。バックエンド作業の回復力が高まります。


[📚 待ってください!用語の説明!】

(*) 負荷分散 (負荷分散) : サーバーが受け取った負荷を複数のサーバーに分散する

(**) スケールアウト (スケールアウト) :スケールアップ(スケールアップ)によって接続サーバー自体のパフォーマンスが向上する場合、接続サーバーの数を増やして水平にスケールアップするとスケールアウトすることになります。


3) 仕事でうまくコラボレーションしたいときのGitの使い方

📍 多くの人が関わるプロジェクトはどのように管理すべきか?

分岐してGitにコミットし、Githubにプッシュしてみました。複数の人が同じプロジェクトを開発するコラボレーション環境ではどうすればいいですか?

コラボレーション環境における分岐戦略とよく使われる Git 機能について学んでください。Git を初めて使用する場合でも、心配はいりません。基本を素早く簡単に説明します。


4) 大規模なトラフィックを処理できるシステムの構成方法

📍 より多くのトラフィックを処理するノウハウ!

Nginx で負荷分散を行うと、受信したリクエストは RabbitMQ に保存され、リソースが許す限り処理されます。

これにより、サーバーとデータベースが単に 1 対 1 で接続されている場合よりもはるかに多くのトラフィックを処理できます。また、検索エンジンのElasticsearch (ES) を使えば、さらに速く検索できるというのが原則です。

この種の大規模なトラフィックを処理するようにシステムを構成する方法を知っていれば、大企業やユニコーンスタートアップのバックエンド開発者に一歩近づくチャンスになります。



バックエンドワーククラスの最終目標は明確です。

📍 さまざまなインフラ要素を選択してサービスに適したシステムを構築しよう!

私がクラスに含めたRabbitMQは、KafkaやPulsarなどの他のメッセージキュー実装に置き換えることができます。

しかし、 その中で 絶対的な優位性を持つテクノロジーは多くありません。一方が絶対的な優位性を持っていたら、他の技術はすでに淘汰されていたでしょう。 つまり、テクノロジーを扱う際には選択肢があります。

このクラスで得られるものは2つあります。

  1. サービスのどの部分にどのテクノロジーを適用すべきか?
  2. このテクノロジーを実装した多くのオプションの中で、私たちのサービスにとって正しい選択はどれですか?

上記の二つを考える力を身につけていただければと思います。



講座を受ける際の注意点があります。

クラスで扱うさまざまなテクニックにはそれぞれ豊富なドキュメントがあり、紹介した機能以外にもさまざまな機能があります。

というわけで、今回紹介する機能は本当に関連する技術です。 ごく一部のみそれは。そのせいで授業を受けたんですが、 次のことを考えないように注意してください。

  • Nginxをマスターしました!
  • 必要なのは 2 つのデータベースと Elasticsearch だけなら、必要なストレージをすべてカバーできますよね?
  • RabbitMQ にメッセージを送信すれば、メッセージを「絶対に」失う心配はありませんよね?

最も基本的ですぐに使える内容が授業で取り上げられるので、これを学んだ後は、それを実践に応用し、さらに深く勉強してスキルを磨くことをおすすめします。



クラスラボ環境

📍Windows 環境が必要です。その他の追加プログラムは次のとおりです。

  • Windows 10 x64(このコースを受講する人の中には、もっと多くのウィンドウズユーザーがいるでしょう。ただし、macOSを使用していても、コースを履修するのに問題はありません。とにかくサーバーに置いて作業しているだけです。)
  • IntelliJ IDEAコミュニティ(コミュニティバージョンとして作成されており、無料バージョンです。)
  • JDK8(現在の標準では、これが最も一般的に使用されているJavaバージョンだと思いました。ただし、Java以外の言語で練習していても問題ありません。)
  • Google クラウドプラットフォーム
  • ドッカーデスクトップ
  • ジェンキンス
  • Nginx
  • ギット、ギットハブ、ソースツリー
  • データベース
  • ラビットMQ
  • エラスティックサーチ

実際のバックエンド練習への近道!

クラスで会いましょう:)

カリキュラム

クリエイター紹介

Foo

Foo

はじめまして、カカオ開発者のフー。

📚クリエイター Foo の歴史

  • 2017 京畿大学コンバージェンスセキュリティ学科
  • 2019年に韓国陸軍のROTC通信担当官として軍に勤務した後
  • 2019 年 N 社セッションに関連する脆弱性レポート
  • 2019 ~ 開発関連のユーチューブチャンネル運営
  • 2019 ~ カカオエンタープライズスパム悪用コンテンツ収集/監視/処理システム開発


📍 Foorogrammerというニックネームでさまざまな知識を伝えています。

就職前に初めてWebサービスを作成したので 「大規模サービスはどうしてこれほど多くのトラフィックを獲得できるのか?」 そんな質問がありました。

このコースを受講したいと思っている皆さんは、私と同じような悩みを抱えていると思います。もちろん、サービスに必要なすべての要素を知っているわけではなく、知っていても、それらすべてをコースに含めることはできません。

しかし、バックエンド実技講座に含まれる内容だけを学べば、サービスに適した安定したインフラを構築できるようになります!

実際のバックエンド練習への近道!

クラスで会いましょう:)

GitHub

GitHub

このクラスに似ているおすすめクラス

ウェブ開発の基礎から React を使った制作まで:: To-Do、メモアプリを作るWeb · フロントエンド  |  kidevelop
カスタマーセンター[受付時間] 平日10:00~17:00
CLASS101JAPAN株式会社
japan@101.inc