2020-09-02

성능 검증

Performance Testing Service
  • 성능 테스트란 무엇입니까?
  • 성능 테스트는 사용자가 수행하는 특정 업무에 대해 사용량이 증가함에 따른 시스템의 응답속도 및 안정성 측면에서 성능을 평가하는 방법입니다. 성능 테스트는 일반적으로 어플리케이션의 응답속도 및 시스템의 견고성, 장애에 따른 신뢰성 등을 검사하기 위해 수행됩니다.
    • 성능 측정 : 성능 관점의 성능 테스트를 수행하여 시스템이 운영 전에 적정한 성능을 내는지 확인
    • 결함 검출 : 성능 테스트를 수행하여 시스템 운영 상태에서 나타날 수 있는 문제 사전에 확인
    • 병목 제거(튜닝) : 검출된 소프트웨어 결함에 대한 적절한 조치
    • 자원 검증 / 산정 : 운영 시스템의 자원이 Peak 시 업무를 처리하는 상태 확인

    성능 테스트 아키텍처 개념도

  

  • 왜 시스템 성능을 검증해야 합니까?
  • 어플리케이션의 성능은 주요 기술의 채택 및 프로젝트의 성공과 생산성을 결정하기위한 주요한 요소이므로 안정적인 사용자 체감 환경을 제공하기 위해 운영 환경에서 기대되는 서비스 수준을 측정할 필요가 있습니다.
    성능 테스트는 소프트웨어가 제공하는 서비스가 기대 수준을 충족하고 사용자에게 만족하는 성능을 제공하는데 도움을 주기위해 실행합니다. 서비스가 공개되기 전에 어플리케이션의 응답 속도, 안정성 및 확장성 부분에서 개선해야 할 사항을 도출합니다. 테스트없이 대중에게 공개된 어플리케이션은 여러가지 문제로 인해 기업의 이미지를 손상시킬 수 있으며, 경우에 따라 심각한 타격을 줄 수도 있습니다.
    아래와 같은 상황에 대비하여 성능 테스트를 진행하는 것은 매우 중요합니다.
    새로 개발 또는 변경한 애플리케이션에 대한 성능 검증

    신규 또는 변경된 애플리케이션에 대한 성능 검증

    • 다수의 사용자 접속 시 기능과 성능에 문제가 없는가?
    • 사용자 증가에 따른 부하를 언제까지 유지 할 수 있는가?
    • 변경 수정된 애플리케이션이 기존 시스템에 문제나 영향을 주지 않는가?
    효과적인 시스템 용량 계획 및 최적화 필요

    효과적인 시스템 용량 계획 및 최적화 필요

    • 현재 시스템은 애플리케이션을 위해 최적화 되어 있는가?
    • 현재 시스템에서 병목 현상은 없는가?
    • 갑작스런 사용자 증가로 시스템 병목에 대한 효과적인 추적 및 용량계획이 필요하다.
    신규 서버 또는 솔루션 도입에 따른 벤치마킹 테스트

    서버 또는 솔루션 도입에 따른 BMT

    • 새로 구축할 시스템에는 어느 서버를 도입할 것인지 성능 비교가 필요하다.
    • 새로 구축할 시스템에는 어느 솔루션이 가장 우수한 성능을 나타내는가?
    • 새로 도입할 서버 혹은 솔루션의 성능은 만족스러운가?

  

  • 성능 테스트의 종류
  • 테스트 목적에 따라 다양한 유형의 성능 테스트가 있습니다. 가장 일반적인 테스트는 부하, 스트레스, SOAK 및 스파이크 테스트입니다.

    LOAD TEST

    LOAD TEST

    부하 테스트는 어플리케이션에서 사용되어질 수 있는 가상의 사용자 수를 재현하여 테스트합니다.
    실 사용자 중심의 액션 및 부하량을 재현하는 테스트를 통해 응답 시간을 기준으로 한 잠재적인 병목 현상을 판별하는데 도움을 줄 수 있습니다.
    또한, 이를 통해 어플리케이션의 아키텍처에 대한 볼륨의 조정 여부를 판단할 수 있습니다.
    STRESS TEST

    STRESS TEST

    스트레스 테스트는 한계 상황에 도달한 시점에 대한 시스템의 상태를 평가합니다.
    시스템의 한계에 도달하는 시점 또는 초과하는 시점까지 사용자를 지속적으로 증가하여 시스템이 한계 상태에서도 얼마나 안정적으로 서비스 가능한지를 판단하는 견고성 및 얼마나 많은 부하를 처리할 수 있는지에 대한 한계성을 파악하는데 도움이 됩니다.
    SOAK TEST

    SOAK TEST

    SOAK 테스트는 동시 사용자를 늘린 상태에서 오랜 기간 동안의 시스템 상태를 모니터링하며 진행합니다.
    테스트의 목적은 장기간에 따른 격렬하고 지속적인 사용자 활동이 잠재적인 성능 저하 유발 가능성 및 과도한 시스템 자원 사용량의 촉발 여부를 관찰하는 것입니다.
    일/주/월 단위의 장기간에 대한 관점으로 테스트를 진행하는 경우도 있습니다.
    SPIKE TEST

    SPIKE TEST

    스파이크 테스트는 사용자 활동이 일정 수준을 초과할 때 시스템 운영에 미치는 영향을 파악하기 위해 수행합니다.
    스파이크 테스트는 스트레스 테스트와 달리 지속적인 부하보다는 일시적인 트래픽 증가 상황에 대한 시스템의 처리 가능성을 파악하는데 중점을 두고 있습니다.
    테스트 유저 수와 사용자 액션의 복잡도를 고려해 테스트할 필요가 있습니다.

  
  

  • 성능 테스트 수행 절차
  • 성능 테스트 진행은 계획, 분석, 설계 수행 및 최종 평가로 진행되며, 각 절차별 상세 진행 내역을 아래와 같습니다.


      
      

  • 다양하고 지속 가능한 성능 테스트 지원(상용 소프트웨어 및 오픈소스 기반 성능테스트 가능)
  • 일반적인 상용 소프트웨어를 통한 성능 테스트의 경우, 신뢰성과 편의성으로 인해 빠르게 성능 테스트 결과를 도출할 수 있는 장점이 있습니다.
    하지만, 높은 구입 및 유지 비용으로 인하여 지속적인 테스트 진행에 어려움이 있는 단점이 있습니다.
    신뢰할 수 있는 오프소스들을 기반으로 한 성능 테스트 서비스를 통해 낮은 비용으로 지속적이고 원활한 테스트 및 정확한 성능 이슈 분석 또한 가능하도록 지원하고 있습니다.
    10년 이상 경력의 성능 테스트 전문가가 상용 소프트웨어 및 오픈소스 기반 성능 테스트를 고객의 요청사항에 맞춰 신뢰할 수 있는 테스트 서비스를 제공하고 있습니다.

    NeoLoad

    NeoLoad는 프랑스의 Neotys사에서 제공하는 JAVA 기반의 성능 테스트 상용 솔루션입니다.
    NeoLoad는 스크립트 작성 및 테스트 설계, 테스트 수행, 테스트 결과 분석을 GUI 기반으로 쉽고 빠르게 진행할 수 있도록 지원하고 있습니다.
    또한 OS 및 WEB/WAS/DB Application에 대한 모니터링도 지원하고 있습니다.
    NeoLoad는 JAVA를 기반으로 하는 솔루션이므로, 서비스 중인 어플리케이션에서 사용하는 JavaScript를 재사용하기에 용이합니다.

    JMeter

    Jmeter는 Apache Foundation에서 제공하는 Open Source 기반의 성능 테스트 솔루션으로 전세계적으로 가장 많은 사용자를 보유하고 있습니다.
    순수 Java 기반의 솔루션이며, Open Source 솔루션 중 가장 많은 사용자를 보유하고 있으며 상용 솔루션 기반 소스로 이용될 정도로 가장 신뢰성 있는 솔루션입니다.
    HTTP(S) 뿐만 아니라 Socket 등의 다양한 프로토콜 들을 지원하고있습니다.
    또한, 다양한 3rd Party Plug-In을 통한 확장성을 보장하고 있습니다.

    Scouter

    Scouter는 국내에서 개발되어 공개된 Open Source 기반의 JAVA Applications 모니터링 솔루션입니다.
    따라서 국내 사용자에게 익숙한 작업 환경을 제공하고 있으며, 편리한 사용법을 제공하고 있습니다.
    다양한 운영 환경에서 서버 및 Client 설치가 가능하며, 빠른게 서버부터 에이전트 및 Client 설치가 가능한 제품입니다.
    User Client 프로그램은 C/S 및 WEB UI를 동시에 지원하고 있습니다.
    현재는 Server Resource 모니터링 및 JAVA Applications 모니터링만을 지원하고 있습니다.

      
      

  • 성능 테스트 서비스 기대 효과
  • 성능 테스트 전문가의 지원을 통해 테스트 설계부터 기획, 수행, 결과 분석을 통한 고차원적인 성능 테스트 수행이 가능합니다. 1회성의 테스트 서비스가 아닌 프로젝트 기간 동안 반복적이고 지속적인 테스트 서비스를 통하여 프로젝트의 성공 가능성을 획기적으로 높여 줄 수 있습니다.