API 오류를 AI에게 물어볼 때 “연결이 안 돼”라는 설명만으로는 충분하지 않은 경우가 많습니다. 요청을 보내지 못한 것인지, 서버가 거절한 것인지, 응답은 왔지만 필요한 데이터가 없는 것인지에 따라 확인할 곳이 달라지기 때문입니다.
웹 API를 읽는 기본 순서는 간단합니다. 내가 보낸 요청을 먼저 확인하고, 서버가 돌려준 상태와 내용을 살펴본 뒤, 기대한 결과와 비교합니다. HTTP로 통신하는 API를 기준으로 이 흐름을 이해하면 AI에게 질문할 때도 필요한 정보를 정확히 전달할 수 있습니다.

1. API는 요청과 응답을 나누어 읽기
API는 프로그램끼리 정해진 방식으로 기능이나 데이터를 주고받도록 만든 인터페이스입니다. HTTP 기반 웹 API에서는 보통 클라이언트가 요청을 보내고 서버가 응답합니다. 화면의 버튼 하나를 눌러도 내부에서는 여러 요청이 일어날 수 있습니다.
따라서 오류 화면만 보기보다 어떤 요청에서 문제가 생겼는지 구분해야 합니다. 상품을 조회하는 요청과 사진을 내려받는 요청이 섞여 있다면, 사진 오류를 상품 조회 실패의 원인으로 착각할 수 있습니다.
AI에게는 “상품 목록 조회 요청 하나를 분석해 줘”처럼 범위를 정해 전달합니다. 요청 시각, 메서드, 응답 상태를 같은 묶음으로 기록하면 여러 기록이 섞이는 것을 줄일 수 있습니다. 아직 응답을 받지 못했다면 상태 코드가 있었다고 가정하지 않습니다.

2. 요청에서 확인할 네 가지
첫째는 메서드입니다. GET은 일반적으로 대상 자원의 정보를 가져오는 데 쓰이며, POST는 보낸 내용을 대상 자원이 처리하도록 요청합니다. POST가 언제나 새 항목 생성만 뜻하는 것은 아니므로 실제 동작은 해당 API의 규격을 확인해야 합니다.
둘째는 대상과 조회 조건입니다. 어느 자원에 요청했는지, 검색어·기간·페이지 같은 조건이 무엇인지 봅니다. 셋째는 헤더로, 인증 방식이나 데이터 형식과 같은 부가 정보를 담을 수 있습니다. Content-Type은 보내거나 받은 내용의 형식을 해석할 때 살펴볼 항목입니다.
넷째는 요청 본문입니다. 어떤 필드가 필수인지, 값의 유형은 맞는지 확인합니다. JSON에서 숫자 3과 문자열 “3”은 다른 유형입니다. AI에게 구조를 보여 줄 때는 괄호나 필드 이름을 임의로 고치기보다, 비밀값만 안전하게 가린 실제 형태를 보존하는 편이 좋습니다.

3. 상태 코드와 응답 내용을 함께 확인하기
응답에서는 상태 코드, 헤더, 본문을 나누어 읽습니다. 200은 요청 성공을 나타내지만, 내가 기대한 상품이 결과에 들어 있다는 보장은 아닙니다. 조건에 맞는 항목이 없다면 빈 목록을 정상적으로 돌려주는 API도 있습니다.
202는 요청을 처리 대상으로 받아들였지만 처리가 끝나지 않았다는 뜻입니다. 이때는 서비스가 제공하는 후속 상태 확인 방법을 따라야 합니다. 204는 성공했으나 추가 응답 내용이 없는 경우이므로, 본문이 비었다는 이유만으로 오류라고 판단하지 않습니다.
JSON 응답을 볼 때는 빈 배열, null, 빈 문자열, 필드가 아예 없는 상태를 구분합니다. 각각의 뜻은 API가 정한 규칙에 달려 있습니다. “값이 없다”로 뭉뚱그리면 AI가 실제 원인을 찾는 데 필요한 차이를 놓칠 수 있습니다.
4. 가상 예시: 성공했는데 상품 목록이 비어 있을 때
가상의 상품 조회 API가 상태 200과 함께 items가 빈 배열인 응답을 돌려줬다고 해 보겠습니다. 사용자는 책 세 권을 기대했지만 화면에는 아무것도 나타나지 않습니다. 이 상황만으로 서버 장애라고 확정할 수는 없습니다.
먼저 요청의 분류 조건과 페이지 번호를 확인합니다. 예를 들어 책 분류를 뜻하는 값이 규격과 다른지, 결과가 없는 뒤쪽 페이지를 요청했는지 점검할 수 있습니다. 테스트 환경에 해당 상품 데이터가 있는지, 사용 중인 계정에 그 데이터가 보이는지도 별도 확인 대상입니다.
조회 조건을 하나씩 바꿔 본 결과는 원래 요청과 함께 기록합니다. 분류 조건을 뺐을 때 데이터가 나온다면 그 차이가 다음 조사 단서가 됩니다. 다만 어떤 조건을 생략했을 때 무엇이 조회되는지는 서비스마다 다르므로, 문서를 확인하지 않고 전체 데이터가 나온다고 가정하지 않습니다.

