Spring Boot를 비롯한 Backend 개발은 UI가 없는 상태로 개발이 진행되는 경우가 많습니다. 그래서 UI가 나오기 전에 API의 기능을 테스트 해보기 위한 여러가지 API Testing 도구들을 사용하게 되는데, 그중 대표적인 도구는 Postman입니다.
Postman을 사용하면 다양한 형태의 HTTP 요청을 보내보고, 그 응답을 확인해 볼 수 있습니다. 폴더구조의 형태로 요청들을 정리하거나, 자주 사용하는 값을 변수의 형태로 저장할 수도 있습니다.
기본적인 화면에서 그림에 보이는 + 버튼을 누르게 되면 Collection을 생성하게 됩니다. 개인적인 제안으로는 하나의 프로젝트에 대하여 Collection을 하나 만드는 것입니다. Collection을 기준으로 요청을 생성하게 되면 해당 프로젝트의 기능을 한곳에서 관리할 수 있으며, 후에 보안 / 인증 설정들을 공유하기 편하기 때문입니다.
하나의 Collection 내부에도 폴더를 추가할 수 있습니다. 이는 URL을 기준으로 분류하거나, 특정 시나리오를 기준으로 만드는 것도 가능합니다.
사용법은 비교적 직관적입니다. 주소창에 주소를 입력하고, Method를 선택하면 요청을 보낼 수 있습니다. Params 항목에는 URL의 Query Parameter를 설정할 수 있으며, Headers 에 Request Header를, Body에 Request Body를 작성할 수 있습니다. 단, Postman은 단순 테스트 도구이기 때문에 데이터 변환과 같은 것들을 자동으로 해주진 않습니다. 오타나 문법 오류에 대한 검증은 해주기 때문에 잘 고치면서 작성하면 됩니다.
Body의 설정들도 다양하게 존재하는데, JSON과 같은걸 사용할때 raw 옵션을 사용하거나, 파일을 보내기 위해 form-data 등을 설정하는 것처럼 다양한 선택지가 존재합니다.
Header 항목이며, 이미 존재하는 Header도 있고, 수동으로 추가할 수도 있습니다. 여기에 더해 앞서 Body에서 선택한 데이터형에 따라 Content-Type Header는 자동으로 추가됩니다.
마지막으로 Environment를 살펴보면, Postman에서는 사용자 입력을 받는 대부분의 위치에 {{변수명}} 를 이용해 미리 저장된 값을 가져올 수 있습니다. Body의 몇몇 상황을 제외하고는 대부분 사용 가능합니다.
이런 변수들은 Environment 에서 저장할 수 있습니다.
Collection과 유사하게 여러 세트를 만들어 줄 수 있습니다. 다만 여기있는 내용은 따로따로 사용하는 것이 아닌 변수에 값을 할당하는 수준으로 사용해야 합니다.
내용을 보면 다양한 변수에 할당된 기본값, 임시로 할당해놓은 값들을 확인해볼 수 있습니다. 임시로 할당한 값은 Reset All 을 선택하면 INITIAL VALUE 의 값으로 CURRENT VALUE 가 설정되며, Persist All 을 선택하면 CURRENT VALUE 가 INITIAL VALUE 로 설정됩니다.
그 외에도 JS를 이용해 응답의 일부분을 가져와서 Cookie에 할당하는 등 다양한 기능을 제공하는 Postman입니다. Postman을 유용하게 사용하면 API 개발에 있어서 많은 도움을 받을 수 있습니다.