반응형

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

1) 공부시작

 

2) 공부끝

 

3) 강의장

 

4)

 

https://bit.ly/4hTSJNB

 

1. 성능 테스트란 무엇이며, 왜 중요한가요?

답변:

성능 테스트는 시스템이 특정 부하 조건에서 얼마나 잘 작동하는지 평가하는 테스트입니다. 응답 시간, 처리량, 안정성을 측정하며, 사용자 경험을 보장하고 병목 지점을 식별하는 데 중요합니다. 예를 들어, 웹사이트가 1,000명 동시 접속을 견디는지 확인합니다.

 

2. 성능 테스트와 부하 테스트의 차이는 무엇인가요?

답변:

성능 테스트는 시스템의 전반적인 성능(속도, 확장성 등)을 평가하는 포괄적인 개념입니다. 부하 테스트는 특정 부하(예: 사용자 수 증가)에서 시스템이 어떻게 반응하는지 확인하는 하위 유형입니다. 부하 테스트는 성능 테스트의 일부라고 볼 수 있습니다.

 

3. 성능 테스트를 설계할 때 어떤 단계를 거치나요?

답변:

먼저 요구사항(응답 시간, 동시 사용자 수 등)을 정의하고, 테스트 시나리오를 설계합니다. 다음으로 환경을 설정하고, 도구를 활용해 부하를 생성하며, 결과를 모니터링하고 분석합니다. 마지막으로 병목 지점을 개선합니다.

 

4. 성능 테스트에 주로 사용하는 도구는 무엇인가요?

답변:

저는 JMeter, LoadRunner, Gatling을 주로 사용합니다. JMeter는 오픈소스로 유연하고, LoadRunner는 대규모 테스트에 강력하며, Gatling은 스크립트 기반으로 정밀한 부하를 생성합니다. 프로젝트 규모와 요구사항에 따라 선택합니다.

 

5. 성능 테스트에서 병목 지점을 어떻게 식별하나요?

답변:

CPU, 메모리, 디스크 I/O, 네트워크 사용량을 모니터링하며 응답 시간이나 처리량이 떨어지는 지점을 찾습니다. 예를 들어, APM 도구(New Relic, Dynatrace)를 사용해 느린 데이터베이스 쿼리나 API 호출을 식별한 경험이 있습니다.

 

6. 성능 테스트 중 흔히 겪는 문제와 해결 방법은?

답변:

테스트 환경 불일치, 비현실적인 부하 시나리오, 데이터 부족이 흔한 문제입니다. 이를 해결하기 위해 프로덕션과 유사한 환경을 구축하고, 실제 사용자 패턴을 반영하며, 충분한 테스트 데이터를 준비합니다.

 

7. 성능 테스트 결과를 어떻게 분석하나요?

답변:

응답 시간(평균, 최대), 처리량(초당 요청 수), 오류율을 주요 지표로 분석합니다. 그래프와 로그를 통해 패턴을 파악하고, 기준치(예: 응답 시간 2초 미만)를 넘는 부분을 개선 대상으로 삼습니다. 예를 들어, JMeter 보고서를 활용합니다.

 

8. 성능 테스트를 CI/CD 파이프라인에 통합하는 방법은?

답변:

Jenkins나 GitHub Actions에서 성능 테스트 스크립트를 실행하도록 설정합니다. 빌드 후 소규모 부하 테스트를 자동 실행하고, 결과를 슬랙이나 이메일로 알림 받게 합니다. 실패 시 배포를 중단하는 조건도 추가합니다.

 

9. 대규모 시스템의 성능 테스트를 어떻게 계획하나요?

답변:

사용자 수, 트래픽 패턴, 피크 타임을 분석해 시나리오를 설계합니다. 분산 테스트 환경(클라우드 기반)을 구축하고, 여러 지역에서 부하를 생성해 글로벌 성능을 확인합니다. AWS Load Generator를 활용한 적이 있습니다.

 

10. 성능 테스트 후 개선 작업은 어떻게 진행하나요?

답변:

병목 지점(: 느린 쿼리, 서버 과부하) 식별한 , 쿼리 최적화, 캐싱 추가(Redis), 서버 스케일업/아웃 같은 조치를 취합니다. 개선 동일한 테스트를 재실행해 결과를 비교하며 목표를 달성했는지 확인합니다.

반응형

+ Recent posts