코린이에서 코른이로 ( PostMan )

양선우·2023년 2월 1일
0

PostMan 쓰는 이유

웹 개발에서 사용하는 대표적인 클라이언트는 브라우저다. 브라우저는 서버에 HTTP 요청을 보낼 수 있는 훌륭한 도구이지만, 주로 웹 페이지를 받아오는 GET 요청에 사용한다. 브라우저의 주소창에 URL을 입력하면, 해당 URL의 root-endpoint로 GET 요청을 보낸다. 테스트를 위해 GET 요청이 아닌 다른 요청을 보내려면, 개발자 도구의 콘솔 창에서 Web API fetch를 사용해야 한다.

매번 코드를 작성할 수는 있다. 그러나 테스트를 위해 매번 코드를 작성하는 것은 상당히 번거로운 작업이다. 매번 코드를 작성하는 것 대신에, HTTP 요청을 테스트할 수 있는 다양한 API 테스트 도구들이 있다. 이러한 API 테스트 도구는 클라이언트 입장에서 서버 API를 테스트하거나, API를 만드는 과정에서 매우 유용하다.

사용 방법

Postman에 회원가입을 한 후, 프로그램을 설치한다.

Postman을 설치한 다음 Workspaces에서 My Workspace를 클릭한 후 +를 눌러 테스팅을 시작한다

Postman을 활용하여 HTTP 요청을 한다.

먼저, 이미 만들어져 있는 API 서버가 주어지는 경우를 생각해 보겠다.

HTTP로 소통하기 위해서는 API 서버의 endpoint가 URL로 주어져야 한다.

예를 들어, 다음과 같은 API 문서가 있다고 가정하겠다.

GET 요청하기
URL
http://3.36.72.17:3000/

메시지 조회
Request
1
GET /kimcoding/messages
[요청] kimcoding이 작성한 모든 메시지를 조회합니다.

추가적인 파라미터를 사용할 수 있습니다.

parameter	형식	설명	필수 포함 여부
roomname	방 이름(문자열)	특정 roomname만 조회	필수 아님
[표] 파라미터 정보


Response
응답은 다음과 같은 JSON 형식입니다.

[
  {
    "id": 1,
    "username": "김코딩",
    "text": "안녕하세요",
    "roomname": "로비",
    "date": "2021-04-02 12:00:00"
  }
 // ...여러 개의 메시지
]
[데이터] Request에 따른 Response 예시

메시지에서 사용하는 속성은 다음과 같습니다.

parameter	형식	설명
id	숫자	고유한 아이디
username	문자열	사용자 이름
text	문자열	본문 내용
roomname	문자열	방 이름
date	문자열	작성한 시간
[표] 파라미터 정보


Postman 화면 보기
다음 그림을 보고 포스트맨의 화면 구성을 확인한다.

포스트맨 화면 구성

  1. 새로운 탭 오픈
  • 요청/응답을 여러 개 확인할 수 있다.
  1. HTTP 메서드 선택
  • GET, POST, DELETE 등과 같은 메서드 중 하나를 선택한다.
    • API 문서 상 GET 메서드를 사용하므로, GET으로 선택한다.
  1. URL 입력 창
  1. HTTP 요청 버튼
  • 요청을 보낸다.
  1. HTTP 요청시 설정할 수 있는 각종 옵션
  • 추가적인 파라미터나, 요청 본문(body)을 추가할 수 있다.
    • API 문서에서 확인할 수 있듯이, roomname 이라는 파라미터를 사용할 수 있다. 필수는 아니지만, 파라미터를 사용하려면 Params 탭의 KEY, VALUE 에 각각 roomname 과 필요한 값을 입력한다.
  1. HTTP 응답 화면
  • 요청을 보낸 후 응답을 확인해 보자.

POST 요청하기
GET 요청은 브라우저로도 충분히 테스트할 수 있다. POST 요청은 GET 요청과 다르게 본문(body)을 포함하는 경우가 많다.

본문을 설정하는 방법은, 위 그림에서 (5)번 - HTTP 요청 설정 화면 에서 본문(body)을 입력하면 된다. POST를 사용하는 API 문서를 먼저 확인해 보자.

URL
http://3.36.72.17:3000/

메시지 추가
Request
1
POST /kimcoding/messages
[요청] kimcoding이 새로운 message를 작성합니다.

요청 본문에는 다음의 내용을 반드시 포함해야 합니다.

요청 형식: JSON
parameter	형식	설명	필수 포함 여부
username	문자열	사용자 이름	필수
text	문자열	본문 내용	필수
roomname	문자열	방 이름	필수
[표] 파라미터 정보


Response
응답은 다음과 같은 JSON 형식입니다.

1
2
3
{
  "id": 5
}
[데이터] Request에 따른 Response 예시

id는 숫자 형식이며, 새로 생성된 메시지의 고유한 ID 값입니다.

다음 그림을 참고하여 POST 요청에 본문을 함께 보낸다.

  1. 본문의 형식 선택 (1)
    JSON 형식으로 보낼 때에는, raw를 선택한다.
  2. 본문의 형식 선택 (2)
    보낼 형식에 맞게 정확한 타입을 선택한다.
    JSON 형식으로 보낼 때에는, JSON을 선택한다.
    앞서 1번 및 2번 과정은 HTTP 요청 헤더에 다음과 같이 작성하는 것과 동일하다.
Content-Type: application/json
  1. 본문 내용
  • 본문을 입력한다. 앞서 JSON을 선택했으므로, 유효한 JSON을 적어주어야 한다.
    • API 문서에 따르면 username, text, roomname 을 형식에 맞게 적어주어야 한다.

모든 요청 본문 입력이 완료되었다면, 요청을 보낸다. URL과 Endpoint, 그리고 HTTP 메서드를 정확하게 입력했는지 한 번 더 확인해보자

응답 살펴보기
한 번에 응답을 확인할 수 있다면 좋겠지만, 그렇지 않을 수도 있다. 다음과 같은 상황이 발생할 수 있다.

상황 1. 요청이 끝나지 않아요!
일반적으로 서버가 요청에 대한 응답을 하지 않는 경우, 요청이 끝나지 않습니다. 이것은 서버의 문제입니다. 만약 여러분이 서버를 만드는 중이라면, 응답 처리를 했는지 확인해 보세요!

상황 2. 기대했던 응답이 오지 않아요!
결과에 아무것도 나오지 않거나, 기대했던 값이 나오지 않았나요? HTTP 응답 코드를 확인해 보세요.

POSTMAN에서 응답의 상태코드

POSTMAN에서 응답의 상태코드를 확인할 수 있다.

위 그림의 우측 상단에 HTTP 응답 코드가 표시된다. 400 Bad Request라고 되어 있다면, 잘못된 요청을 한 경우일 것이다.

어떤 결과가 나왔다면, 문제 해결의 실마리를 찾을 수 있다.

profile
코딩이 하고 싶은 사람

0개의 댓글