본문 바로가기
개발자 💻/NestJS

[초보자의 눈으로 보는 NestJS] 3+. API 테스트를 위한 Postman

by 블루로봇 2023. 7. 19.

3+. API 테스트를 위한 Postman

요약

본 글에서는

  • 구현된 API를 테스트할 수 있는 도구인 Postman에 대해서 소개합니다.

 

3-1. Postman?

Postman 로고 (출처 - Postman)

 

 

Postman API Platform | Sign Up for Free

Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.

www.postman.com

API 테스트를 위해 사용할 수 있는 좋은 도구인 포스트맨(Postman)에 대해서 소개하겠습니다.

포스트맨은 HTTP (또는 HTTPs) 기반의 요청을 전송하고 응답을 수신하여, 개발된 API를 테스트해볼 수 있는 좋은 생산성 도구 중 하나입니다. 제가 작성하는 글들에서도 종종 보여드릴 예정인데, 구현된 기능과 라우트 경로가 올바르게 동작하는지 확인하고 싶을 때, 직접 요청을 보내보는 것은 가장 직관적인 테스트 방법입니다.

포스트맨은 이러한 테스트를 위해 간편하고 직관적인 UI와 기능들을 제공하고 있으며, 무료로 이용할 수 있는 애플리케이션이기 때문에 많은 개발자들의 사랑을 받고 있는 API 도구 플랫폼입니다.

특히, 백엔드에서 GET 메소드를 구현하면 크롬 브라우저 등을 이용하여 테스트를 수행할 수 있지만, 크롬 브라우저는 기본적으로 POST 메소드를 지원하지 않기 때문에 POST 메소드를 수행하기 위한 별도의 API 테스터가 필요하므로 이 포스트맨이 아주 제격입니다.

 

3-2. Postman 설치하기

공식 홈페이지에서 자신의 운영체제에 맞는 방식으로 포스트맨을 설치할 수 있습니다.

https://www.postman.com/downloads/

 

Download Postman | Get Started for Free

Try Postman for free! Join 25 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.

www.postman.com

 

포스트맨 애플리케이션 설치

MacOS 기준으로 위와 같은 설치화면이 나오며, Mac의 칩셋에 따라 설치할 앱을 선택할 수 있습니다.

 

3-3. Postman 이용하기

저는 MacOS Apple Chip을 사용하고 있기 때문에, 해당 애플리케이션을 기반으로 설명하겠습니다.

Postman 의 Home 화면

포스트맨을 처음 설치하면 회원가입을 요구합니다. 회원가입을 수행하면 다른 PC에서도 로그인만 하면 저장해 두었던 요청 목록들을 받아올 수 있기 때문에, 적극 이용하시길 바랍니다. 평소 사용하시는 이메일을 기반으로 회원가입을 수행하시면 됩니다.

이후 로그인하여 접속하면 위와 같은 Home 화면을 만날 수 있습니다. 팀 단위의 포스트맨 사용이 아니라 개인적으로 사용한다면 별다른 설정을 수행하지 않아도 됩니다. 

 

이제 작성을 수행할 워크스페이스를 만들어 줍니다. "Create Workspace" 버튼을 통해 워크스페이스를 만듭니다.

Postman 에서 Workspace 만들기

 

Workspace 내부 메뉴

워크스페이스를 만들고 나면 위와 같은 메뉴 화면을 만날 수 있습니다. 다른 메뉴들은 사용하지 않아도 좋습니다.

"Collections" 메뉴에서 새로운 컬렉션을 생성하고 HTTP 통신을 수행해보기 위한 "Request"를 추가해 보도록 합니다.

새로운 Request 생성하기

 

3-4. Postman 에서 요청(Request) 보내기

컬렉션에서 "Add request" 항목을 통해 새로운 요청을 만들면 다음과 같은 화면을 확인할 수 있습니다.

생성된 New Request

 

