Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Programming

/

Back-end

バックエンドアプリケーションのパフォーマンスをテストする

このレッスンでは、作成したバックエンドアプリケーションのAPIをパフォーマンステストして改善するための基礎知識を得ることができます。

  • foo
3시간 만에 완강할 수 있는 강의 ⏰
artillery
성능
stress-testing

学習した受講者のレビュー

こんなことが学べます

  • APIパフォーマンステスト

  • 性能試験に必要なCS知識

APIは作成しましたが、私が作成したAPIのパフォーマンスはどうか知っていますか?

私が実務で開発する前と後に大きく変わった部分を考えてみると、私が作ったアプリケーションの性能を測定し、パフォーマンスを改善する部分が変わったようです。単独でアプリケーションを作成すると、ユーザーが少ないか単独で使用するため、ほとんどのパフォーマンスが問題になりませんでした。しかし、実務では多くのデータを扱い、多くのトラフィックが発生するため、パフォーマンステストは不可欠でした。

機能がうまく動作しても悪いパフォーマンスを示すアプリケーションは、最終的にシステム全体の障害点になることもあり、それ自体でもユーザーにサービスの悪い経験を作ることになります。リスト一つ浮かぶのに数十秒ずつ浮かぶサービスを使いたくないからです。

このレッスンでは、これが起こらないようにバックエンドアプリケーションをパフォーマンステストする方法について説明します。パフォーマンステストの背景知識から始めて、Artilleryというパフォーマンステストツールを使って実際のパフォーマンステストを進め、簡単なパフォーマンス改善の経験をお見せします。

実際、パフォーマンステスト後にパフォーマンスを改善することは決して簡単ではありません。アプリケーションロジックを効率的に置き換える必要がある場合、データベースクエリをチューニングする必要がある場合、またはシステム設計自体を変更する必要があります。しかし、これらの改善はすべてパフォーマンスを測定することから始まります。このレッスンで、まずバックエンドアプリケーションのパフォーマンスを測定する方法を学び、改善する方法を一つずつ記入してください。パフォーマンス改善に関する内容も今後講義で製作いたします。

講義で作成するパフォーマンステストスクリプト

性能テスト結果の例

このようなことを学びます。

パフォーマンステストに必要な背景知識

パフォーマンステストの重要な内容が含まれています。遅延時間(Latency)とスループット(Throughput)をはじめ、オペレーティングシステムやサーバーリソース、ネットワーク、データベースなどのパフォーマンステストを進める際に考慮すべき内容についてお知らせします。

パフォーマンステストツールの使い方

Artilleryというパフォーマンステストツールの使い方についてお知らせします。パフォーマンステストを実行し、パフォーマンステストの結果を解釈する方法と、実務のようにいくつかのシナリオを設定し、パラメータを変更しながらパフォーマンステストする方法を学びます。

簡単なパフォーマンス改善の経験

パフォーマンステストを先に進んでみて、同じ動作をしますが、より良いパフォーマンスを出すように改善してみます。そして、何らかの理由で同じ動作をしますが、より良いパフォーマンスが得られるかどうかを調べます。

受講前の注意

練習環境

  • オペレーティングシステムとバージョン(OS): Windows 10

  • 使用ツール: Intellij Community 2023.2, JDK 17, Node.js 20

学習資料

選手の知識と注意事項

  • バックエンドアプリケーションを作成した経験があるはずです。例はJavaになっていますが、Javaを知らなくても講義の内容を理解するのに問題ないでしょう。もしJavaを知らない方が講義内容の理解に問題がある場合は、質問を残してください。 :)

  • パフォーマンステスト/改善に必要な基本的な概念を説明し、パフォーマンステストをどのように開始できるかを伝えたい講義です。具体的にどのようにパフォーマンスを改善できるかについては後で他の講義で取り上げる予定です。

  • 受講中に質問がある場合は、質問を残してください。更新する必要がある場合は、更新します。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • バックエンドアプリケーションは作成しましたが、パフォーマンステストはしたことがない人

  • サービスをオープンする前にパフォーマンステストが必要だという話を聞きましたが、どこから始めるべきかわからない人

前提知識、
必要でしょうか?

  • バックエンドアプリケーションの作成経験

  • Javaの基本知識(必須X)

こんにちは
です。

5,206

受講生

220

受講レビュー

104

回答

4.9

講座評価

9

講座

안녕하세요.

멘토링을 하면서 주니어 개발자들이 어려워 하는 개념들에 대해 어떻게 하면 쉽게 전달할 수 있을지에 대해서 많은 고민을 하고 있는 푸(Foo)라고 합니다.

잘 부탁 드리겠습니다.


이력

  • 2019. 08 ~ 현재 : 카카오 자바 백엔드 개발자

  • 2021. 08 ~ 현재 : programmers 백엔드 데브코스 멘토

  • 2021. 12 ~ 현재 : F-Lab 자바 백엔드 멘토

 

  • 이것이 취업을 위한 백엔드 개발이다 with 자바(링크)

 

기타 이력 및 타 플랫폼 강의들은 아래 GitHub 링크에서 확인할 수 있습니다.

