기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GAMEOPS05-BP01 목표에 맞는 적절한 단계, 아키텍처 및 로드 테스트 프레임워크 선택
게임 로드 테스트에 대한 접근 방식은 게임이 수행되는 개발 프로세스의 단계, 로드 생성 시스템 자체의 아키텍처, 로드 테스트 프레임워크 선택 등 여러 요인에 따라 크게 달라질 수 있습니다. 초기 단계이든, 반복 스프린트 중이든, 프로덕션 배포 전이든, 배포 후이든 상관없이 수행되는 시기는 테스트 노력의 목표와 초점을 형성합니다. 로드 생성 인프라의 다양한 설계에는 고유한 장단점이 있으며, 로드 테스트 프레임워크를 선택하면 테스트 프로세스에 사용할 수 있는 기능, 사용 편의성 및 통합에 큰 영향을 미칩니다. 개발 팀은 이러한 요소를 신중하게 조정하여 로드 테스트 접근 방식을 게임의 고유한 특성에 맞게 조정하고, 가장 중요한 성능 인사이트를 추출하고, 플레이어에게 원활한 경험을 제공할 수 있습니다.
이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음
구현 지침
다양한 개발 단계에서 로드 테스트
개발 단계 초기에 탐색 로드 테스트를 수행하면 기본 시스템 아키텍처를 검증할 수 있습니다. 이를 통해 개발자는 광범위한 구현 작업이 완료되기 전에 게임의 인프라, 데이터베이스 설계 및 네트워크 토폴로지에 대해 정보에 입각한 결정을 내릴 수 있습니다. 로드 테스트는 위험을 식별하고 성능 기준을 생성하여 개발 수명 주기 후반에 비용이 많이 드는 재작업 및 기술 부채의 필요성을 최소화할 수 있습니다. 또한 팀 간의 게임 성능 요구 사항에 대한 공동 이해를 촉진하여 협업과 의사 결정을 개선할 수 있습니다. 궁극적으로 초기 단계의 로드 테스트는 성능, 확장성 및 복원력이 뛰어난 게임을 위한 강력한 기반을 구축하여 전반적인 플레이어 경험을 개선하는 데 도움이 됩니다.
각 스프린트 또는 반복이 끝나면 로드 테스트는 최신 주기에 도입된 새로운 기능, 버그 수정 및 기타 변경 사항의 성능 영향을 평가할 수 있습니다. 이 목표 접근 방식을 통해 개발 팀은 최신 업데이트로 인한 회귀 또는 성능 저하를 신속하게 식별할 수 있으므로 파이프라인으로 더 전파되기 전에 이러한 문제를 해결하고 일관된 수준의 품질과 성능을 유지할 수 있습니다.
프로덕션에 배포하기 전에 강력한 로드 테스트를 통해 팀은 예상되는 실제 트래픽 및 로드 조건을 처리할 수 있는 시스템의 능력을 검증할 수 있습니다. 프로덕션 인프라 내에서 확장성 병목 현상 또는 리소스 제약을 발견하고 게임 성능을 최적화하여 첫날부터 원활하고 응답성이 뛰어난 사용자 환경을 만들 수 있는 기회를 제공할 수 있습니다. 출시 전 로드 테스트에서 얻은 인사이트는 출시일 위험을 완화하고 지속적인 용량 계획에 정보를 제공할 수 있으며, 이는 게임의 장기 지속 가능성 및 확장성의 토대를 마련합니다.
이미 프로덕션 환경에 있는 게임을 로드 테스트하면 팀이 게임의 성능을 모니터링하고 시간 경과에 따라 발생할 수 있는 성능 저하 또는 성능 저하를 식별할 수 있습니다. 이를 통해 플레이어 경험에 영향을 미치고 사용자 보존에 부정적인 영향을 미치기 전에 문제를 사전에 해결할 수 있습니다. 또한 프로덕션에서의 로드 테스트는 구현된 성능 최적화 작업 또는 인프라 규모 조정의 효과를 검증합니다. 이 프로세스는 게임이 발전하고 성숙해지더라도 플레이어에게 응답성이 뛰어나고 확장 가능한 고품질 게임 환경을 제공합니다.
로드 생성 아키텍처
게임 로드 테스트를 위한 로드 생성 아키텍처의 설계는 다양한 형태를 취할 수 있으며, 각 아키텍처에는 고유한 장점과 고려 사항이 있습니다.
가장 기본적인 수준에서 자체 관리형 Amazon EC2
보다 확장 가능하고 오케스트레이션된 접근 방식을 위해 Amazon EKS
또는의 서버리스 특성은 필요한 확장성과 유연성을 제공하면서 인프라 관리를 추상화하여 로드 테스트 설정을 가속화하고 단순화할 AWS Fargate
요구 사항 및 목표에 따라 AWS Lambda
사전 구축된 솔루션을 사용하려는 스튜디오는 에서 분산 로드 테스트를 AWS 사용할 수 있습니다. 이 솔루션은의 Amazon ECS AWS Fargate 를 사용하여 수만 명의 연결된 사용자로 구성된 시뮬레이션을 실행할 수 있는 컨테이너를 배포합니다. 이를 사용하여를 사용하여 IAC 방식으로 로드 테스트 인프라를 빠르게 시작할 수 있습니다 AWS CloudFormation.
로드 테스트 프레임워크
두 로드 테스트 프레임워크가 동일하게 빌드되지 않습니다. 테스트 생성을 위한 직관적인 그래픽 인터페이스가 있는 것도 있고, 명령줄을 기반으로 하는 것도 있습니다. 한 도구는 유연하고 성능이 뛰어나지만 구성 및 관리에 시간과 노력이 필요할 수 있으며, 다른 도구는 서버리스이지만 생성 및 실행할 수 있는 테스트에 제한이 있을 수 있습니다. 일부는 현장에서 입증되지 않은 상태에서 대규모 커뮤니티와 많은 자습서를 이용하며, 프로덕션 환경에서 전투 테스트를 거쳤지만 커뮤니티 지원이나 문서가 부족한 다른 사람들과는 명확하게 대조됩니다. 자신과 팀에 적합한 균형을 이루는 프레임워크를 선택합니다. 몇 가지 인기 옵션은 다음과 같습니다.
-
Apache JMeter
: 강력한 기능 세트와 사용 편의성으로 인해 인기 있는 Java 기반 오픈 소스 로드 테스트 프레임워크입니다. 복잡한 사용자 시나리오, 다양한 지원 프로토콜, 포괄적인 보고 및 검증된 트랙 레코드를 시뮬레이션하는 기능을 갖춘 JMeter는 로드 테스트를 위한 신뢰할 수 있는 선택입니다. -
Locust
: 이벤트 기반 아키텍처를 기반으로 구축된 현대적 분산 로드 테스트 프레임워크로, 성능이 뛰어나면서도 리소스 효율적입니다. 테스트는 Python으로 작성되므로 수천 개의 강력한 타사 라이브러리를 활용하는 동시에 친숙하고 읽기 쉬운 유연한 테스트 시나리오가 가능합니다. -
Grafana K6
: 사용 편의성과 고급 기능을 결합한 강력한 로드 테스트 프레임워크입니다. 분산 로드 생성, 유연한 스크립팅, 데이터 시각화를 위한 Grafana와의 원활한 통합을 지원하는 Grafana K6는 매력적인 선택입니다. -
개틀링
: 성능과 확장성으로 알려진 오픈 소스 로드 테스트 프레임워크입니다. Scala 기반 도메인별 언어(DSL)를 통해 개발자는 간결하고 유지 관리 가능한 로드 테스트 스크립트를 생성할 수 있으며, 강력한 보고 및 분석 기능은 테스트 중인 시스템에 대한 자세한 인사이트를 제공합니다.
구현 단계
-
로드 테스트 단계: 다양한 개발 단계(초기 개발, 스프린트, 사전 프로덕션 및 배포 후)에서 로드 테스트를 수행하여 시스템 성능을 검증하고 문제를 식별합니다.
-
로드 생성 아키텍처: 확장성 요구 사항, 관리 기본 설정 및 특정 테스트 요구 사항에 따라 적절한 로드 생성 아키텍처(EC2, EKS, Fargate 또는 Lambda)를 선택합니다.
-
로드 테스트 프레임워크: 팀의 요구 사항에 맞게 사용 편의성, 성능, 유연성 및 커뮤니티 지원의 균형을 맞추는 로드 테스트 프레임워크(예: JMeter, Locust, Grafana K6 또는 Gatling)를 선택합니다.