API Test/POSTMAN2025. 3. 18. 08:00

Postman을 사용하여 API 실행하는 방법 알아보았어요

 

Postman을 사용하여 API 실행하는 방법

Postman을 사용하여 API 실행하는 방법

 

 

아래는 Postman 워크스페이스입니다. Postman 도구의 단계별 프로세스와 다양한 기능을 함께 탐색해보겠습니다!

 

Postman을 사용하여 API를 실행하는 방법

  1. 새로 만들기(New) - 새로운 요청, 컬렉션 또는 환경을 생성하는 곳입니다.
  2. 가져오기(Import) - 컬렉션이나 환경을 가져올 때 사용됩니다. 파일, 폴더, 링크에서 가져오거나 원시 텍스트를 붙여넣는 옵션이 있습니다.
  3. 실행기(Runner) - 자동화된 테스트를 컬렉션 실행기를 통해 실행할 수 있습니다. 이는 다음 레슨에서 자세히 다룰 예정입니다.
  4. 새로 열기(Open New) - 이 버튼을 클릭하면 새 탭, Postman 창 또는 실행기 창을 열 수 있습니다.
  5. 내 워크스페이스(My Workspace) - 개인 또는 팀으로 새로운 워크스페이스를 생성할 수 있습니다.
  6. 초대하기(Invite) - 팀원을 초대하여 워크스페이스에서 협업할 수 있습니다.
  7. 히스토리(History) - 그동안 보낸 요청들이 히스토리에 표시됩니다. 이를 통해 수행한 작업을 쉽게 추적할 수 있습니다.
  8. 컬렉션(Collections) - 컬렉션을 생성하여 테스트 스위트를 조직화할 수 있습니다. 각 컬렉션은 하위 폴더와 다수의 요청을 가질 수 있으며, 요청이나 폴더를 복제할 수도 있습니다.
  9. 요청 탭(Request tab) - 현재 작업 중인 요청의 제목이 표시됩니다. 기본적으로 제목이 없는 요청은 "Untitled Request"로 표시됩니다.
  10. HTTP 요청(HTTP Request) - 클릭하면 GET, POST, COPY, DELETE 등 다양한 요청의 드롭다운 목록이 표시됩니다. Postman API 테스트에서 가장 일반적으로 사용되는 요청은 GET과 POST입니다.
  11. 요청 URL(Request URL) - 엔드포인트라고도 하며, API가 통신할 링크를 입력하는 곳입니다.
  12. 저장(Save) - 요청에 변경 사항이 있을 경우, 저장을 클릭하여 변경 사항이 손실되거나 덮어쓰이지 않도록 해야 합니다.
  13. 매개변수(Params) - 요청에 필요한 파라미터를 키-값 형태로 입력하는 곳입니다.
  14. 인증(Authorization) - API에 접근하기 위해 필요한 적절한 인증을 설정합니다. 사용자 이름과 비밀번호, 베어러 토큰 등이 사용됩니다.
  15. 헤더(Headers) - 조직의 요구 사항에 따라 콘텐츠 타입을 JSON으로 설정하는 등 헤더를 추가하거나 수정할 수 있습니다.
  16. 본문(Body) - POST 요청에서 주로 사용되며, 요청의 세부 정보를 커스터마이징하는 곳입니다.
  17. 사전 요청 스크립트(Pre-request Script) - 요청 전에 실행되는 스크립트입니다. 일반적으로 환경 설정을 위해 사용되며, 이를 통해 테스트가 올바른 환경에서 실행되도록 보장합니다.
  18. 테스트(Tests) - 요청 실행 후에 수행되는 스크립트입니다. 응답 상태가 정상적인지, 가져온 데이터가 예상한 대로인지 등을 확인하는 체크포인트를 설정하는 데 중요합니다.

 

 

GET 요청 작업하기

GET 요청은 주어진 URL로부터 정보를 조회할 때 사용되며, 해당 엔드포인트에 어떠한 변경도 가하지 않습니다.

이번 Postman 튜토리얼의 모든 예제에서는 다음의 URL을 사용하겠습니다:

➡️ https://jsonplaceholder.typicode.com/users

이 URL은 사용자 정보 목록을 제공하는 예시 API입니다.

워크스페이스에서의 단계별 안내

  1. HTTP 요청 방식을 GET으로 설정하세요.
    • Postman 상단의 요청 메서드 드롭다운 메뉴에서 GET을 선택합니다.
  2. 요청 URL 필드에 링크를 입력하세요.
  3. Send 버튼을 클릭합니다.
    • 요청을 전송하기 위해 Send 버튼을 누르세요.
  4. 응답으로 200 OK 메시지를 확인하세요.
    • 요청이 성공적으로 처리되었다면 상태 코드로 200 OK 메시지가 표시됩니다.
  5. 본문에 10명의 사용자 결과가 표시됩니다.
    • 응답 본문(Response Body)에 10명의 사용자 정보가 JSON 형식으로 나타납니다.
    • 이는 테스트가 성공적으로 실행되었음을 의미합니다.
    예시로 첫 번째 사용자 정보는 다음과 같이 표시될 것입니다:

