Inflearn brand logo image
Inflearn brand logo image
BEST

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

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

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

이런 걸 배울 수 있어요

  • 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)입니다.

4,461

수강생

178

수강평

95

답변

4.9

강의 평점

8

강의

안녕하세요.

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

잘 부탁 드리겠습니다.


이력

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

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

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

 

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

 

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

GitHub - https://github.com/lleellee0

더보기

수강평

전체

43개

4.9

43개의 수강평

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

    수강평 19

    평균 평점 5.0

    5

    32% 수강 후 작성

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

    • 이준형(Foo)
      지식공유자

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

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

    수강평 5

    평균 평점 5.0

    5

    78% 수강 후 작성

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

    • 이준형(Foo)
      지식공유자

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

  • 우렁된장국님의 프로필 이미지
    우렁된장국

    수강평 1

    평균 평점 5.0

    5

    100% 수강 후 작성

    강의를 바탕으로 성능 테스트에 대한 큰 틀을 익혔습니다. 강의와 다음 강의를 바탕으로 개인프로젝트에 적용해 볼 수 있게 트라이해보겠습니다.

    • 이준형(Foo)
      지식공유자

      우렁된장국님 수강평 남겨주셔서 감사합니다!! 개인 프로젝트에 적용해보시면서 궁금한 내용 있으면 언제든 질문 남겨주세요~ :)

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

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

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

    • 이준형(Foo)
      지식공유자

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

  • 김재윤님의 프로필 이미지
    김재윤

    수강평 8

    평균 평점 5.0

    5

    100% 수강 후 작성

    • 이준형(Foo)
      지식공유자

      김재윤님 수강평 남겨주셔서 감사합니다!! 완강하느라 고생 많으셨습니다. (_ _)

이준형(Foo)님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

연관 로드맵

강의가 포함된 로드맵으로 학습해 보세요!

₩29,700