강의

멘토링

커뮤니티

BEST
개발 · 프로그래밍

/

백엔드

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

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

(4.9) 수강평 51개

수강생 816명

  • 이준형(Foo)

먼저 경험한 수강생들의 후기

수강 후 이런걸 얻을 수 있어요

  • API 성능 테스트

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

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

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

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

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

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

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

성능 테스트 결과 예시

이런 내용을 배워요

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

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

성능 테스트 툴 사용 방법

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

간단한 성능 개선 경험

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

수강 전 참고 사항

실습 환경

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

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

선수 지식 및 유의사항

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

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

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

이런 분들께
추천드려요

학습 대상은
누구일까요?

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

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

선수 지식,
필요할까요?

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

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

안녕하세요
입니다.

5,779

수강생

271

수강평

116

답변

4.9

강의 평점

9

강의

안녕하세요.

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

잘 부탁 드리겠습니다.


이력

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

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

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

 

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

 

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

GitHub - https://github.com/lleellee0

커리큘럼

전체

19개 ∙ (2시간 53분)

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

수강평

전체

51개

4.9

51개의 수강평

  • perfectgame님의 프로필 이미지
    perfectgame

    수강평 7

    평균 평점 5.0

    5

    78% 수강 후 작성

    This lecture is a ray of light for those who want to experience large-scale traffic but cannot. What on earth is the experience of handling large-scale traffic that is considered important in service companies? Or, you can experience it if you go to a service company, but you need to know it to go to a service company. I think this lecture is suitable for those who think, "What should a newbie like me do?" I think it is better because the lecture is set up so that you can see some functions that are not provided if you follow the current Artillery document. A few days ago, I remember an anecdote where a cell manager of a certain company was so well-versed in legacy that he gathered his team members and said, "Now, press F5 to refresh!" and said, "Let's do a traffic test!" I recommend this lecture because I think it can encompass even experienced people who do not have the concept of stress testing.

    • foo
      지식공유자

      Thank you, Chae Jong-hoon, for the detailed course review!! I think you appealed to who needs the course better than the course introduction page ㅎㅎ

  • blockelectronicwave님의 프로필 이미지
    blockelectronicwave

    수강평 19

    평균 평점 5.0

    5

    32% 수강 후 작성

    During the technology review process prior to a new project, we were able to quickly perform performance tests without separately setting up nGrinder or JMeter. This saved us time building the test infrastructure.

    • foo
      지식공유자

      Thank you, Paprikaman, for leaving a review. :) As you said, I think the strength of artillery is that it can be used to test performance in the simplest way.

  • sjun2918님의 프로필 이미지
    sjun2918

    수강평 2

    평균 평점 5.0

    5

    100% 수강 후 작성

    I'm actually working on a personal project. As the instructor said at the beginning of the lecture, I created an API, but I had doubts about how well my API could perform. That's why this lecture was even more touching, and I think I was able to take my first step toward performance testing easily through this lecture! And I realized that it's more developer-like to say more specific things like 'latency' and 'throughput' instead of just using the vague word 'performance' on my resume! I also liked that I could quickly review my knowledge about the operating system, and I think it was even more stimulating because he gave me gentle advice(?) that hit me in the face every now and then. ㅎㅎ

    • foo
      지식공유자

      Thank you, Maengsuhobbang, for your vivid class review. :) It seems like you have learned well the content I wanted to convey in the lecture! I hope you can apply it well to your personal projects~! I will come back with a better lecture. (_ _)

  • jjhgwx님의 프로필 이미지
    jjhgwx

    수강평 609

    평균 평점 4.9

    5

    16% 수강 후 작성

    Thank you for the great lecture! However, the sound seems to be very low. That's a bit inconvenient - would it be possible to adjust the sound much louder??

    • foo
      지식공유자

      Thank you for leaving a review, Jang Jaehoon~ I will increase the volume and re-upload it by this weekend! Sorry for the inconvenience with your learning. (_ _)

    • Thank you so much! The class content seems really great!

    • foo
      지식공유자

      Thank you. :) I've increased the video volume and re-uploaded it! Please check it out, and have a great holiday~!

  • javython님의 프로필 이미지
    javython

    수강평 52

    평균 평점 5.0

    5

    100% 수강 후 작성

    It's not a lengthy lecture, but it helps you easily understand performance testing. It lays the groundwork for you to study performance testing on your own.

    ₩29,700

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

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

    연관 로드맵

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