티스토리 뷰
개인서버에서 개발할 때는 잘돌아가기만 하면 즉, 로직을 잘 작성했는지는 개발을 하면서 확인 할수 있습니다.
가장 쉬운 방법으로 console.log()로 찍어가면서 데이터다 잘 들어오고 잘 사용되는지 확인 하는 방법이 있습니다.
하지만 하지만 운영서버( 프로덕션 서버 )에서는 한사람만 사용하지 않습니다.
10명, 100명, 1000명도 사용할수 있게 됩니다. 이렇게 되면 어느정도의 사람이 사용하면 문제가 생기는지, 서버의 허용치 테스트를 해야합니다.
기능을 잘 만든다해도 1001명이 들어왔을때 오류가 생긴다면 없는것이나 마찬가지이기 때문입니다.
이렇게 성능 테스트를 할때 실제 유저의 트래픽이 들어오는것처럼 테스트를 할수 있는 도구는 많습니다.
그중 하나인 k6로 테스트를 해보겠습니다.
저는 윈도우를 사용하고 있으므로 윈도우 기준으로 설명하겠습니다.
일단
k6.io 설치 페이지로 들어가서 원하는 방법으로 설치를 해줍니다.
저처럼 다운을 받았으면
이렇게 생긴 msi파일이 받아질텐데 install해줍니다.
그다음 어떤 경로를 테스트 할것인지 작성을 해줍니다.
import http from "k6/http";
export const options = { // 성능 테스트 옵션값
vus: 100, // 가상 유저 설정
duration: "10s", // 몇초동안 테스트 할것인지 설정
};
export default function () {
http.get("http://localhost:8000"); // 성능 테스트시 실행되는 함수
// http 프로토콜의 get메서드를 사용하여 해당 경로로 요청을 보낸다는 의미
}
위 코드는 100명이 10초동안 해당 경로에 계속 요청보낸다는 의미입니다.
테스트 코드까지 작성이 된 다음 windows PowerShell을 켜준다음 해당 파일이 있는 경로로 이동해줍니다.
그런 다음
k6 run test_hello.js 라고 실행할 파일을 적어준다면 테스트가 됩니다.
1 . 가상 유저 100명으로 최대 40초 동안 테스트하겠다는내용입니다.
실제는 10초 동안 테스트하지만 gracefulStop의 기본값 30초를 더해서 40초가 되는 것입니다.
2. HTTP 요청 기간은 평균 2.01초입니다.
3. 요청 실패에 대한 결과 는 0%입니다.
4. HTTP요청이 500번 발생했다는 내용입니다.
5. HTTP요청이 한번 완료되고 다시 시작될 때까지 걸리는 시간에 대한 데이터 입니다. 평균 2.01초가 걸렸습니다.
이렇게 테스트한 결과를 볼수가 있습니다.
더 큰 프로젝트를 한다면 여기서 트래픽에 대한 성능 테스트를 해보고 문제를 찾아보면서 해결해 가면 좋을것 같습니다.
참고 - Node.js 백엔드 개발자 되기
'개발일지 > etc' 카테고리의 다른 글
swagger-autogen 사용하기 [Node.js] (0) | 2024.02.05 |
---|---|
Insomnia API Client (0) | 2024.01.18 |