Postman은 간편하면서도 효율적인 API 플랫폼으로, API의 설계부터 구현, 테스트, 그리고 문서화에 이르기까지 모든 과정을 한 곳에서 진행할 수 있게 지원하는 도구이다.
Postman을 활용하면, 우리는 손쉽게 원하는 엔드포인트 URL에 요청을 보낼 수 있고, 그에 따른 응답을 확인할 수 있다. 이를 통해 API가 정상적으로 작동하는지 쉽게 테스트할 수 있다.
이 기능은 브라우저에서도 제공되지만, 시나리오 테스트를 체계적으로 수행하거나, 헤더나 바디 값을 수정하는 등의 기능을 원한다면 Postman과 같은 도구가 상당히 유용하다는 것을 알 수 있다.
게다가, Postman은 인증 정보 관리, 요청에 필요한 헤더 값 수정 등을 쉽게 할 수 있게 지원한다. 이런 기능들은 API 테스트를 더욱 효율적으로 진행하게 도와준다.
API를 개발하거나 테스트하는 데 있어 그 결과를 문서화하거나 공유하는 데 있어 매우 유용하다. 또한, Postman의 'Collection' 기능을 이용하면, 이전에 사용했던 API들을 묶어서 관리하고 재사용할 수 있다.
Collection?
.
Collection은 여러 HTTP 요청들을 하나의 그룹으로 묶는 역할을 한다. 이는 모든 HTTP 요청을 Collection 안에 포함시킬 수 있다는 것을 의미한다.
Collection 안에 있는 모든 요청들에 대해서는 통합 테스트를 수행할 수 있는데 다양한 요청들을 모아서 관리하고 공유하는 Collection은 API 사용법을 설명하는 설명서 같은 역할을 한다.
( 백엔드와 프론트엔드 간의 작업이 분리되어 있을 경우, 개발에 앞서 Collection의 규칙을 합의하고 이를 바탕으로 작업을 진행하는 것이 효율성을 높일 수 있다.)
https://jsonplaceholder.typicode.com/
위 URL을 통해 HTTP API를 이용한 여러가지 실험들을 해볼 수 있었다.
먼저, folder를 생성해 Collection에 포함된 API 샘플이 다루는 게시판의 다양한 정보들(글쓴이, 게시글, 댓글 등)을 체계적으로 분류해보자. 이를 위해 각 정보에 맞는 폴더를 만들어 관리하는 것이 효율적이다.
이제 API에 대한 실제 테스트를 수행하려면 Request를 생성해야 한다.
API 테스트 프로젝트의 디렉토리 구조가 설정되었으니, 이제 실제 API에 요청을 보내는 작업을 시작해보자.
게시글 정보를 확인하는 테스트를 위해서 'posts' 폴더에 새로운 Request를 생성한다.
그후 GET 요청을 보내면 전체 게시글 갯수를 조회 할 수 있다.
(Get 메서드를 포함하여, Post/Put/Delete 등 다양한 HTTP 요청 메서드를 아래와 같이 선택하여 API 요청을 전송할 수 있다.)
API 호출하는 방법은 매우 간단한데, HTTP 메서드를 선택 후, 아래와 같이 URL, Params, Authorization, Request Header 등 필요한 데이터를 입력하고 우측의 Send 버튼을 클릭하면 API가 전송된다. 응답 후 하단에 응답 데이터가 시각적으로 보이게 된다.
Request URL : Http 메서드를 선택하고 API를 전송할 URL를 입력
Params : 파라미터 정보를 Key / Value 형태로 입력해도 되고,
URL에 ?key=value&key=value 형태로 입력하면 자동으로 채워짐
Authorization : Bearer Token, OAuth 등 다양한 인증에 필요한 키 혹은 토큰 데이터 입력
Headers : Request Header를 Key / Value 형태로 입력
Body : Request Body를 다양한 데이터 타입으로 입력 가능
Pre-request Script, Tests : API 전송 전 실행할 Javascript 코드 및 실행 후 Javascript Test 코드 작성
Send : 버튼을 클릭하여 API 전송
Response : 응답받은 Reponse Body 결과를 Json/XML 등의 형태로 시각화하여 볼 수 있고, Response Cookie나 Header 정보 확인 가능,
Response : 우측 상단에 응답 코드 / 응답 시간 / 응답 크기 확인 가능, 마우스를 올려보면 각각의 상세 데이터를 확인 가능
여기서 Query Params에 값을 넣어 원하는 (ex: "userId","id"...) 게시글만 조회 할 수 도 있다.(🔽 "id"가 3인 사용자가 쓴 게시글만 조회한 경우)
이번에는 POST 요청을 해보자
게시글을 조회하는 것뿐만 아니라, 게시글을 작성하고 발행하는 API 테스트도 필요한 경우가 있다. 이런 경우, 잘 구성된 인터페이스를 가진 포스트맨을 이용하면 간편하게 POST 요청을 보낼 수 있다.
Post 요청 등 Request Body가 필요한 경우는 아래와 같이 Body 탭에 데이터 작성이 가능하다. form-data, GrqphQL 등의 형태로 입력이 가능하고, raw를 선택하여 JSON/XML/HTML 등의 형태로 입력이 가능하다.
(🔽ex : KEY-VALUE 값을 치지 않고 raw 항목으로가 JSON형태로 입력)
이번에 Postman을 이용해 API 테스트를 해보면서, 솔직히 말하자면, 좀 당황스러웠다. Postman을 처음 사용하는 것도 아니었는데, 내가 생각했던 것보다 잘 몰랐던 것 같다... 그래서 알고 있던 내용조차 제대로 활용하지 못하고 시간이 많이 소요되었던 것 같다.
요즘은 프론트엔드 개발자라도 기본적인 백엔드 지식이 필수라는 걸 다시 한번 깨달았다. 이걸 너무 가볍게 생각했던 것 같아 반성하게 된다.. 앞으로 백엔드 공부도 천천히 해나가면서, 협업에서 차질이 생기지 않도록 해야겠다.
포스트맨의 변수(variables)는 프로그래밍에서 일반적으로 사용되는 변수와 같은 방식으로 동작한다.
이 '변수'는 URI나 Resource와 같은 텍스트를 단순하게 표현하기 위해 사용되는데, 이걸 사용하면 어디든 텍스트가 들어가는 부분을 대체할 수 있다.
변수를 사용하는 이유는
첫째, 같은 텍스트를 여러 번 사용해야 할 때 그것을 하나의 변수로 만들어 재사용이 가능하게 되는 것이고,
둘째, 해당 텍스트가 바뀌어야 할 때마다 일일이 찾아 바꾸지 않아도, 변수값만 수정하면 자동으로 일괄 적용되는 편리함이 있기 때문이다.
이런 변수는 크게 두 종류로 나눌 수 있다.
하나는 어디서든 쓸 수 있는 '글로벌 환경 변수', 다른 하나는 특정 환경에서만 적용되는 '지역 환경 변수' 이다.
지역 환경 변수는 그 이름 그대로 특정 환경에서만 사용되는 변수로, 환경이 바뀔 때마다 그 환경에 맞는 값으로 바뀌게 된다.
반면에 글로벌 환경 변수는 특정 환경에 상관 없이 어디서든 쓸 수 있는 전역 변수이다.
신기한 것은, 만약 지역 환경 변수와 글로벌 환경 변수가 모두 설정되어 있다면, 우선순위는 글로벌 환경 변수가 더 높다는 점이다.
변수 설정은 매우 간단한데 POSTMAN의 상단 메뉴에 'Environment'라는 항목이 있는데 이곳에서 새로운 환경을 생성하고, 변수 이름과 값을 입력하면 된다.
이렇게 생성된 변수는 요청 URL이나 헤더, 본문 등에서 사용이 가능하다.
글로벌 변수는 'Global'을 선택하고, 지역 환경 변수는 해당 환경을 선택하여 설정하면 되는데 만약 같은 이름의 글로벌 변수와 지역 환경 변수가 있다면, POSTMAN에서는 글로벌 변수를 우선적으로 사용합니다. 이 점은 변수를 사용할 때 반드시 기억해두어야 한다.
또한, 변수의 값은 실제 요청을 보낼 때 해석되므로, 변수를 사용하면 여러 요청에서 동일한 값이 필요할 때 유용하게 사용할 수 있다.
예를 들어, 동일한 서버에 여러 요청을 보내야 하는 경우, 서버의 URL을 변수로 저장하면 매번 URL을 입력하지 않아도 되는 것이다.
이번에 Postman을 이용해 API 테스트를 해보면서, 솔직히 말하자면, 좀 당황스러웠다. Postman을 처음 사용하는 것도 아니었는데, 내가 생각했던 것보다 잘 몰랐던 것 같다... 그래서 알고 있던 내용조차 제대로 활용하지 못하고 시간이 많이 소요되었던 것 같다.
요즘은 프론트엔드 개발자라도 기본적인 백엔드 지식이 필수라는 걸 다시 한번 깨달았다. 이걸 너무 가볍게 생각했던 것 같아 반성하게 된다.. 앞으로 백엔드 공부도 천천히 해나가면서, 협업에서 차질이 생기지 않도록 해야겠다.