본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[NodeJS] 서버 성능 테스트, K6

by 열공노년 2024. 3. 31.
반응형

서버 성능 테스트, K6

서버 성능 테스트는 웹사이트나 애플리케이션이 사용자들의 접근을 받았을 때 얼마나 잘 작동하는지를 확인하는 중요한 과정입니다. 이러한 테스트를 수행하기 위한 도구 중 하나가 바로 'K6'입니다. K6는 개발자들 사이에서 인기 있는 오픈 소스 부하 테스트 도구로, 코드 기반의 테스트 스크립트를 사용하여 서버의 성능을 측정합니다. 이 글에서는 K6의 설치 방법과 간단한 사용법에 대해 소개해 드리겠습니다.

K6 설치하기

1. K6 다운로드

K6는 다양한 운영체제에서 사용 가능합니다. Windows, macOS, Linux 등 주요 운영체제에 맞는 K6를 설치할 수 있습니다. 공식 홈페이지(https://k6.io)에서는 각 운영체제별 설치 가이드를 제공하고 있습니다.

caption: k6.io 웹사이트

Windows에서 K6 설치

  • Chocolatey 이용: Windows 사용자는 Chocolatey 패키지 관리자를 이용해 쉽게 K6를 설치할 수 있습니다. 명령 프롬프트를 열고 다음 명령어를 입력하면 됩니다.
    choco install k6

macOS에서 K6 설치

  • Homebrew 이용: macOS 사용자는 Homebrew 패키지 관리자를 통해 K6를 설치할 수 있습니다. 터미널을 열고 다음 명령어를 입력하세요.
    brew install k6

Linux에서 K6 설치

  • APT 이용 (Debian/Ubuntu): Debian 기반의 Linux 배포판 사용자는 APT 패키지 관리자를 사용해 K6를 설치할 수 있습니다. 터미널에 다음 명령어들을 입력하세요.
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
    echo "deb https://dl.bintray.com/loadimpact/deb stable main" | sudo tee -a /etc/apt/sources.list
    sudo apt-get update
    sudo apt-get install k6

2. 설치 확인

설치가 정상적으로 완료되었는지 확인하기 위해, 터미널이나 명령 프롬프트에서 k6 --version 명령어를 입력해 보세요. K6의 버전 번호가 표시되면 설치가 성공적으로 이루어진 것입니다.

간단한 K6 사용 예

K6를 이용한 성능 테스트를 시작하기 위해, 간단한 테스트 스크립트를 작성해보겠습니다. 텍스트 에디터를 이용해 다음 내용을 test.js 파일로 저장합니다.

import http from 'k6/http';
import { sleep } from 'k6';

export default function () {
  http.get('http://test.k6.io');
  sleep(1);
}

caption: test.js

 

이 스크립트는 http://test.k6.io 주소에 대해 HTTP GET 요청을 보내고, 1초간 대기하는 간단한 부하 테스트를 정의합니다.

caption: 성능 테스트 결과

테스트 실행

저장한 test.js 파일이 있는 위치에서 터미널이나 명령 프롬프트를 열고, 다음 명령어를 입력하여 테스트를 실행합니다.

k6 run test.js

이 명령어를 실행하면 K6가 스크립트에 정의된 대로 서버 성능 테스트를 수행하고 결과를 출력합니다. 출력된 결과에서는 요청 처리 시간, 성공률, 에러 발생 여부 등 다양한 정보를 확인할 수 있습니다. 이 정보를 통해 서버의 성능을 정량적으로 평가하고, 필요한 경우 서버 구성이나 코드를 최적화할 수 있습니다.

K6의 주요 기능과 이점

  • 코드 기반 테스트: K6는 JavaScript로 테스트 스크립트를 작성합니다. 이는 개발자가 기존의 코드 작성 능력을 활용하여 테스트 케이스를 쉽게 생성할 수 있음을 의미합니다.
  • 다양한 메트릭 지원: K6는 HTTP 요청 시간, RPS(Requests Per Second), 사용자 동시성 수 등 다양한 메트릭을 지원합니다. 이를 통해 서버의 다양한 성능 지표를 분석할 수 있습니다.
  • 쉬운 통합: K6는 CI/CD 파이프라인과의 통합이 용이하여, 자동화된 테스트 환경을 구축할 수 있습니다. 이는 개발 과정에서 지속적인 성능 모니터링을 가능하게 합니다.
  • 커뮤니티 및 문서: K6는 활발한 커뮤니티와 잘 정리된 문서를 제공합니다. 이를 통해 사용자는 필요한 정보를 쉽게 찾고, 문제 해결에 도움을 받을 수 있습니다.

고급 사용법

K6는 단순한 부하 테스트뿐만 아니라, 더 복잡하고 상세한 테스트 시나리오를 구성할 수 있는 다양한 기능을 제공합니다. 예를 들어, 가상 사용자(VUs)의 수를 점진적으로 증가시키며 서버의 한계를 탐색하는 스테이지(stage) 기능, 특정 HTTP 메소드에 대한 요청, 사용자 정의 메트릭 추가, 환경 변수 사용 등이 있습니다.

마무리

K6를 사용하면 서버 성능 테스트가 보다 간편하고 효과적으로 이루어질 수 있습니다. 이 도구를 통해 서버 응답 시간을 단축하고, 사용자 경험을 개선하며, 잠재적인 성능 문제를 사전에 발견하여 대응할 수 있습니다. K6의 설치부터 기본적인 사용 방법, 고급 기능에 이르기까지 다양한 옵션을 활용하여 귀하의 서버 성능을 체계적으로 관리해 보세요. 성능 테스트는 웹사이트나 애플리케이션의 성공을 위한 중요한 단계이며, K6는 이 과정을 지원하는 강력한 도구입니다.

반응형