Inflearn brand logo image

인프런 커뮤니티 질문&답변

Chung A님의 프로필 이미지
Chung A

작성한 질문수

대규모 트래픽 처리를 위한 부하테스트 입문/실전

성능테스트하기 애매한 API의 경우 진행 방법이 궁금합니다.

작성

·

124

·

수정됨

0

안녕하세요, 좋은 강의제공 감사드립니다!

강의 듣다가 실무적용할때 궁금한점이 있어서 질문남겨봅니다.

 

결제와 같이 성능테스트 대상으로 삼기 애매한 API에 대한 테스트 방법이 궁금합니다.

api 호출 시 결제가 이루어진다거나 타 제휴사 api 를 친다거나 하는 경우 성능테스트를 진행해버리면 문제가 생기지 않을까 싶은데요, 이런경우에는 보통 어떻게 성능테스트를 진행하고 병목구간을 찾아야 할까요?

 

감사합니다:D

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 Chung A님! 좋은 케이스에 대한 질문을 잘 해주셨네요:)

실제 서비스를 운영하시다보면

외부의 시스템(ex. PG사 결제, 유튜브 API 등)이 같이 결합되어 있는 경우가 많습니다.

이 때는, 외부 시스템 자체에 임의적인 많은 부하를 보내게 되면

문제가 되는 경우가 많습니다.

따라서 이 때는 Mocking을 많이 활용합니다.

(배민에서도 Mocking을 활용해 결제 테스트를 진행했네요 -> https://techblog.woowahan.com/2572/)

 

외부 시스템을 Mocking 처리해서 부하테스트를 진행한다는 건

외부 시스템을 제외한 나머지 직접 구축한 시스템에 대해서만 병목 구간을 확인할 수 있습니다.

즉, 외부 시스템에 병목이 생기는 지 안 생기는 지는 확인할 수 없다는 뜻이기도 합니다.

'외부 시스템은 병목이 안 생기겠지'라고 가정하고 테스트를 하는 것이기도 합니다.

이와 같이 개발에서는 어쩔 수 없는 Trade-off(기회 비용) 상황이 많이 발생합니다.

 

하지만 실제 환경에서는 '외부 시스템에 병목이 생기면 어떡하지'를 걱정할 수도 있고,

'외부 시스템은 어느 정도의 부하를 견딜 수 있지?'가 궁금할 수도 있습니다.

이럴 때는 외부 시스템(ex. PG사)을 담당하는 곳에 연락을 해서

해당 외부 시스템의 최대 TPS가 얼마인지 물어보면 됩니다!

 

위 설명 중에 또 궁금한 점이 있으시다면 댓글 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. Chung A님. 질문 주셔서 감사합니다.

API 성격상 직접적인 성능 테스트가 어려운 경우, 특히 결제 시스템이나 타사 API를 호출하는 경우에는 몇 가지 대안적인 방법을 고려하실 수 있습니다.

  1. Mocking: 실제 결제 API가 호출되지 않도록 하기 위해, 테스트 환경에서 API 응답을 모의 처리(mock)하는 방법이 있습니다. 이를 통해 실제 결제나 외주 API 호출 없이도 테스트를 진행할 수 있습니다. 모의된 응답은 예상되는 가능한 다양한 시나리오를 반영하여 설정할 수 있습니다.

  2. Staging 환경: 실제 프로덕션 환경과 격리된 별도의 Staging 환경에서 성능 테스트를 진행하는 방법입니다. 이는 실제 서비스에 영향을 주지 않고 성능 평가를 할 수 있게 해줍니다. 이때 Staging 환경의 데이터베이스와 API를 실제와 유사하게 설정하는 것이 중요합니다.

  3. 계정 리밋 설정 및 모니터링: 특정 API에 한정된 요청 횟수나 시간 구간을 설정하여, 대량의 트래픽이 발생했을 때 시스템이 어떻게 반응하는지 모니터링할 수 있습니다. 이는 과도한 부하로 인한 서버 문제를 방지하는 데 도움이 됩니다.

  4. 비동기 처리의 유연성: 결제나 외부 API 호출 시, 비동기적으로 처리하는 방식을 사용하여 병목 현상을 줄일 수 있습니다. 이를 통해 테스트 시 성능 분석을 보다 정확하게 할 수 있습니다.

관련된 포럼과 논의에서 자세한 내용을 확인하실 수 있습니다:
- 성능 테스트에서 Mocking 기술 활용하기
- Staging 환경 구축 및 활용 방법

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Chung A님의 프로필 이미지
Chung A

작성한 질문수

질문하기