다음과 같은 기능들을 이용할 수 있습니다.

  • 처음 생성한 요청은 "New Request" 라는 이름을 가지고 있습니다. 해당 요청에 대한 이름은 언제든지 설정/수정할 수 있습니다.
  • 드롭다운 메뉴에서 전송할 메소드들(GET, POST, PUT 등)을 선택할 수 있습니다.
  • URL 텍스트박스에서 전송하는 대상 주소를 입력할 수 있습니다.
  • 각종 파라미터(Params), 인증(Authorization), 헤더(Headers), 바디(Body) 등을 전송에 포함시킬 수 있습니다.
  • "Send" 버튼을 통해 요청을 전송할 수 있습니다.
  • 응답 결과는 Response 영역에서 출력됩니다.

 

예시로 NestJS 보일러플레이트(http://localhost:3000)에 요청을 전송해 보겠습니다.

http://localhost:3000 에 대한 요청과 응답

별도의 파라미터나 바디가 필요하지 않기 때문에, 단순한 요청을 전송하면 응답을 단순히 수신할 수 있습니다.

 

만약 구현된 API가 다른 메소드를 사용한다면, 메뉴에서 해당 메소드로 요청을 전송할 수 있습니다.

포스트맨의 요청에서 제공되는 HTTP 메소드들

대부분의 경우 아래와 같이 요청을 전송하는 경우가 많습니다.

GET 메소드인 경우
URL에 Path 파라미터를 포함하거나 Query 파라미터를 추가적으로 작성하여 전송

POST 메소드인 경우
Body에 필요한 JSON 등을 작성하여 전송

 

아래는 설명을 돕기 위한 몇가지 HTTP 요청의 사용 예시들입니다.

예시 1. POST 메소드로 서버의 /hello 라우트에 Path 파라미터를 넘기기 (주소에 그대로 입력)

POST 메소드와 Path 파라미터의 예시

 

예시 2. GET 메소드로 서버의 /hello 라우트에 Query 파라미터를 넘기기 (주소에 입력하거나, 아래 Key-Value로 입력)

GET 메소드와 Query 파라미터의 예시

 

예시 3. POST 메소드로 서버의 /hello 라우트에 Body JSON을 전송하기 (탭 메뉴 Body > raw > JSON 으로 입력)

POST 메소드와 Body의 예시

 

요청을 보낼 때, URL과 데이터(파라미터 혹은 바디 등) 외에도 헤더나 인증을 추가 설정할 수도 있습니다. 예시로, Authorization 탭에서는 지원하는 여러 인증타입들을 기반으로 요청에 인증을 담아 보낼 수 있습니다.

Authorization을 위해 사용 가능한 인증 타입

 

 

3-5. Postman in VS code !

포스트맨이 VS code의 확장(Extension) 기능으로 자리 잡았습니다! VS code 에서 API 를 구현한 다음 별도로 포스트맵 앱을 켜거나 화면을 이동하지 않아도, IDE 내부에서 테스트를 진행할 수 있습니다.

Visual Studio Code의 Postman Extension

글을 작성하는 날짜 기준, 포스트맨 0.4.0 버전이 업데이트되었습니다. 아직은 베타 단계에 있으나, 구현한 API를 간단히 테스트하는 측면에선, 사용하는데 큰 불편함이 없습니다.

 

Postman Extension의 화면 구성

HTTP Request를 생성하고 기존의 포스트맵 앱에서 사용하던 것처럼 동일하게 사용하면 됩니다.
별도의 기타 앱을 실행하지 않고 VS Code로 API 개발과 테스트를 모두 수행할 수 있게 되었습니다!

 

결론

백엔드 프로그래밍의 구현에서, "실제로 동작하는가?"를 확인해볼 수 있는 API 플랫폼인 포스트맨(Postman)을 소개드렸습니다.

백엔드 프로그래밍은 다양한 서버나 프로그램, 툴(Tool)들을 응용하고 조합하는 경우가 많습니다. 특히, 특정 분야마다 마치 대표적으로 정해진, 다양한 도구들이 있기도 합니다. IT 기술은 특성상 시시때때로 변화하고 진화하며 때론 도태될 수도 있습니다.

제가 소개드린 도구보다도 더 좋은 도구나 자신에게 적합한 도구가 있을 수 있습니다.
관련하여 검색하시고 사용해 보시면서 다양한 도구들을 접해보시는 것을 추천드립니다.

읽어주셔서 감사합니다.