{
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "Sincere@april.biz",
  ...
}

 

 

📌 참고 사항

  • GET 요청이 실패하는 경우가 있을 수 있습니다.
    • 유효하지 않은 요청 URL: 입력한 URL에 오타가 있거나 존재하지 않는 엔드포인트인 경우 요청이 실패합니다.
      • 해결 방법: URL을 다시 확인하고 정확히 입력합니다.
    • 인증 필요: 일부 API는 접근을 위해 인증이 필요합니다.
      • 해결 방법: 해당 API의 인증 방법에 따라 인증 정보를 추가로 제공해야 합니다 (예: API 키, 토큰 등).
    • 네트워크 문제: 인터넷 연결 상태가 불안정한 경우 요청이 실패할 수 있습니다.
      • 해결 방법: 네트워크 연결을 확인하고 다시 시도합니다.

 

이렇게 해서 Postman에서 GET 요청을 사용하여 정보를 가져오는 기본적인 방법을 알아보았습니다. GET 요청은 API 테스트의 가장 기본적인 기능으로, 데이터를 조회하고 확인하는 데 필수적입니다.

 

POST 요청 작업하기

 

 

POST 요청은 GET 요청과 달리 사용자가 엔드포인트에 데이터를 추가하여 서버의 리소스를 생성하거나 수정할 때 사용됩니다.
이전 튜토리얼에서 사용한 GET 요청의 데이터를 활용하여, 이제 새로운 사용자를 추가해 보겠습니다.

1단계) 새로운 요청을 만들기 위해 새로운 탭을 클릭하세요.

 

2단계) 새로운 탭에서

3단계) Body에서

  • raw 옵션을 클릭하세요.
  • 형식을 JSON으로 선택합니다.

4단계) 이전 GET 요청에서 가져온 사용자 데이터 중 하나를 아래와 같이 복사하여 붙여넣습니다. 중괄호 {}와 대괄호 []가 올바르게 쌍을 이루도록 코드가 정확히 복사되었는지 확인하세요. id11로 변경하고, name을 원하는 이름으로 수정합니다. 주소 등의 다른 세부 정보도 변경하실 수 있습니다.

예시:

[
    {
        "id": 11,
        "name": "Krishna Rungta",
        "username": "Bret",
        "email": "Sincere@april.biz",
        "address": {
            "street": "Kulas Light",
            "suite": "Apt. 556",
            "city": "Gwenborough",
            "zipcode": "92998-3874",
            "geo": {
                "lat": "-37.3159",
                "lng": "81.1496"
            }
        },
        "phone": "1-770-736-8031 x56442",
        "website": "hildegard.org",
        "company": {
            "name": "Romaguera-Crona",
            "catchPhrase": "Multi-layered client-server neural-net",
            "bs": "harness real-time e-markets"
        }
    }
]

 

 

참고 사항:

  • JSON 형식에 맞게 데이터가 정확히 작성되었는지 확인하세요.
  • 각 속성과 값 사이에 쌍따옴표(")를 사용하여 문자열로 표시해야 합니다.
  • 쉼표를 통해 각 속성을 구분하고, 마지막 속성 뒤에 쉼표가 없는지 확인하세요.
  • 중첩된 객체나 배열의 경우에도 중괄호 {}와 대괄호 []가 올바르게 사용되었는지 확인하세요.

 

이렇게 수정한 데이터를 POST 요청의 본문에 포함시키면, 서버에 새로운 사용자 정보가 추가됩니다.

이 과정은 API를 통해 데이터를 생성하거나 업데이트할 때 기본적으로 사용되는 방법입니다.


 

5단계) 다음으로,

  • ✔ "Send" 버튼을 클릭하세요.
    • 이 버튼을 클릭하면 설정한 POST 요청이 서버로 전송됩니다.
  • ✔ 상태 코드가 201 Created로 표시되는지 확인하세요.
    • 이는 요청이 성공적으로 처리되어 새로운 리소스가 생성되었음을 의미합니다.
    • 상태 코드는 일반적으로 응답 창 상단이나 헤더 부분에서 확인할 수 있습니다.
  • ✔ 응답 본문(Body)에 방금 전송한 데이터가 나타납니다.
    • 서버로부터의 응답으로, 생성된 사용자의 정보가 JSON 형식으로 표시됩니다.
    • 이를 통해 데이터가 정확하게 전달되고 처리되었는지 확인할 수 있습니다.

 

 

 

