📌 API 통신 연결 테스트
API 개발 시, 가장 먼저 API 요청 URL이 정상적으로 연결되는지 확인하는 것이 중요합니다.
이후, 요청 데이터 형식에 맞춰 지정된 URL로 요청을 보내고, 응답을 제대로 받아오는지 확인해야 합니다.
Ping(핑), Postman(포스트맨), Wireshark(와이어샤크) 사용하여
API 통신 테스트 하는 방법에 대해 설명드리겠습니다.
- Ping
API 서버와 내 컴퓨터 간의 네트워크 연결 상태를 확인하고,
응답 시간과 연결 가능 여부를 파악하는데 사용 - Postman
다양한 메소드로 API 요청을 보내고, 파라미터와 헤더 설정 후
응답을 빠르게 확인할 수 있는 테스트 도구 - Wireshark
네트워크 패킷을 분석하여 API 요청과 응답이 올바르게 전송되는지 확인하고,
문제 원인을 파악하는 데 유용한 도구
📌 Ping(핑)
Ping은 네트워크 상태를 확인하는 도구입니다.
대상 서버나 컴퓨터에 작은 패킷(데이터)을 보내고, 응답을 받아 연결 상태를 확인
이를 통해 서버가 작동 중인지, 네트워크가 원활한지 알 수 있습니다.
ping [IP 또는 도메인]
🔎 공인 IP vs 사설 IP
API 통신할 업체와 연결하기 전, 공인 IP 또는 사설 IP 중 하나를 선택해야 합니다.
- 공인 IP
외부에서 접근 가능한 IP, 네이버에 "내 IP 확인" 검색 확인 - 사설 IP
내부 네트워크에서만 사용되는 IP, cmd 창에서 ipconfig 명령어 확인
IPv4 주소가 사설 IP
🌐 API 서버 연결 예시
저는 API 서버와 직접 연결하기 위해 공인 IP 선택했습니다.
API 요청 URL : 211.58.77.30
다음 명령어로 Ping을 통해 연결 상태를 확인할 수 있습니다.
ping 211.58.77.30
🌐 구글 서버 연결 예시
도메인 : google.co.kr ➡️ IP 172.217.25.3
결과 : 32바이트 패킷을 4회 보냈고, 각각 50ms, 49ms, 48ms로 응답이 왔습니다.
ping google.co.kr
📌 Postman(포스트맨)
Postman은 API 개발 및 테스트를 위한 웹 기반 도구입니다.
개발자들이 API를 디자인하고 문서화하며, 테스트하고 공유하는 데 사용됩니다.
Postman을 사용하면 간편하게 HTTP 요청을 생성하고,
응답을 확인하며, 테스트를 자동화할 수 있습니다.
https://www.postman.com/downloads
🔎 Postman 웹 사용
Postman 웹 사이트에서 Postman을 사용할 수 있습니다.
공공 API가 아닌 경우, 다운로드하여 테스트해야 합니다.
이는 요청할 서버의 IP가 Postman에 등록되어 있어야 API 요청이 가능하기 때문입니다.
Postman은 데스크탑 애플리케이션과 웹 브라우저 모두에서 사용할 수 있습니다.
그러나 웹에서 사용할 때 CORS(Cross-Origin Resource Sharing) 문제로 인해
Desktop Agent가 필요할 수 있습니다.
https://www.postman.com/product/api-client/
🌐 API 서버 테스트 예시
API 요청 URL : http://211.58.77.30/api/request-manager
요청 POST 방식, JSON 형태 전송해야 합니다.
- 좌측 패널에서 My Workspace를 클릭한 후 New 선택
- HTTP를 선택한 후
POST 선택 / 요청 URL ➡️ http://211.58.77.30/api/request-manager 입력 - Body 탭을 선택한 후 raw 선택
- 요청 데이터 형식에 맞게 JSON 데이터 작성
- "Send" 버튼을 클릭하면 API 서버에서 응답 결과가 하단 패널에 표시
※ 문제 해결 : 만약 응답을 받지 못한다면, ping 명령어를 사용해 API 서버와의 연결 상태 확인
📌 Wireshark(와이어샤크)
와이어샤크는 네트워크 패킷을 캡처하고 분석하는 프로그램입니다.
실시간으로 통신 중인 데이터와 패킷을 캡처하여 데이터 흐름을 분석합니다.
즉, 내가 보내거나 받는 데이터의 내용을 네트워크를 통해 캡처하고 확인할 수 있습니다.
https://www.wireshark.org/#downloadLink
🌐 API 서버 테스트 예시
API 요청 URL : 211.58.77.30
네트워크 문제를 조사할 때 모든 패킷을 캡처하면 원하는 데이터를 찾기 어렵습니다.
패킷 필터링 필요 ➡️ ip.addr == 211.58.77.30 사용하여 해당 IP에 대한 패킷만 필터링할 수 있습니다.
아래와 같이 클라이언트(172.16.3.104)와 REST API 서버(211.58.77.30) 간의
API 요청 및 응답 시 캡처된 패킷 정보를 확인할 수 있습니다.
※ Wireshark에서는 보통 사설 IP가 보입니다.
이는 Wireshark가 사용자의 로컬 네트워크에서 흐르는 패킷을 캡처하기 때문입니다.
공인 IP(예: 211.32.5.100)로 외부 서버와 통신할 때도,
요청은 사설 IP(예: 172.16.3.104)에서 시작되고 응답도 사설 IP로 돌아옵니다.
따라서 Wireshark에서 사설 IP가 보이는 것은 정상입니다.
결론적으로, Wireshark에서는 사용자의 로컬 네트워크 통신이 캡처되므로 사설 IP가 보이는 것이 일반적입니다.
ip.addr == 211.58.77.30
'📌 Web > └ 웹 개발 팁' 카테고리의 다른 글
[Web] 웹 개발 리소스 모음 - 색상, 디자인, 애니메이션, SVG, 파비콘, ASCII, 캡처 도구 (1) | 2024.10.16 |
---|