한국어

EDPS

[펌] postman 관련

조회 수 152 추천 수 0 2018.05.29 09:53:25

Postman 이란 (https://www.getpostman.com/)

A powerful GUI platform to make your API development faster & easier, from building API requests through testing, documentation and sharing.

Postman은 개발한 API를 테스트하고, 테스트 결과를 공유하여 API 개발의 생산성을 높여주는 플랫폼입니다.

Postman을 간단한 tool이 아닌 플랫폼으로 소개하는 이유는 직접 사용해 본다면 느껴지는데, API 테스트뿐만 아니라 작년에 업데이트된 버전부터는 Collection Sync, API Monitoring 등 팀원들이 협업하는데 도움을 주는 기능이 추가되었습니다. 단, Team Library 기능은 30일 trial version 사용 이후에는 유료로 사용해야 합니다. (https://www.getpostman.com/pricing)

Postman 설치

공식 홈페이지에서 다운받아 설치하며, 이메일 주소로 가입하거나 구글 계정을 이용하여 로그인할 수 있습니다. (Sync 기능을 위해 로그인하여 사용할 것을 추천드립니다.)

1.jpg

[그림 1] 초기 설치 모습

Postman 사용법

가장 많이 사용하는 query string이 포함된 GET 방식의 호출과 JSON이 사용된 POST 방식의 호출을 샘플로 설명하겠습니다.

1. Query string이 포함된 GET 방식의 호출

2.jpg

[그림 2] GET 방식 호출 화면

URI에 query string을 포함한 GET 방식으로 호출하는 경우에는 [그림 2]의 URI에 입력한 키와 값이 URI 입력칸 밑에 [key]와 [value]로 추가되고, API를 호출한 결과는 하단의 [Body] 영역에 출력됩니다.

2. JSON이 사용된 POST 방식의 호출

3.jpg

[그림 3] POST 방식의 API 호출 화면에서 JSON Data 입력

4.jpg

[그림 4] HTTP Header 정보 추가

JSON 포맷의 POST 방식으로 호출하는 경우에는 [그림 3]과 같이 [Body] 영역에 JSON Data를 입력합니다. [그림 4]의 [JSON(application/json)]를 선택하면 Header에 Content-Type이 application/json이 자동으로 추가되고 API를 호출한 결과는 하단의 [Body] 영역에 출력됩니다. 사용자는 Content-Type뿐만 아니라 다른 HTTP Header 정보도 [Header] 영역에서 추가할 수 있습니다. 또한 예제에서 설명한 GET, POST 방식 호출 외에도 DELETE, PUT 등의 Method도 지원합니다.

Postman 활용 방법

위의 방법만 사용한다면 Postman 외에도 많은 Testing tool이 있습니다. 하지만 Postman에만 있는 유용한 기능들이 있는데요, 그중 몇 가지를 소개하겠습니다. 가장 많이 사용하게 될 Collections, Code generate, Manage environments, Interceptor 4가지 기능입니다. (그 외에도 Team Library, API Monitoring 등 다양한 기능이 있지만 기회가 되면 다음에 작성하도록 하겠습니다.)

1. Collections (https://www.getpostman.com/docs/collections)

Collections will take your productivity to the next level.

설명 그대로 생산성을 한 단계 높여주는데 큰 역할을 합니다.
Postman에서 사용하는 Bookmark 기능으로, 사용법도 매우 간단합니다.
[그림 5]~[그림 7]은 Collection을 저장하는 방법을 설명합니다.

5.jpg

[그림 5] Collection 저장

Save는 이미 등록된 Collection을 저장할 때 사용하고, Save as는 새로 저장할 때 사용합니다.

6.jpg

[그림 6] 새 Collection 등록 화면

Request name : 어떤 역할을 하는 API인지 입력합니다.
Create new collection: API를 그룹화하는 카테고리로 활용합니다. 기존에 등록한 Collection이 있는 경우에는 선택창이 뜨지만, 새로 등록하는 경우에는 등록할 Collection명을 적습니다.

7.jpg

[그림 7] Collection이 등록된 모습

Collection을 development / production으로 나눌 필요는 없습니다. 예를 들어 '회원 API', '콘텐츠 API' 등 업무별로 저장하며, 개발환경과 상용환경을 분리하는 방법은 이후에 설명할 Manage environments에서 소개하겠습니다.

2. Code generate (https://www.getpostman.com/docs/code_snippets)

Postman의 Code generate 기능을 사용하면 다양한 언어별로 해당 API를 호출하는 source code를 생성해줍니다.

8.jpg

[그림 8] Generate Code Snippets 팝업 윈도우

사용법은 매우 간단합니다. API를 정상적으로 호출한 뒤, [그림 8]의 우측 [Code] 버튼을 클릭하면 다양한 언어로 code를 생성할 수 있습니다.

3. Manage environments (https://www.getpostman.com/docs/environments)

API를 개발하다 보면 local, development, production 환경마다 각각 다르게 호출해야 하는 경우가 생깁니다. 일반적으로 hostname이 다른 경우가 많은데, 예제로 hostname을 변수로 관리하는 과정을 소개하겠습니다.

9.jpg

[그림 9] 설정 버튼 > Manage Environments 클릭

[그림 9]의 우측상단의 [설정] > [Manage Environments]를 선택하면 [그림 10]과 같은 환경을 설정할 수 있는 팝업 윈도우가 나타납니다.

10.jpg

[그림 10] Manage Environments 팝업 윈도우

[그림 10] 팝업 윈도우 하단의 [ADD] 버튼을 클릭하여 local에서 사용할 hostname을 정의합니다. 환경별로 호출할 Parameter가 다른 경우도 관리할 수 있습니다. 위의 방법과 동일하게 각각 환경별로 hostname을 추가할 수 있습니다.

11.jpg

[그림 11] 변수 사용 방법

[그림 11]의 예제에서는 Environments에 추가한 local과 prod 중에 local을 선택하고, URL에 {{변수명}} 형태로 호출하는 방법을 설명합니다. 실제 존재하지 않는 API가 아닌 예제로 입력한 값이라 정상적으로 결과를 가져오지는 못했지만, 정상적으로 호출은 되었습니다.
변숫값을 관리하지 않는다면 API 개수 * 테스트환경 숫자로 Collection을 관리하고, 수정이 일어난다면 각각 수정해 주어야 하지만, 위의 기능을 잘 활용한다면 1개의 Collection으로 모든 환경을 커버할 수 있습니다. hostname 뿐만 아니라 각 환경별 로그인 정보도 [header], [body] 영역에서 동일한 방법으로 활용할 수 있습니다.

4. Interceptor (https://www.getpostman.com/docs/capture)

Interceptor 기능은 chrome 브라우저를 이용하여 브라우저 내에서 발생한 Request를 자동으로 Postman History에 등록해주는 기능입니다.
https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo 에서 확장 프로그램을 설치한 뒤 [그림 12]와 같이 Chrome 우측 상단에서 Request Capture를 활성화합니다. 이후 [그림 13]의 Postman Application의 [Interceptor] 아이콘을 클릭하여 활성화합니다.

12.jpg

[그림 12] Postman Interceptor 아이콘 위치

13.jpg

[그림 13] Postman Application의 Interceptor 활성화

브라우저에서 google 검색 후 등록된 history 목록입니다. 검색 Request 외에도 브라우저에서 발생한 Request도 등록됩니다.

14.jpg

[그림 14] Interceptor 동작 결과

위의 기능을 활용하면 특정 API를 분석, 이용하고 싶을 때 개발자 도구를 통해 값을 일일이 복사하지 않아도 됩니다. 예를 들어 Web scraping 기능을 개발할 때, 로그인 기능부터 원하는 데이터를 얻을 때까지 전체 flow를 브라우저를 통해 한 바퀴 돌아본 뒤. 기록되어 있는 history를 분석하여 개발을 시작하는 데에도 활용할 수 있습니다.

플랫폼의 내용을 글 하나에 모두 작성하기는 어려워 자주 사용하는 기능 위주로 나열했지만, Postman에는 이 외에도 API 개발하는데 유용한 기능이 더욱 많습니다. 다음에 기회가 된다면 몇 가지 기능을 추가로 포스팅하겠습니다.


퍼온글: http://meetup.toast.com/posts/107

List of Articles
번호 제목 글쓴이 날짜 조회 수
204 넥서스 10용 패치 정보 수텐리 2019-04-12 6
203 엣지의 크로미움 전환 Microsoft 수텐리 2019-04-12 2
202 [구글ebook의 ascm파일을 PDF 파일로 변환하기] [1] 수텐리 2019-01-08 103
201 sfc /scannow 명령 수텐리 2018-12-17 31
200 Detect Internet Explorer (IE) up to version 11 and Edge (12+) 수텐리 2018-11-28 56
199 추억의 Windows 95를 설치할 수 있는 방법 file 수텐리 2018-09-04 35
198 DVDfab passkey 수텐리 2018-08-26 51
197 GA 코드 관련 수텐리 2018-08-24 54
196 마인드맵 - XMind [1] 수텐리 2018-08-21 48
195 QA 테스트 자동화 툴의 개념과 대표적인 도구 10가지 소개 [1] 수텐리 2018-08-19 324
194 판매재고관리 프로그램 [1] 수텐리 2018-08-17 458
193 PM의 생산성을 '업'시켜줄 프로젝트 관리 툴 15선 WindBoy 2018-08-14 366
192 Find in file for windows 수텐리 2018-07-27 16
191 Internet 연결 시 IP 주소를 확인 WindBoy 2018-07-19 29
190 MS SQL에서 Table Description 추출하는 쿼리 수텐리 2018-07-10 113
189 Spring에서 JSON에 XSS 방지 처리 하기 수텐리 2018-07-05 698
188 chart.js 활용하기 WindBoy 2018-06-18 144
» [펌] postman 관련 WindBoy 2018-05-29 152
186 [블록체인플랫폼] ①이더리움, 블록체인 2.0 시대를 열다 [1] 수텐리 2018-05-23 31
185 Sublime Text를 사용 시 업데이트 안하는 방법 수텐리 2018-04-03 29