BEST
개발 · 프로그래밍

/

백엔드

백엔드 애플리케이션 성능 테스트하기

이 강의를 통해 여러분들이 만든 백엔드 애플리케이션의 API를 성능 테스트 해보고 개선하기 위한 기초 지식을 얻어갈 수 있습니다.

(4.9) 수강평 33개

수강생 576명

Thumbnail

초급자를 위해 준비한
[웹 개발] 강의입니다.

이런 걸
배워요!

  • API 성능 테스트

  • 성능 테스트에 필요한 CS 지식

API는 만들었는데, 내가 만든 API의 성능은 어떤지 알고 있나요?

제가 실무에서 개발을 하기 전과 후에 크게 달라진 부분을 생각해보면 내가 만든 애플리케이션에 대한 성능을 측정하고, 성능을 개선하는 부분이 달라졌던 것 같습니다. 혼자 애플리케이션을 만들면 사용자가 적거나 나 혼자 사용하기 때문에 대부분 성능이 문제가 되진 않았습니다. 그러나 실무에서는 많은 데이터를 다루고, 많은 트래픽이 발생하기 때문에 성능 테스트는 필수였습니다.

기능이 잘 동작하더라도 나쁜 성능을 보이는 애플리케이션은 결국 시스템 전체의 장애 포인트가 되기도 하고, 그 자체로도 사용자들에게 서비스에 대한 나쁜 경험을 만들게 됩니다. 목록 하나 뜨는데 수십초씩 뜨는 서비스를 쓰고 싶진 않으니까요.

이 강의는 이런 일이 벌어지지 않도록 백엔드 애플리케이션을 성능 테스트하는 방법에 대해 다룹니다. 성능 테스트에 대한 배경지식부터 시작하여 Artillery라는 성능 테스트 툴을 통한 실제 성능 테스트를 진행하고, 간단한 성능 개선 경험을 보여드리겠습니다.

사실 성능 테스트 후 성능을 개선하는 것은 절대 간단하지는 않습니다. 애플리케이션 로직을 효율적으로 바꿔야 할 수도 있고, 데이터베이스 쿼리를 튜닝해야할 수도 있고, 시스템 설계 그 자체를 바꿔야 할 수도 있습니다. 그러나 이런 개선은 모두 성능을 측정하는 것에서부터 시작합니다. 이 강의로 먼저 백엔드 애플리케이션의 성능을 측정하는 방법을 배우고, 개선하는 방법은 하나씩 채워나가시기 바랍니다. 성능 개선에 대한 내용 역시 추후 강의로 제작하겠습니다.

강의에서 작성하게되는 성능 테스트 스크립트

성능 테스트 결과 예시

이런 내용을 배워요

성능 테스트에 필요한 배경지식들

성능 테스트의 핵심적인 내용들을 담았습니다. 지연시간(Latency)과 처리량(Throughput)을 시작으로 운영체제와 서버 자원, 네트워크, 데이터베이스 등 성능 테스트를 진행할 때 고려해야할 내용에 대해 알려드립니다.

성능 테스트 툴 사용 방법

Artillery라는 성능 테스트 툴을 사용하는 방법에 대해 알려드립니다. 성능 테스트를 진행하고, 성능 테스트 결과를 해석하는 방법과 실무에서처럼 몇가지 시나리오를 세우고 파라미터를 바꿔가면서 성능 테스트하는 방법에 대해 알아봅니다.

간단한 성능 개선 경험

성능 테스트를 먼저 진행해보고, 똑같은 동작을 하지만 좀 더 좋은 성능을 내도록 개선해봅니다. 그리고 어떤 이유로 동일한 동작을 하지만 더 좋은 성능을 낼 수 있는건지 알아봅니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows 10

  • 사용 도구: Intellij Community 2023.2, JDK 17, Node.js 20

선수 지식 및 유의사항

  • 백엔드 애플리케이션을 만들어본 경험이 있어야합니다. 예제는 Java로 되어있긴 하지만, Java를 몰라도 강의 내용을 이해하는데 문제 없을겁니다. 혹시 Java를 모르는게 강의 내용 이해에 문제가 있다면 질문 남겨주세요. :)

  • 성능 테스트/개선에 필요한 기초적인 개념을 설명하고, 성능 테스트를 어떻게 시작할 수 있는지 전달하고자 하는 강의입니다. 구체적으로 어떻게 성능을 개선할 수 있는지에 대해선 나중에 다른 강의에서 다룰 예정입니다.

  • 수강하시면서 궁금한 내용이 있다면 질문을 남겨주세요. 업데이트해야 할 내용이 있다면 업데이트하겠습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 백엔드 애플리케이션은 만들어봤지만 성능 테스트는 해본적 없는 사람

  • 서비스 오픈 전 성능 테스트가 필요하다는 이야기를 들었는데 어디부터 시작해야할지 모르겠는 사람

선수 지식,
필요할까요?

  • 백엔드 애플리케이션 제작 경험

  • 자바 기본지식 (필수 X)

안녕하세요.

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

잘 부탁 드리겠습니다.


이력

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

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

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

 

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

 

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

GitHub - https://github.com/lleellee0

커리큘럼

전체

19개 ∙ (2시간 53분)

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!