GitHub - https://github.com/lleellee0

カリキュラム

全体

19件 ∙ (2時間 53分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

47件

4.9

47件の受講レビュー

  • 채종훈님의 프로필 이미지
    채종훈

    受講レビュー 7

    平均評価 5.0

    5

    78% 受講後に作成

    이 강의는 대규모 트래픽을 경험하고 싶어도 경험할 길이 없는 사람들에게 한 줄기 빛과 같은 강의입니다. 도대체 서비스기업에서 중요시한다는 대규모 트래픽 처리 경험이 뭔데? 라던지 그걸 서비스기업 가야 체험할수 있는데 서비스기업에 가려면 그걸 알아야 한다 나같은 신입은 어쩌라는거냐 라는 생각을 하고 계신 분들에게 적합한 강의라고 생각합니다. 현재 아틸러리 도큐먼트대로 하면 제공되지 않는 일부 기능들을 볼 수 있도록 세팅해놓은 강의라 더 좋다고 생각합니다. 며칠전 모 기업 셀장이라는 분이 너무 레거시에만 통달하신 나머지 팀원들을 모아놓고 트래픽 테스트를 한답시고 지금부터 f5 눌러서 새로고침 하세요! 라고 했다던 일화가 생각나는데 스트레스 테스트 개념이 없는 경력자들까지 아우를 수 있는 강의라고 생각해서 추천합니다.

    • 이준형(Foo)
      知識共有者

      채종훈님 구체적인 수강평 감사합니다!! 어떤 분들에게 강의가 필요한지 강의 소개페이지 보다 더 잘 어필해주신 것 같네요 ㅎㅎ

  • 전자파차단님의 프로필 이미지
    전자파차단

    受講レビュー 19

    平均評価 5.0

    5

    32% 受講後に作成

    신규 프로젝트에 앞서 기술검토 과정중에 nGrinder나 JMeter를 별도로 구축하지않고 빠르게 성능테스트를 할 수 있었습니다. 테스트 인프라 구축 시간을 벌었네요.

    • 이준형(Foo)
      知識共有者

      파프리카맨님 수강평 남겨주셔서 감사합니다. :) 말씀해주신대로 artillery는 가장 간단하게 성능 테스트를 해볼 수 있다는 것에 강점이 있는 것 같습니다.

  • 맹수호빵님의 프로필 이미지
    맹수호빵

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    실제로 개인 프로젝트를 진행하고 있습니다. 강의 초반에 강사님이 말씀하신 것처럼 'API를 만들긴 했는데, 내 API가 어느 정도의 성능을 낼 수 있는지'에 대한 의구심을 가지고 있었습니다. 그래서 더욱 이번 강의가 와닿았고, 해당 강의를 통해 성능 테스트에 대한 첫 발걸음을 쉽게 뗄 수 있었던것 같습니다! 그리고 단순히 이력서 등에 '성능'이라는 모호한 단어만 썼는데 더 구체적인 '지연 시간', '처리량' 이라고 말하는게 더 개발자스럽다 라는 것도 깨달았습니다! 또 운영체제에 관한 지식도 빠르게 복습할 수 있어서 좋았고, 중간중간 나긋하게 팩폭+뼈를 때려주시는 조언(?)들을 해주셔서 더욱 자극이 되었던 것 같습니다 ㅎㅎ

    • 이준형(Foo)
      知識共有者

      맹수호빵님 생생한 수강평 감사합니다. :) 제가 강의로 전달드리고 싶은 내용들 잘 학습하신 것 같습니다! 진행하고 계신 개인 프로젝트에 잘 적용해보셨으면 좋겠네요~! 더 좋은 강의로 찾아 뵙겠습니다. (_ _)

  • Jang Jaehoon님의 프로필 이미지
    Jang Jaehoon

    受講レビュー 495

    平均評価 4.8

    5

    16% 受講後に作成

    좋은 강의 감사합니다! 헌데 소리가 굉장히 작은 듯 합니다. 그 점이 좀 불편한 데, 소리를 훨씬 크게 조정 가능하신지요??

    • 이준형(Foo)
      知識共有者

      Jang Jaehoon님 수강평 남겨주셔서 감사합니다~ 제가 이번주말 안으로 소리 키워서 다시 업로드 하겠습니다! 수강에 불편드려서 죄송합니다. (_ _)

    • 정말 감사합니다! 수업 내용은 정말 좋은 내용 같습니다!

    • 이준형(Foo)
      知識共有者

      감사합니다. :) 영상 볼륨은 키워서 다시 업로드 해놨습니다! 확인해보시고, 연휴 잘 보내세요~!

  • 잉여인간님의 프로필 이미지
    잉여인간

    受講レビュー 43

    平均評価 5.0

    5

    100% 受講後に作成

    많은 분량의 강의는 아니지만 성능 테스트에 대해 쉽게 이해할 수 있도록 도와줍니다. 스스로 성능 테스트를 공부할 수 있게 기본기를 만들어 줍니다.

    ¥3,536

    fooの他の講座

    知識共有者の他の講座を見てみましょう!