POSTMAN

POSTMAN์ด๋ž€?

API ๊ฐœ๋ฐœ์„ ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋ฉฐ, ๊ฐœ๋ฐœ๋œ API๋ฅผ ํ…Œ์ŠคํŠธํ•˜์—ฌ ๋ฌธ์„œํ™” ๋˜๋Š” ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€ ์ฃผ๋Š” ํ”Œ๋žซํผ์ด๋‹ค. Postman์€ ๋ชจ๋“  API ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด์„œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋ณ€์ˆ˜ ๋ฐ ํ™˜๊ฒฝ, request ์„ค๋ช…, ํ…Œ์ŠคํŠธ ๋ฐ ์‚ฌ์ „ ์š”์ฒญ์— ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ๋“ฑ POSTMAN์€ ํ˜„์žฌ ์›Œํฌ ํ”Œ๋กœ์šฐ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๊ณ ์•ˆ๋˜์—ˆ๋‹ค.

POSTMAN์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ?

URL์„ ํ†ตํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š”๊ฒƒ์€ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐœ๋ฐœํ•  ๊ฒฝ์šฐ, ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค๊ณ , ์ด๋ฒคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ๋ฒ„ํŠผ์— ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์ด๋ฒคํŠธ์—์„œ๋Š” ์š”์ฒญ์„ ํ•˜๊ณ , ์š”์ฒญ์„ ํ•œ ์ดํ›„์—๋Š” ์‘๋‹ต์„ ๋ฐ›๊ณ , ๊ทธ ์‘๋‹ต์„ ๋ฐ›์€ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๊ฒŒ ๋œ๋‹ค. Authorization์ด๋‚˜ Header, Body๋ฅผ ์ˆ˜์ •ํ•˜๋Š”๊ฑด ๋”๋”์šฑ ์ œํ•œ์ด ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ํฌ์ŠคํŠธ๋งจ์€ ํ•ด๋‹น ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•ด๋†“์€ ํˆด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ OS์— ์ƒ๊ด€์—†์ด ์–ด๋””์—์„œ๋‚˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ๊ฐ€๋ฒผ์šด ํˆด์ด์—ฌ์„œ ๊ฐ€์šฉ์„ฑ์ด ๋›ฐ์–ด ๋‚˜๋‹ค. ๋˜ํ•œ ๊ณ„์ •์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ๋‚ด๊ฐ€ ์š”์ฒญํ•œ Request ํžˆ์Šคํ† ๋ฆฌ, ํ…Œ์ŠคํŠธํ•œ ํ™˜๊ฒฝ์„ ๊ทธ๋Œ€๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ๋‚ด๊ฐ€ ์ž‘์—…ํ–ˆ๋˜ ํ™˜๊ฒฝ์ด ๊ตฌ์ถ•๋œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

POSTMAN ์„ค์น˜

https://www.getpostman.com/ ์‚ฌ์ดํŠธ์—์„œ ๋‹ค์šด๋กœ๋“œ ํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ๊ธฐ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ๊ตณ์ด ํšŒ์›๊ฐ€์ž…์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

POSTMAN ํŠน์ง•

- REST API

POSTMAN์€ REST API๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด REST API๋ž€ ๋ฌด์—‡์ผ๊นŒ?

ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์ •์˜ํ•œ๋‹ค๋ฉด HTTP URI๋กœ ์ž˜ ํ‘œํ˜„๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ–‰์œ„๋ฅผ HTTP Method๋กœ ์ •์˜ํ•œ๋‹ค. ๋ฆฌ์†Œ์Šค์˜ ๋‚ด์šฉ์€ json, xml, yaml๋“ฑ์˜ ๋‹ค์–‘ํ•œ ํ‘œํ˜„ ์–ธ์–ด๋กœ ์ •์˜๋œ๋‹ค. ์ฆ‰, URI๋ฅผ ์ด์šฉํ•ด์„œ ์ œ์–ดํ•  ์ž์›์„ ๋ช…์‹œํ•˜๊ณ  HTTP๋ฅผ ์ด์šฉํ•ด์„œ ์ œ์–ด๋ช…๋ น์„ ๋‚ด๋ฆฐ๋‹ค.

- Variables

POSTMAN์—์„œ ์‚ฌ์šฉํ•˜๋Š” URI, Resource๋ฅผ ๋‹จ์ˆœ text๋กœ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ณ„๋„์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ฒ”์œ„๋Š” ๋ชจ๋“  ํ…์ŠคํŠธ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์˜์—ญ์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์ค‘๋ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” text๋ฅผ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋กœ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ text๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ์— ๊ฐ๊ฐ์˜ text๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ ๋ณ€์ˆ˜ ๊ฐ’๋งŒ ์ˆ˜์ •ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์ผ๊ด„์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

๋ณ€์ˆ˜๋Š” ํฌ๊ฒŒ ์ „์—ญ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธ€๋กœ๋ฒŒ ํ™˜๊ฒฝ๊ณผ ํŠน์ • ํ™˜๊ฒฝ์—์„œ๋งŒ ์ ์šฉ๋˜๋Š” ์ง€์—ญ ํ™˜๊ฒฝ์œผ๋กœ ๊ตฌ๋ถ„๋  ์ˆ˜ ์žˆ๋‹ค. ์ง€์—ญ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ํŠน์ • ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜๋กœ ํ™˜๊ฒฝ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ํ™˜๊ฒฝ์— ์ •์˜๋œ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด์ง„๋‹ค.

