본문으로 건너뛰기
중급약 10.5시간 (예상)

API·계약 테스트

API 테스트의 위치와 장점, Postman 실습, 코드 기반 자동화 전환, OpenAPI 계약 테스트, Pact 컨슈머 주도 계약, GraphQL, SoapUI. 그리고 네 층 커버리지 측정과 실사용 분포 대조로 보강 우선순위를 정하는 법까지.

학습 목표

이 모듈 한 줄 요약 — "화면보다 창구가 자동화하기 좋다". 화면 자동화는 버튼 위치만 바뀌어도 깨진다. 그 아래 창구(API)는 훨씬 덜 바뀌고 훨씬 빠르다. 같은 확인을 더 싸고 안정적으로 하는 자리라, 자동화를 어디에 둘지 정할 때 가장 먼저 보는 층이다.

이 모듈을 마치면 왜 API 레벨 테스트가 자동화 피라미드에서 중요한 비중을 차지하는지 이해하고, Postman으로 API 테스트를 직접 만들 수 있다. Postman의 한계를 넘어 코드 기반 자동화로 전환하는 이유를 알고, OpenAPI 기반 계약 테스트와 Pact 같은 컨슈머 주도 계약 테스트, 그리고 GraphQL 테스트의 특징까지 다룬다. 마지막으로 "테스트가 몇 개 있다"를 넘어 무엇을 얼마나 덮었는지 재는 법 — 엔드포인트·실패 경로·파라미터· 시나리오의 네 층 커버리지와 실사용 분포 대조 — 을 익힌다.

완료 후 할 수 있는 것

  • API 테스트가 자동화 피라미드에서 왜 중요한 위치를 차지하는지 설명할 수 있다
  • Postman으로 API 요청을 만들고 응답을 검증하는 테스트를 작성할 수 있다
  • Postman에서 코드 기반 자동화로 전환해야 하는 이유와 시점을 설명할 수 있다
  • OpenAPI 스펙을 기준으로 한 계약 테스트의 개념을 설명할 수 있다
  • Pact 같은 컨슈머 주도 계약 테스트가 마이크로서비스 환경에서 왜 필요한지 설명할 수 있다
  • REST와 다른 GraphQL API의 테스트 관점을 설명할 수 있다
  • REST와 SOAP의 차이를 이해하고, SoapUI로 레거시 엔터프라이즈 API를 테스트할 수 있다
  • API 커버리지를 네 층으로 나눠 측정하고, 스펙·실사용 호출량과 대조해 보강 우선순위를 정할 수 있다

채용시장에서의 위치

API 테스트는 자동화 QA·SDET 채용에서 거의 필수로 요구되는 역량이다 — UI 자동화보다 안정적이고 빠르면서도(모듈 11의 피라미드 원칙과 연결) 백엔드 로직을 직접 검증할 수 있기 때문이다. Postman은 입문용으로 가장 널리 쓰이지만, 실무 채용공고는 점점 "코드 기반 API 테스트 자동화 경험"과 "계약 테스트 경험"을 함께 요구하는 추세다. 이 모듈은 Postman에서 시작해 그 자연스러운 다음 단계까지 이어지는 성장 경로를 그대로 따라간다.

여기에 마지막 레슨이 더하는 것이 있다. 면접에서 "API 테스트 몇 개 만들어보셨어요"에 개수로 답하는 사람과, "엔드포인트 커버리지 73%, 빈칸 14개 중 호출량 상위 3개를 먼저 메웠습니다" 라고 답하는 사람은 층이 다르다. 커버리지를 재고 우선순위를 정하는 능력은 자동화 경험보다 드물다.

레슨 (8개)

  1. 중급약 20분

    API 테스트란 무엇인가: 피라미드에서의 위치와 장점

    화면을 거치지 않고 서버와 직접 대화하며 검증하는 API 테스트가 왜 자동화 전략에서 특히 중요한 위치를 차지하는지 이해한다.

  2. 중급약 25분

    Postman으로 API 테스트 시작하기: 요청, 어서션, 컬렉션

    코드를 몰라도 API 테스트를 시작할 수 있다. Postman으로 요청을 만들고, 응답을 검증하는 테스트 스크립트를 작성하고, 여러 요청을 컬렉션으로 묶는 법을 익힌다.

  3. 중급약 20분

    코드 기반 자동화로 전환하기: Postman의 한계를 넘어서

    Postman으로 시작한 API 테스트가 규모가 커지면 한계에 부딪힌다. 코드 기반 자동화로 전환해야 하는 신호와, 전환 시 무엇이 달라지는지 이해한다.

  4. 중급약 20분

    API 계약 테스트: OpenAPI 스펙으로 약속을 검증하기

    API 문서(OpenAPI 스펙)와 실제 API 동작이 일치하는지 자동으로 검증하는 계약 테스트의 개념을 이해한다.

  5. 고급약 20분

    컨슈머 주도 계약 테스트와 Pact: 마이크로서비스 간 약속 지키기

    OpenAPI가 제공자 관점의 계약이라면, Pact는 소비자(컨슈머)가 원하는 것을 기준으로 계약을 만든다. 마이크로서비스가 많은 조직에서 이 방식이 왜 유용한지 이해한다.

  6. 중급약 20분

    GraphQL 테스트: REST와 다른 점, 쿼리·뮤테이션 검증하기

    GraphQL은 하나의 엔드포인트로 원하는 데이터만 골라 받는다. REST와 다른 이 구조가 테스트 관점에서 무엇을 다르게 만드는지 이해한다.

  7. 중급약 20분

    SoapUI로 API 테스트하기: Postman과 무엇이, 왜 다른가

    Postman이 만능은 아니다. SOAP·XML 기반의 오래된 엔터프라이즈 API가 여전히 널리 쓰이는 이유와, SoapUI가 그 세계에서 왜 여전히 선택되는지 이해한다.

  8. 중급약 28분

    API 테스트로 커버리지 올리기: 무엇을 얼마나 덮었는지 재는 법

    "API 테스트 100개 있습니다"는 아무것도 말해주지 않는다. 커버리지를 네 층으로 나눠 측정하고, 늘릴 순서를 정하고, 그 숫자를 보고 가능한 형태로 만든다.

이 모듈의 실습

실습은 별도 저장소에서 진행합니다. 새 탭으로 열립니다.