✨ 추가로 알아두시면 좋은 점:

  • 상태 코드 201 Created의 의미
    • 201 Created는 클라이언트의 요청이 성공적으로 처리되어 서버에 새로운 리소스가 생성되었을 때 반환되는 표준 HTTP 응답 코드입니다.
    • 이는 POST 요청이 의도한 대로 수행되었음을 나타냅니다.
  • 응답 데이터 활용하기
    • 응답으로 받은 데이터는 서버에서 최종적으로 저장된 내용이므로, 이를 활용하여 애플리케이션의 상태를 업데이트하거나 사용자에게 결과를 보여줄 수 있습니다.
    • 예를 들어, 새로 생성된 사용자의 ID나 기타 정보를 추출하여 다음 작업에 활용할 수 있습니다.
  • 헤더 설정 확인하기
    • POST 요청을 보낼 때는 헤더에 Content-Type: application/json이 설정되어 있는지 확인하는 것이 좋습니다.
    • 이를 통해 서버에게 전송되는 데이터의 형식을 명확히 알려줄 수 있습니다.
  • 에러 발생 시 대처 방법
    • 만약 요청이 실패하고 4xx 또는 5xx와 같은 상태 코드를 받는다면, 요청 본문이나 헤더에 오류가 없는지 다시 한 번 점검해 보세요.
    • 특히, JSON 형식의 문법 오류나 필수 필드의 누락 등이 없는지 확인하는 것이 중요합니다.

🔎 더 깊이 알아보기:

POST 요청은 서버에 데이터를 생성하거나 제출할 때 자주 사용되며, 웹 애플리케이션에서 매우 중요한 역할을 합니다. 실제 개발 환경에서는 보안을 위해 HTTPS를 사용하고, 사용자 입력에 대한 철저한 검증이 필요합니다.

또한, RESTful API를 설계하거나 사용할 때는 HTTP 메서드의 의미와 사용법을 정확히 이해하는 것이 도움이 됩니다.

 

 

 

이 과정을 통해 POST 요청을 활용하여 서버에 데이터를 추가하는 방법을 익힐 수 있습니다.

다른 엔드포인트나 데이터로도 응용해 보시면 더욱 이해가 깊어질 것입니다.

 

HTTP 프로토콜에서 메서드는 클라이언트와 서버 간의 통신 방식을 정의합니다. 각 메서드는 특정한 목적과 동작을 가지며, 웹 애플리케이션 개발에서 핵심적인 역할을 합니다. GET, PUT, DELETE 메서드에 대해 자세히 설명해 드리겠습니다.

1. GET 메서드

개요:

  • 리소스 조회를 위해 사용됩니다.
  • 서버로부터 데이터를 가져오는 역할을 합니다.
  • 데이터나 서버의 상태를 변경하지 않습니다.

특징:

  • 안전성(Safe): 서버의 상태를 변경하지 않으므로 안전한 메서드로 간주됩니다.
  • 멱등성(Idempotent): 동일한 GET 요청을 여러 번 보내도 결과는 동일합니다.
  • 캐싱 가능: GET 요청은 브라우저나 프록시 서버에서 캐싱될 수 있어 성능 향상에 도움이 됩니다.

예시:

GET /api/users HTTP/1.1
Host: example.com

 

  • 위의 요청은 example.com 서버에서 모든 사용자 정보를 가져옵니다.

사용 방법:

  • 쿼리 스트링(Query String): 필요한 매개변수를 URL에 쿼리 스트링으로 전달합니다.
    • 예: GET /api/users?id=1
  • 헤더(Header): 추가적인 정보를 헤더에 포함시킬 수 있습니다.

주의 사항:

  • 민감한 정보 전송 금지: URL에 포함된 정보는 노출될 수 있으므로 비밀번호나 개인 정보를 전송하지 않습니다.

2. PUT 메서드

개요:

  • 리소스의 전체 수정 또는 생성에 사용됩니다.
  • 지정된 URI에 리소스를 저장하며, 이미 존재하면 덮어쓰기를 합니다.

특징:

  • 멱등성(Idempotent): 동일한 PUT 요청을 여러 번 보내도 결과는 동일합니다.
  • 전체 업데이트: 리소스의 모든 데이터를 제공해야 합니다.

예시:

PUT /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "id": 1,
  "name": "홍길동",
  "email": "hong@example.com"
}

 

  • 위의 요청은 id가 1인 사용자의 정보를 업데이트하거나, 없을 경우 새로 생성합니다.

사용 방법:

  • Request Body: 전송하려는 데이터를 요청 본문에 포함시킵니다.
  • Content-Type 헤더 설정: 전송하는 데이터의 타입을 명시해야 합니다.
    • 예: Content-Type: application/json