5. AI에게 전달할 안전한 질문 묶음
질문에는 목표, API 규격의 관련 부분, 요청 구조, 실제 응답, 기대 결과를 함께 넣습니다. “이 요청은 상품 목록을 읽기 위한 것이야. 상태 200을 받았지만 items가 비어 있어. 요청과 응답에서 확인되는 사실, 가능한 원인, 추가로 필요한 정보를 나눠 줘. 아직 변경 요청은 실행하지 마”처럼 범위도 정합니다.
인증 헤더에 들어가는 토큰, API 키, 쿠키와 세션 값은 공유하지 않습니다. 예시는 “인증값 제거”처럼 명시하고, 실제 고객명이나 연락처도 분석에 필요 없다면 가상의 값으로 바꿉니다. 긴 응답은 관련 필드만 남기되 생략했다는 사실을 표시합니다.
성공한 예시와 실패한 예시가 있다면 동일한 항목 순서로 정리해 전달해 보세요. AI가 두 요청의 차이를 비교하기 쉬워집니다. 다만 서로 다른 날짜나 환경에서 받은 응답이라면 그 차이도 함께 적어야 단순 비교의 한계를 알 수 있습니다.
6. 다음 확인은 한 단계씩 진행하기
AI가 원인 후보를 제시하면 확인할 수 있는 가장 작은 단계부터 시작합니다. 문서의 필수 필드 확인, 값의 유형 확인, 조회 조건 비교처럼 읽기 중심의 점검으로 좁힌 뒤 필요한 시험을 정합니다. 모든 설정을 한꺼번에 바꾸면 어느 조치가 영향을 줬는지 알기 어렵습니다.
같은 요청을 무작정 반복하는 것도 피해야 합니다. 생성이나 결제처럼 상태를 바꾸는 요청은 재시도로 중복 처리가 생길 수 있습니다. 실제 서비스의 중복 방지·재시도 규칙과 작업 권한을 확인하고, 가능하면 안전한 테스트 환경에서 검증합니다.
마지막에는 요청이 성공했는지, 응답이 규격에 맞는지, 원하는 결과가 실제로 반영됐는지를 나누어 기록합니다. 이 세 가지를 구분하면 “API가 된다”는 모호한 답을 넘어, 어디까지 확인했고 무엇을 더 알아봐야 하는지 분명하게 질문할 수 있습니다.
'AI 완전정복' 카테고리의 다른 글
| AI 테스트 케이스 만들기: 정상·경계·실패 조건 설계 (0) | 2026.10.18 |
|---|---|
| AI 영상 재생성은 몇 번까지 맡길까? 횟수, 비용, 중단 기준 정하기 (0) | 2026.10.18 |
| AI로 에러 로그 분석하기: 재현 조건과 원인 후보 좁히기 (0) | 2026.10.16 |
| AI 비교표 만들기: 평가 기준·가중치·불확실성 정리 (0) | 2026.10.16 |
| ChatGPT 회의록 정리: 결정사항·담당자·기한 추출하는 법 (0) | 2026.10.16 |
댓글