๊ธ€๋กœ๋ฒŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ํŠน์ • ํ™˜๊ฒฝ์˜ ๋ณ€ํ™”์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋กœ ์ง€์—ญ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ์šฐ์„ ์ˆœ์œ„๋Š” ๊ธ€๋กœ๋ฒŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ๋” ๋†’๋‹ค.

- Interceptor

Interceptor ๊ธฐ๋Šฅ์€ Chrome ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐœ์ƒํ•œ Request ํžˆ์Šคํ† ๋ฆฌ๋ฅผ Postman History๋กœ ๋™๊ธฐํ™”๋ฅผ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo ์—์„œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•œ ๋’ค ์šฐ์ธก ์ƒ๋‹จ์—์„œ Request Capture๋ฅผ ํ™œ์„ฑํ™” ์‹œํ‚ค๊ณ  Postman Application์—์„œ๋„ ํ™œ์„ฑํ™”์‹œ์ผœ์ฃผ๊ฒŒ ๋˜๋ฉด ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

- Collections

Collection ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ํฌ๊ฒŒ๋Š” ํ”„๋กœ์ ํŠธ ๋ณ„๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ณ  ์„ธ๋ถ€์ ์œผ๋กœ๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์—์„œ ๊ฐ ๋ชจ๋“ˆ์ด๋‚˜ ๊ธฐ๋Šฅ ๋ณ„๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. back-end์™€ front-end์˜ ์ž‘์—…์ด ๊ตฌ๋ถ„๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ฐœ๋ฐœ ์‹œ์ž‘์ „์— collection ๊ทœ์น™์„ ํ˜‘์˜ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค.

์œ ๋ฃŒ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํŒ€์› ๊ฐ„์˜ collection ๊ณต์œ ๋Š” ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋ฏ€๋กœ ์ž‘์—…ํ•œ collection์„ export/importํ•˜์—ฌ ๊ณต์œ ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค.

- Test scnario

POSTMAN์œผ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ API๊ฐ€ ๋™์ž‘ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ข€ ๋” ๊ตฌ์ฒด์ ์ธ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Response Data๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Response Data์˜ address ๊ฐ’์˜ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋„ฃ๊ฒŒ ๋œ๋‹ค๋ฉด address ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ์—๋Š” API ์ƒํƒœ ๊ฒฐ๊ณผ๊ฐ’์ด 200์ด๋”๋ผ๋„ ์—๋Ÿฌ๋ผ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฒฐ๊ณผ ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜๋Š” Response Data๋ฅผ ์ด์šฉํ•˜์—ฌ ์ „์—ญ๋ณ€์ˆ˜ ๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

- Pre-scripts

์ด์ „์— ์„ค๋ช…ํ•œ Test scnario๋Š” API ํ˜ธ์ถœ ์ดํ›„ ์‹œ์ ์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์ด๋ผ๋ฉด, Pre-Scripts์˜ ๊ฒฝ์šฐ์—๋Š” API ํ˜ธ์ถœ ์ด์ „ ์‹œ์ ์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ๋ผ๋ฏธํ„ฐ์— ํ˜„์žฌ ๋‚ ์งœ๋ฅผ ์ „์†กํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค๋ฉด ํ…Œ์ŠคํŠธ ์ง„ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ํ˜„์žฌ ๋‚ ์งœ๋ฅผ ํ…์ŠคํŠธ๋กœ ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ถ€๋ถ„์„ pre-script๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ function์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค๋ฉด ์ž๋™์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํ˜„์žฌ ๋‚ ์งœ๋กœ ๋ณ€๊ฒฝ๋  ๊ฒƒ์ด๋‹ค.

- Monitor

Project ๋‹จ์œ„๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ฃผ๊ธฐ๋กœ Collection์„ ์‹คํ–‰ํ•˜์—ฌ API์˜ monitoring์ด ๊ฐ€๋Šฅํ•˜๋‹ค. monitoringํ•˜๋Š” ์ฃผ๊ธฐ ๋‹จ์œ„ ๋˜๋Š” traffic๋Ÿ‰์— ๋”ฐ๋ผ์„œ ์œ ๋ฃŒ๋กœ ์ œ๊ณต๋˜๊ณ  ์žˆ๋‹ค.

- Work flow

Test scnario์˜ ์‹ฌํ™” ๊ธฐ๋Šฅ์œผ๋กœ Postman.setNextRequest ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ API ์ˆœ์„œ๋ฅผ ์ž„์˜๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠน์ • API ํ˜ธ์ถœ์ดํ›„์— ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” API๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋  ๊ฒƒ์ด๋‹ค. ํ•œ๊ฐ€์ง€ ๋‹จ์ ์€ ์ผ๋ฐ˜์ ์ธ ์‹คํ–‰์œผ๋กœ๋Š” setNextRequest ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰์ด ์•ˆ๋˜๊ณ  Runner๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- Team Library

Team ๋‚ด๋ถ€์—์„œ Collection์„ ๊ณต์œ ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์œ ๋ฃŒ ๋ฒ„์ „์—์„œ๋งŒ ์ œ๊ณตํ•œ๋‹ค. ๋ฌด๋ฃŒ๋ฒ„์ „์—์„œ Collection์„ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด export/importํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ์ค„์ผ์ˆ˜ ์žˆ๊ณ  ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Last updated