주의 사항:

  • 부분 업데이트 불가: 일부 필드만 업데이트하고 싶을 때에는 PUT 대신 PATCH 메서드를 사용해야 합니다.
  • 데이터 제공: 업데이트하려는 모든 필드를 제공해야 하며, 누락된 필드는 기본값이나 null로 처리될 수 있습니다.

3. DELETE 메서드

개요:

  • 리소스 삭제를 위해 사용됩니다.
  • 지정된 URI의 리소스를 삭제하도록 서버에 요청합니다.

특징:

  • 멱등성(Idempotent): 동일한 DELETE 요청을 여러 번 보내도 결과는 동일합니다. 이미 삭제된 리소스를 다시 삭제해도 추가적인 변화는 없습니다.
  • 안전하지 않음(Unsafe): 서버의 상태를 변경하므로 안전한 메서드가 아닙니다.

예시:

DELETE /api/users/1 HTTP/1.1
Host: example.com

 

  • 위의 요청은 id가 1인 사용자를 삭제합니다.

사용 방법:

  • URI 지정: 삭제하려는 리소스의 정확한 URI를 지정해야 합니다.
  • 본문 없음: DELETE 요청은 일반적으로 본문을 포함하지 않습니다.

주의 사항:

  • 복구 불가능성: 삭제된 데이터는 복구하기 어렵거나 불가능하므로 신중하게 사용해야 합니다.
  • 권한 관리: 중요하거나 민감한 데이터의 삭제는 적절한 인증 및 권한 검사가 필요합니다.

추가로 알아두시면 좋은 점

1. 멱등성(Idempotent)과 안전성(Safe)의 차이:

  • 멱등성: 요청을 여러 번 반복해도 동일한 결과를 얻는 성질을 말합니다. GET, PUT, DELETE 메서드는 멱등합니다.
  • 안전성: 서버의 상태를 변경하지 않는 성질을 말합니다. GET 메서드는 안전하지만, PUT과 DELETE는 아닙니다.

2. 다른 HTTP 메서드와의 비교:

  • POST 메서드:
    • 리소스 생성에 사용됩니다.
    • 멱등하지 않습니다. 동일한 요청을 여러 번 보내면 리소스가 그만큼 생성됩니다.
    • 예시:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "김철수",
  "email": "kim@example.com"
}

 

PATCH 메서드:

  • 리소스의 부분 수정에 사용됩니다.
  • 멱등하지 않습니다. 동일한 요청을 반복하면 의도치 않은 결과를 초래할 수 있습니다.
  • 예시:
PATCH /api/users/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "email": "new_email@example.com"
}

 

3. HTTP 응답 코드:

  • 각 메서드는 요청 결과에 따라 다양한 응답 코드를 반환합니다.
    • 200 OK: 요청이 성공적으로 처리되었습니다.
    • 201 Created: 새로운 리소스가 생성되었습니다 (주로 POST 응답).
    • 204 No Content: 요청이 성공적으로 처리되었지만, 반환할 내용이 없습니다 (주로 DELETE 응답).
    • 400 Bad Request: 잘못된 요청입니다.
    • 404 Not Found: 요청한 리소스를 찾을 수 없습니다.
    • 500 Internal Server Error: 서버 내부 오류가 발생했습니다.

4. RESTful API 설계 원칙:

  • 자원(Resource): 명사 형태의 URI를 사용하여 자원을 식별합니다.
    • 예: /api/users, /api/users/1
  • HTTP 메서드: 자원에 대한 동작을 HTTP 메서드로 표현합니다.
    • 예: GET(조회), POST(생성), PUT(전체 수정), PATCH(부분 수정), DELETE(삭제)
  • 무상태성(Stateless): 각 요청은 자체적으로 완전한 정보를 포함해야 하며, 서버는 클라이언트의 상태를 유지하지 않습니다.

5. 보안 및 인증:

  • HTTPS 사용: 데이터의 기밀성과 무결성을 위해 SSL/TLS 프로토콜을 통한 통신이 권장됩니다.
  • API 키 및 토큰: 인증이 필요한 요청의 경우, 헤더에 인증 정보를 포함시켜야 합니다.
    • 예: Authorization: Bearer {token}

HTTP 메서드인 GET, PUT, DELETE는 웹 통신에서 각각의 역할과 특징을 가지고 있습니다. 이들의 정확한 사용법과 차이를 이해하면, 효율적이고 안전한 웹 애플리케이션을 개발하는 데 큰 도움이 됩니다. 특히, 멱등성과 안전성의 개념을 이해하여 서버의 상태 관리와 오류 처리에 주의해야 합니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터