Seongwon Lim

[Postman] 포스트맨 설치 방법과 node.js로 포스트맨 이용하기 본문

Util

[Postman] 포스트맨 설치 방법과 node.js로 포스트맨 이용하기

limsw 2022. 5. 9. 21:31
반응형

What is Postman?

Postman은 사용자가 구축한 API를 테스트 할 수 있으며 API 라이프 사이클의 각 단계를 간소화시켜 API 개발의 생산성을 높여주는 플랫폼이다. 주로 서버사이드 개발을 하는 개발자들이 본인이 구현한 API를 테스트할 때 많이 사용된다.

How to install Postman?

포스트맨 공식 사이트에서 해당 플랫폼을 다운받을 수 있다. 이메일을 이용해서 직접 계정을 생성할 수 있으며 구글 계정으로도 가입이 가능하다.

필자는 MacOS 운영체제를 사용중이기 때문에 다운로드 페이지에 접속하면 위와 같은 화면이 나온다. 옛날에는 Intel 칩과 Apple 칩의 구분이 없었던 것 같은데 M1이 출시하면서 세분화 된 것 같다. 윈도우 운영체제를 이용중인 사용자들은 아마 윈도우 운영체제에 맞는 앱을 다운받을 수 있을 것이다.

 

설치가 완료된 후 포스트맨을 실행하면 바로 이용할 수 있다.


(로그인이 되지 않은 경우 로그인 인증을 요구할 수 있다. 포스트맨의 In Sync 기능을 사용하기 위해서는 로그인을 하는 것이 좋다.)

Hwo to use Postman?

포스트맨에 정상적으로 로그인 한 경우 위와 같은 화면이 뜬다. Overview옆의 + 버튼을 통해서 API 테스트를 진행할 공간을 만들 수 있다.

 

이제 포스트맨의 기능을 조금 더 자세하게 살펴보고자 한다.

해당 부분은 API 요청을 위한 주소를 입력하는 공간이다. 필자는 예시로 localhost:3000을 미리 입력해놓았다. GET 부분은 요청 메서드를 정의하는 드롭다운 메뉴로 우리가 흔히 아는 GET, POST, DELETE 등과 같은 여러 메서드가 존재한다.

해당 부분에서는 데이터를 담아 보낼 때 필요한 Body 부분에 대해서 다루고자 한다.

데이터를 담아 요청을 보내는 Body는 크게 6가지 타입으로 분류할 수 있다.

  • none : 기본 세팅값이며 GET 요청과 같이 아무 데이터를 보내지 않을 때 사용
  • form-data : 이미지나 영상과 같은 파일을 전송할 때 사용한다. 예를 들면 게시물을 올릴 때 사진을 같이 등록하는 것과 같이 특정 파일 전송 시에 사용되는 타입이다.
  • x-www-form-urlencoded : 텍스트만 보낼 때 사용한다. 즉, 파일 첨부는 없다.
  • raw : 문자 그대로를 전송한다. 다른 타입의 경우에는 포스트맨이 알아서 처리를 해주지만 raw는 개발자가 정한 형식에 맞는 값을 써주어야 한다.
    이런 식으로 raw를 선택하면 형식을 정의할 수 있다. 예를 들어 JSON 형식으로 설정했다면 Request 요청 시 데이터의 형식이 JSON 형태로 들어와야 한다는 뜻이다.
  • binary : 텍스트를 포함하지 않는 이미지, 영상 등의 파일을 보낼 때 사용한다.
  • GraphQL : 페이스북에서 만든 Query Language 이다. Client가 Server의 데이터를 효율적으로 가져올 소요가 있을 때 사용한다. 쿼리문을 작성해서 요청할 수 있다.

하단 부분은 API 요청 시 결과가 나타나는 공간이다. 400, 200등과 같은 응답 코드와 Response로 전달할 데이터를 나타낼 수 있으며 또는 Response시 전달할 메세지를 응답할 수도 있다.


Node.js를 이용하여 Postman 직접 사용해보기

간단하게 node.js 개발 환경을 구축해서 postman을 이용하여 직접 API 테스트를 해 볼 것이다.
우선 노드 환경을 구축하기 위해 npm init 명령어를 통해 초기 환경을 구성하고

 

  • npm install express --save를 통해서 express 개발 환경을 구성한다.

그 다음으로는 index.js 파일을 생성하여 아래와 같이 코드를 작성하고 node index.js 명령어를 이용하여 서버를 실행한다.
요청 경로는 localhost:3000으로 통일하여 테스트를 진행했다.

const express = require('express');
const app = express();

app.get('', (req, res, next) => {
    res.status(200).send({
        message: "GET 요청이 성공적으로 수행됨"
    });
});

app.post('', (req, res, next) => {
    res.status(200).send({
        name: req.body.name,
        email: req.body.email
    });
});


app.listen(3000, () => {
    console.log("starting server at port 3000..");
});

GET 요청 수행 결과

StatusCode 200과 res.send()에서 정의한 메세지가 적절하게 응답으로 오는 것을 확인할 수 있다.

POST 요청 수행 결과

POST요청은 Body에 JSON 형식의 데이터를 담아서 보냈다. 요청에 대한 결과 메세지도 알맞게 출력한 것을 확인할 수 있다. POST 요청 시 위와 같이 데이터를 담아 보내는 것은 로그인, 회원가입 등의 기능을 구현할 때 많이 사용된다.

 

PUT, DELETE 등의 메서드는 따로 구현하지 않았지만 GET, POST와 동일하게 로직을 구현한 뒤 요청을 보내면 잘 작동하는 것을 확인할 수 있을 것이다. 데이터베이스를 연동하지 않았기 때문에 변경하거나 삭제할 데이터가 존재하지 않아서 다루지는 않았지만 직접 데이터베이스와 연동해서 여러 API 테스트를 진행해보는 것을 추천한다.

Comments