์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ! ์ค๋ ์ฐ๋ฆฌ๋ IT ๋์ค์๊ฒ ์ฐ๋ฆฌ ์ ํ, ์ฆ API ์์
์ ์ํ IDE๋ฅผ ์๊ฐํ๊ณ ์ถ์ต๋๋ค.
์๊ทน
์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์ด ์ธ์์ ์๊ณ API๋ฅผ ์ฌ์ฉํ ๊ณ ๊ธ ์์ ์ ์ํ ์์ฒด ๋๊ตฌ๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ๋์ง๋ถํฐ ์์ํ๊ณ ์ถ์ต๋๋ค. ์ ํ์ด ๊ฐ์ ธ์ผ ํ ๊ธฐ๋ฅ ๋ชฉ๋ก๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ ์๊ฒฌ์ผ๋ก๋ "API ์์ ์ ์ํ IDE"๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
- ์ฟผ๋ฆฌ ๋ฐ ์คํฌ๋ฆฝํธ ์์ฑ ๋ฐ ์คํ(์ฟผ๋ฆฌ ์ํ์ค)
- ๋ค์ํ ์ข ๋ฅ์ ํ ์คํธ ์์ฑ
- ํ ์คํธ ์์ฑ
- Swagger, OpenAPI, WADL ๋ฑ๊ณผ ๊ฐ์ ํ์์์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํฌํจํ์ฌ API ์ค๋ช ์์
- ์กฐ๋กฑ ์์ฒญ
- ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํตํฉ์ ํฌํจํ์ฌ ์คํฌ๋ฆฝํธ ์์ฑ์ ์ํ ํ๋ ์ด์์ ์ธ์ด์ ๋ํ ์ฐ์ํ ์ง์
- ๊ธฐํ
๋ชฉ๋ก์ ์ทจํฅ์ ๋ง๊ฒ ํ์ฅํ ์ ์์ต๋๋ค. ๋ํ IDE ์์ฒด๋ฟ๋ง ์๋๋ผ ํด๋ผ์ฐ๋ ๋๊ธฐํ, ๋ช ๋ น์ค ๋๊ตฌ, ์จ๋ผ์ธ ๋ชจ๋ํฐ๋ง ์๋น์ค ๋ฑ๊ณผ ๊ฐ์ ํน์ ์ธํ๋ผ๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ฒฐ๊ตญ, ์ต๊ทผ ๋ช ๋ ๊ฐ์ ์ถ์ธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ฟ๋ง ์๋๋ผ ์พ์ ํ ์ธํฐํ์ด์ค๋ ๊ฒฐ์ ํฉ๋๋ค.
๋๊ฐ ๊ทธ๋ฐ ๋๊ตฌ๋ฅผ ํ์๋ก ํฉ๋๊น? ๋ถ๋ช ํ API ๊ฐ๋ฐ ๋ฐ ํ ์คํธ์ ์ ์ด๋ ์ด๋ป๊ฒ๋ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ฌ๋๋ค์ ๊ฐ๋ฐ์ ๋ฐ ํ ์คํฐ์ ๋๋ค =). ๋ํ ์ ์์ ๊ฒฝ์ฐ ๋จ์ผ ์ฟผ๋ฆฌ์ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ๋ค๋ฉด ํ ์คํฐ์ ๊ฒฝ์ฐ ์ด๋ ์ฃผ์ ๋๊ตฌ ์ค ํ๋์ด๋ฉฐ ๋ฌด์๋ณด๋ค๋ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํ ์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ํฌํจํด์ผ ํฉ๋๋ค. CI.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ง์นจ์ ๋ฐ๋ผ ์ ํ์ ๋ง๋ค๊ธฐ ์์ํ์ต๋๋ค. ์ด ๋จ๊ณ์์ ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ๋ฌ์ฑํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋น ๋ฅธ ์์
์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ์ฒซ ๋ฒ์งธ ์๋ ๊ฒ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. ๋น์ ์ ๊ทธ๊ฒ์ ๋ค์ด๋ก๋ ํ ์ ์์ต๋๋ค
์ฒซ ๋ฒ์งธ ์์ฒญ์ ์์ฑํ๋ ค๋ฉด ์ฝํ ์ธ ์์ญ ์๋จ์ ์๋ ๋ํ๊ธฐ ๊ธฐํธ๋ฅผ ํด๋ฆญํ์ธ์. ์ฟผ๋ฆฌ ํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ข ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์์ฒญ ์ธํฐํ์ด์ค๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๋จธ์ง ํด๋ผ์ด์ธํธ์ ์ธํฐํ์ด์ค์ ๋งค์ฐ ์ ์ฌํ๋ฏ๋ก ์ ์ฌํ ๋๊ตฌ์์ ๋ ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์
ํ ์ ์์ต๋๋ค. URL์ ๋ํ ์ฒซ ๋ฒ์งธ ์์ฒญ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ธ๋ป๋ณด๊ธฐ์ ์๋ต ํจ๋๋ ๋๋ผ์์ ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ฌํญ์ ์ฃผ๋ชฉํ๊ณ ์ถ์ต๋๋ค.
- ์๋ต ๋ณธ๋ฌธ์ ํธ๋ฆฌ ํ์์ผ๋ก ํ์๋๋ฉฐ, ๋จผ์ ์ ๋ณด ์ฝํ ์ธ ๋ฅผ ์ถ๊ฐํ๊ณ ๋ ๋ฒ์งธ๋ก ์๋์ ๋ํ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ์ฃผ์ด์ง ์์ฒญ์ ๋ํ ํ ์คํธ ๋ชฉ๋ก์ ํ์ํ๋ ์ด์ค์ ํญ์ด ์์ต๋๋ค.
๋ณด์๋ค์ํผ, ์ฐ๋ฆฌ ๋๊ตฌ๋ ํธ๋ฆฌํ ํด์ ํด๋ผ์ด์ธํธ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๊ธฐ๋ฅ์ด ์์ฒญ ์ ์ก์๋ง ์ ํ๋์ด ์๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ์์ง ์์ ๊ฒ์ ๋๋ค. ๋ค์์ผ๋ก TestMace์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ๊ธฐ๋ฅ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๊ธฐ๋ณธ ๊ฐ๋ ๋ฐ ๊ธฐ๋ฅ
๋ ธ๋
TestMace ๊ธฐ๋ฅ์ ๋ค์ํ ์ ํ์ ๋ ธ๋๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ์์ ์์์๋ RequestStep ๋ ธ๋์ ์๋์ ์์ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ค์ ์ ํ์ ๋ ธ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์์ฒญ๋จ๊ณ. ์์ฒญ์ ์์ฑํ ์ ์๋ ๋ ธ๋์ ๋๋ค. ํ๋์ ์ด์ค์ ๋ ธ๋๋ง ํ์ ์์๋ก ๊ฐ์ง ์ ์์ต๋๋ค.
- ์ญ์ค. ๋ ธ๋๋ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. RequestStep ๋ ธ๋์ ํ์ ๋ ธ๋๋ง ๋ ์ ์์ต๋๋ค.
- ํด๋. ํด๋ ๋ฐ RequestStep ๋ ธ๋๋ฅผ ์์ฒด์ ์ผ๋ก ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ. ํ๋ก์ ํธ ์์ฑ ์ ์๋์ผ๋ก ์์ฑ๋๋ ๋ฃจํธ ๋ ธ๋์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํด๋ ๋ ธ๋์ ๊ธฐ๋ฅ์ ๋ฐ๋ณตํฉ๋๋ค.
- ๋งํฌ. ํด๋ ๋๋ RequestStep ๋ ธ๋์ ์ฐ๊ฒฐํฉ๋๋ค. ์ฟผ๋ฆฌ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐํ
๋ ธ๋๋ ์คํฌ๋์น("์ผํ์ฑ" ์ฟผ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ผ์ชฝ ํ๋จ ํจ๋)์ ํ๋ก์ ํธ(์ผ์ชฝ ์๋จ ํจ๋)์ ์์ผ๋ฉฐ ์ด์ ๋ํด ๋ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๊ณํ
์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด ์ผ์ชฝ ์๋จ์ ํ๋ก์ ํธ ๋ผ์ธ์ด ํ๋๋ฟ์ธ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ ํ๋ก์ ํธ ํธ๋ฆฌ์ ๋ฃจํธ์ ๋๋ค. ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด ์ด์ ์ฒด์ ์ ๋ฐ๋ผ ๊ฒฝ๋ก๊ฐ ๋ฌ๋ผ์ง๋ ์์ ํ๋ก์ ํธ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ธ์ ๋ ์ง ํ๋ก์ ํธ๋ฅผ ํธ๋ฆฌํ ์์น๋ก ์ด๋ํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ์ ์ฃผ์ ๋ชฉ์ ์ ํ์ผ ์์คํ ์ ๊ฐ๋ฐ ๋ด์ฉ์ ์ ์ฅํ๊ณ ๋ฒ์ ์ ์ด ์์คํ ์ ํตํด ์ถ๊ฐ๋ก ๋๊ธฐํํ๊ณ CI์์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
๋ณ์๋ค
๋ณ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฃผ์ ๋ฉ์ปค๋์ฆ ์ค ํ๋์
๋๋ค. TestMace์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์
ํ๋ ๋ถ๋ค์ ์ด๋ฏธ ์ฐ๋ฆฌ๊ฐ ๋งํ๋ ๋ด์ฉ์ ๋ํ ์์ด๋์ด๋ฅผ ๊ฐ๊ณ ๊ณ์ค ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ๋ณ์๋ ๊ณตํต ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋
ธ๋ ๊ฐ ํต์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด Postman ๋๋ Insomnia์ ํ๊ฒฝ ๋ณ์๋ ์ ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ ๋์๊ฐ ์ฃผ์ ๋ฅผ ๋ฐ์ ์์ผฐ์ต๋๋ค. TestMace์์๋ ๋
ธ๋ ์์ค์์ ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋. ๋ํ ์กฐ์์ผ๋ก๋ถํฐ ๋ณ์๋ฅผ ์์๋ฐ๊ณ ์์์์ ๋ณ์๊ฐ ๊ฒน์น๋ ๋ฉ์ปค๋์ฆ๋ ์์ต๋๋ค. ๋ํ ์ฌ๋ฌ ๊ฐ์ง ๋ด์ฅ ๋ณ์๊ฐ ์์ผ๋ฉฐ ๋ด์ฅ ๋ณ์์ ์ด๋ฆ์ ๋ค์์ผ๋ก ์์ํฉ๋๋ค. $
. ๋ค์์ ๊ทธ ์ค ์ผ๋ถ์
๋๋ค.
$prevStep
โ ์ด์ ๋ ธ๋์ ๋ณ์์ ๋ํ ๋งํฌ$nextStep
โ ๋ค์ ๋ ธ๋์ ๋ณ์์ ๋ํ ๋งํฌ$parent
- ๊ฐ์ ์ผ์ด์ง๋ง ์กฐ์์๊ฒ๋ง ํด๋น๋ฉ๋๋ค.$response
- ์๋ฒ๋ก๋ถํฐ์ ์๋ต$env
- ํ์ฌ ํ๊ฒฝ ๋ณ์$dynamicVar
- ์คํฌ๋ฆฝํธ ๋๋ ์ฟผ๋ฆฌ ์คํ ์ค์ ์์ฑ๋ ๋์ ๋ณ์
$env
- ์ด๋ ๋ณธ์ง์ ์ผ๋ก ์ผ๋ฐ์ ์ธ ํ๋ก์ ํธ ๋
ธ๋ ๋ ๋ฒจ ๋ณ์์ด์ง๋ง, ์ ํํ ํ๊ฒฝ์ ๋ฐ๋ผ ํ๊ฒฝ ๋ณ์ ์ธํธ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.
๋ณ์๋ ๋ค์์ ํตํด ์ก์ธ์ค๋ฉ๋๋ค. ${variable_name}
๋ณ์์ ๊ฐ์ ๋ค๋ฅธ ๋ณ์์ผ ์๋ ์๊ณ ์ ์ฒด ํํ์์ผ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, url ๋ณ์๋ ๋ค์๊ณผ ๊ฐ์ ํํ์์ผ ์ ์์ต๋๋ค.
http://${host}:${port}/${endpoint}
.
์ด์ ๋ณ๋๋ก ์คํฌ๋ฆฝํธ ์คํ ์ค์ ๋ณ์๋ฅผ ํ ๋นํ ์ ์๋ค๋ ์ ๋ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ก๊ทธ์ธ ์ฑ๊ณต ํ ์๋ฒ์์ ๋ฐ์ ์ธ์ฆ ๋ฐ์ดํฐ(ํ ํฐ ๋๋ ์ ์ฒด ํค๋)๋ฅผ ์ ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข
์ข
์์ต๋๋ค. TestMace๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ ์ค ํ๋์ ๋์ ๋ณ์์ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด๋ฏธ ์กด์ฌํ๋ "์ ์ " ๋ณ์์์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ๋์ ๋ณ์๋ ๋ณ๋์ ๊ฐ์ฒด์ ๋ฐฐ์น๋ฉ๋๋ค. $dynamicVar
.
์๋๋ฆฌ์ค
์์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ ์ฒด ์ฟผ๋ฆฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ํฐํฐ ๋ง๋ค๊ธฐ -> ์ํฐํฐ ์ฟผ๋ฆฌ -> ์ํฐํฐ ์ญ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ด ๊ฒฝ์ฐ ํด๋ ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ RequestStep ๋ ธ๋๋ฅผ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค.
์๋ ์์ฑ ๋ฐ ํํ ๊ฐ์กฐ ํ์
๋ณ์๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๋ ค๋ฉด ์๋ ์์ฑ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค. ๋ฌผ๋ก , ํน์ ๋ณ์๊ฐ ๋ฌด์์ธ์ง ๋ช ํํ๊ฒ ํ๊ธฐ ์ํด ํํ์์ ๊ฐ์ ๊ฐ์กฐ ํ์ํฉ๋๋ค. ๋ฐฑ ๋ฒ ๋ฃ๋ ๊ฒ๋ณด๋ค ํ ๋ฒ ๋ณด๋ ๊ฒ์ด ๋ ๋์ ๊ฒฝ์ฐ๊ฐ ๋ฐ๋ก ์ด๊ฒ์ด๋ค.
์๋ ์์ฑ์ ๋ณ์๋ฟ๋ง ์๋๋ผ ํค๋, ํน์ ํค๋ ๊ฐ(์: Content-Type ํค๋์ ์๋ ์์ฑ), ํ๋กํ ์ฝ ๋ฑ์ ๋ํด์๋ ๊ตฌํ๋๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ชฉ๋ก์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฑ์ฅํจ์ ๋ฐ๋ผ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
์คํ ์ทจ์/๋ค์ ์คํ
๋ณ๊ฒฝ ์ฌํญ์ ์คํ ์ทจ์/๋ค์ ์คํํ๋ ๊ฒ์ ๋งค์ฐ ํธ๋ฆฌํ ์์ ์ด์ง๋ง ์ด๋ค ์ด์ ๋ก๋ ๋ชจ๋ ๊ณณ์์ ๊ตฌํ๋์ง๋ ์์ต๋๋ค(API ์์ ๋๊ตฌ๋ ์์ธ๋ ์๋๋๋ค). ํ์ง๋ง ์ฐ๋ฆฌ๋ ๊ทธ๋ฐ ์ฌ๋์ด ์๋๋๋ค!) ์ ์ฒด ํ๋ก์ ํธ์ ๊ฑธ์ณ ์คํ ์ทจ์/๋ค์ ์คํ์ ๊ตฌํํ์ฌ ํน์ ๋ ธ๋ ํธ์ง๋ฟ๋ง ์๋๋ผ ์์ฑ, ์ญ์ , ์ด๋ ๋ฑ์ ์คํ ์ทจ์ํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ์์ ์๋ ํ์ธ์ด ํ์ํฉ๋๋ค.
ํ ์คํธ ๋ง๋ค๊ธฐ
์ด์ค์ ๋ ธ๋๋ ํ ์คํธ ์์ฑ์ ๋ด๋นํฉ๋๋ค. ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋๋ ๋ด์ฅ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ ์์ด ํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
์ด์ค์ ๋ ธ๋๋ ์ด์ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ ์ด์ค์ ์๋ ๊ณ ์ ํ ์ ํ์ด ์์ต๋๋ค. ํ์ฌ ์ฌ๋ฌ ์ ํ์ ์ด์ค์ ์ด ์์ต๋๋ค.
-
๊ฐ ๋น๊ต - ๋จ์ํ 2๊ฐ์ ๊ฐ์ ๋น๊ตํฉ๋๋ค. ๋น๊ต ์ฐ์ฐ์์๋ ๊ฐ์, ๊ฐ์ง ์์, ๋ณด๋ค ํผ, ํฌ๊ฑฐ๋ ๊ฐ์, ์์, ์๊ฑฐ๋ ๊ฐ์ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ๋น๊ต ์ฐ์ฐ์๊ฐ ์์ต๋๋ค.
-
๊ฐ ํฌํจ - ๋ฌธ์์ด์์ ํ์ ๋ฌธ์์ด์ ๋ฐ์์ ํ์ธํฉ๋๋ค.
-
XPath - XML์ ์ ํ๊ธฐ์ ํน์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
-
JavaScript ์ด์ค์ ์ ์ฑ๊ณต ์ true๋ฅผ ๋ฐํํ๊ณ ์คํจ ์ false๋ฅผ ๋ฐํํ๋ ์์์ javascript ์คํฌ๋ฆฝํธ์ ๋๋ค.
๋ง์ง๋ง ํ๋๋ง ์ฌ์ฉ์์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ด ํ์ํ๊ณ ๋๋จธ์ง 3๊ฐ์ ์ด์ค์ ์ ๊ทธ๋ํฝ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋น๊ต ๊ฐ ์ด์ค์ ์ ์์ฑํ๊ธฐ ์ํ ๋ํ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ์ฅ ์ข์ ์ ์ ์๋ต์์ ๋จ์ธ๋ฌธ์ ๋น ๋ฅด๊ฒ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ํ๋ฒ ์ดํด๋ณด์ธ์!
๊ทธ๋ฌ๋ ์ด๋ฌํ ์ฃผ์ฅ์๋ ๋ถ๋ช ํ ํ๊ณ๊ฐ ์์ผ๋ฉฐ ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ ์ฃผ์ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ TestMace๋ ์๋ ์์ฑ, ๊ตฌ๋ฌธ ๊ฐ์กฐ ๋ฐ ์ ์ ๋ถ์๊ธฐ๋ฅผ ๊ฐ์ถ ํธ์ํ ํ๊ฒฝ๋ ์ ๊ณตํฉ๋๋ค.
API ์ค๋ช
TestMace๋ฅผ ์ฌ์ฉํ๋ฉด API๋ฅผ ์ฌ์ฉํ ์ ์์ ๋ฟ๋ง ์๋๋ผ API๋ฅผ ๋ฌธ์ํํ ์๋ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ค๋ช ์์ฒด๋ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์์ด ํ๋ก์ ํธ์ ๋๋จธ์ง ๋ถ๋ถ์ ์ ๊ธฐ์ ์ผ๋ก ๋ค์ด๋ง์ต๋๋ค. ๋ํ ํ์ฌ Swagger 2.0/OpenAPI 3.0 ํ์์์ API ์ค๋ช ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ค๋ช ์์ฒด๋ ๋จ์ง ์ค์ํ์ง ์์ผ๋ฉฐ ํ๋ก์ ํธ์ ๋๋จธ์ง ๋ถ๋ถ๊ณผ ๊ธด๋ฐํ๊ฒ ํตํฉ๋์ด ์์ต๋๋ค. ํนํ URL, HTTP ํค๋, ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ๋ฑ์ ์๋ ์์ฑ์ด ๊ฐ๋ฅํ๋ฉฐ ์์ผ๋ก ํ ์คํธ๋ฅผ ์ถ๊ฐํ ๊ณํ์ ๋๋ค. API ์ค๋ช ์ ๋ํ ์๋ต ์ค์๋ฅผ ์ํด.
๊ณต์ ๋ ธ๋
์ฌ๋ก: ๋ฌธ์ ๊ฐ ์๋ ์์ฒญ์ด๋ ์ ์ฒด ์คํฌ๋ฆฝํธ๋ฅผ ๋๋ฃ์ ๊ณต์ ํ๊ฑฐ๋ ๋จ์ํ ๋ฒ๊ทธ์ ์ฒจ๋ถํ๊ณ ์ถ์ต๋๋ค. TestMace๋ ์ด ๊ฒฝ์ฐ๋ ๋ค๋ฃน๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ฉด URL์ ๋ชจ๋ ๋ ธ๋์ ํ์ ํธ๋ฆฌ๊น์ง ์ง๋ ฌํํ ์ ์์ต๋๋ค. ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ผ๋ฉด ์์ฒญ์ ๋ค๋ฅธ ๊ธฐ๊ณ๋ ํ๋ก์ ํธ๋ก ์ฝ๊ฒ ์ ์กํ ์ ์์ต๋๋ค.
์ฌ๋์ด ์ฝ์ ์ ์๋ ํ๋ก์ ํธ ์ ์ฅ ํ์
ํ์ฌ ๊ฐ ๋
ธ๋๋ yml ํ์ฅ์๋ฅผ ๊ฐ์ง ๋ณ๋์ ํ์ผ(์ด์ค์
๋
ธ๋์ ๊ฒฝ์ฐ์ฒ๋ผ)์ ์ ์ฅ๋๊ฑฐ๋ ๋
ธ๋ ์ด๋ฆ๊ณผ index.yml ํ์ผ์ด ํฌํจ๋ ํด๋์ ์ ์ฅ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ ๋ฆฌ๋ทฐ์์ ์์ฑํ ์์ฒญ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
index.yml
children: []
variables: {}
type: RequestStep
assignVariables: []
requestData:
request:
method: GET
url: 'https://next.json-generator.com/api/json/get/NJv-NT-U8'
headers: []
disabledInheritedHeaders: []
params: []
body:
type: Json
jsonBody: ''
xmlBody: ''
textBody: ''
formData: []
file: ''
formURLEncoded: []
strictSSL: Inherit
authData:
type: inherit
name: Scratch 1
๋ณด์๋ค์ํผ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๋ช ํํฉ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ์ด ํ์์ ์๋์ผ๋ก ์ฝ๊ฒ ํธ์งํ ์ ์์ต๋๋ค.
ํ์ผ ์์คํ ์ ํด๋ ๊ณ์ธต ๊ตฌ์กฐ๋ ํ๋ก์ ํธ์ ๋ ธ๋ ๊ณ์ธต ๊ตฌ์กฐ์ ์์ ํ ๋ฐ๋ณต๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์คํฌ๋ฆฝํธ๊ฐ ์์ต๋๋ค.
ํ์ผ ์์คํ ์ ๋ค์ ๊ตฌ์กฐ๋ก ๋งคํํฉ๋๋ค(ํด๋ ๊ณ์ธต๋ง ํ์๋์ง๋ง ๋ณธ์ง์ ๋ช ํํจ).
์ด๋ ๊ฒ ํ๋ฉด ํ๋ก์ ํธ ๊ฒํ ํ๋ก์ธ์ค๊ฐ ๋ ์ฌ์์ง๋๋ค.
Postman์์ ๊ฐ์ ธ์ค๊ธฐ
์์ ๋ด์ฉ์ ๋ชจ๋ ์ฝ์ ํ ์ผ๋ถ ์ฌ์ฉ์๋ ์๋ก์ด ์ ํ์ ์ฌ์ฉํด ๋ณด๊ฑฐ๋ (๋ง์ต๋๊น?) ํ๋ก์ ํธ์์ ์์ ํ ์ฌ์ฉํ๊ณ ์ถ์ดํ๊ฑฐ๋ (๋๋ด์ด ์๋๋๋ค!) ํด๋น ์ ํ์ ์์ ํ ์ฌ์ฉํ๊ณ ์ถ์ดํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ Postman์์ ๋ง์ ์์ ๊ฐ๋ฐ๋ก ์ธํด ๋ง์ด๊ทธ๋ ์ด์ ์ด ์ค๋จ๋ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ TestMace๋ Postman์์ ์ปฌ๋ ์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ง์ํฉ๋๋ค. ํ์ฌ๋ ํ ์คํธ ์๋ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์ง์๋์ง๋ง ํฅํ ์ง์๋ ๋ฐฐ์ ํ์ง ์์ต๋๋ค.
๊ณํ
์ง๊ธ๊น์ง ์ฝ์ด์ฃผ์ ๋ง์ ๋ถ๋ค์ด ์ ํฌ ์ ํ์ ์ข์ํ์ จ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ์ ๋ถ๋ ์๋๋๋ค! ์ ํ ์์ ์ด ํ์ฐฝ ์งํ ์ค์ด๋ฉฐ ๊ณง ์ถ๊ฐํ ์์ ์ธ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
ํด๋ผ์ฐ๋ ๋๊ธฐํ
๊ฐ์ฅ ๋ง์ด ์์ฒญ๋ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ํ์ฌ ์ฐ๋ฆฌ๋ ๋๊ธฐํ๋ฅผ ์ํด ๋ฒ์ ์ ์ด ์์คํ ์ ์ฌ์ฉํ ๊ฒ์ ์ ์ํ๊ณ ์์ผ๋ฉฐ, ์ด๋ฅผ ์ํด ์ด๋ฌํ ์ ํ์ ์ ์ฅ์์ ๋ ์น์ํ ํ์์ ๋ง๋ค๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ด ์์ ํ๋ฆ์ ๋ชจ๋ ์ฌ๋์๊ฒ ์ ํฉํ์ง ์์ผ๋ฏ๋ก ์๋ฒ๋ฅผ ํตํด ๋ง์ ์ฌ๋์๊ฒ ์น์ํ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐํ ๊ณํ์ ๋๋ค.
CLI
์์์ ์ธ๊ธํ๋ฏ์ด IDE ์์ค ์ ํ์ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์ํฌํ๋ก์์ ๋ชจ๋ ์ข ๋ฅ์ ํตํฉ ์์ด๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค. CLI๋ TestMace๋ก ์์ฑ๋ ํ ์คํธ๋ฅผ ์ง์์ ์ธ ํตํฉ ํ๋ก์ธ์ค์ ํตํฉํ๋ ๋ฐ ๊ผญ ํ์ํ ๊ฒ์ ๋๋ค. CLI ์์ ์ด ๋ณธ๊ฒฉ์ ์ผ๋ก ์งํ๋๊ณ ์์ผ๋ฉฐ, ์ด๊ธฐ ๋ฒ์ ์์๋ ๊ฐ๋จํ ์ฝ์ ๋ณด๊ณ ์๋ก ํ๋ก์ ํธ๊ฐ ์์๋ฉ๋๋ค. ์์ผ๋ก๋ JUnit ํ์์ผ๋ก ๋ณด๊ณ ์ ์ถ๋ ฅ์ ์ถ๊ฐํ ๊ณํ์ ๋๋ค.
ํ๋ฌ๊ทธ์ธ ์์คํ
์ฐ๋ฆฌ ๋๊ตฌ์ ๋ชจ๋ ๊ธฐ๋ฅ์๋ ๋ถ๊ตฌํ๊ณ ์๋ฃจ์ ์ด ํ์ํ ์ฌ๋ก๋ ๋ฌดํํฉ๋๋ค. ๊ฒฐ๊ตญ ํน์ ํ๋ก์ ํธ์ ๊ด๋ จ๋ ์์ ์ด ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ผ๋ก ์ฐ๋ฆฌ๋ ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์ ์ํ SDK๋ฅผ ์ถ๊ฐํ ๊ณํ์ด๋ฉฐ ๊ฐ ๊ฐ๋ฐ์๋ ์ํ๋ ๋๋ก ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ ๊ฒ์ ๋๋ค.
๋ ธ๋ ์ ํ์ ๋ฒ์ ํ์ฅ
์ด ๋ ธ๋ ์ธํธ๋ ์ฌ์ฉ์๊ฐ ์๊ตฌํ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค. ์ถ๊ฐ ์์ ์ธ ๋ ธ๋:
- ์คํฌ๋ฆฝํธ ๋ ธ๋ - js ๋ฐ ํด๋น API๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๊ณ ๋ฐฐ์นํฉ๋๋ค. ์ด ์ ํ์ ๋ ธ๋๋ฅผ ์ฌ์ฉํ๋ฉด Postman์์ ์ฌ์ ์์ฒญ ๋ฐ ์ฌํ ์์ฒญ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- GraphQL ๋ ธ๋ - graphql ์ง์
- ์ฌ์ฉ์ ์ ์ ์ด์ค์
๋
ธ๋ - ํ๋ก์ ํธ์ ๊ธฐ์กด ์ด์ค์
์ธํธ๋ฅผ ํ์ฅํ ์ ์์ต๋๋ค.
๋น์ฐํ ์ด๊ฒ์ ์ต์ข ๋ชฉ๋ก์ด ์๋๋ฉฐ ๋ฌด์๋ณด๋ค๋ ๊ทํ์ ํผ๋๋ฐฑ์ ํตํด ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ ๊ฒ์ ๋๋ค.
์์ฃผํ๋ ์ง๋ฌธ
๋น์ ์ ํฌ์คํธ๋งจ๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์?
- ํ๋ก์ ํธ์ ๊ธฐ๋ฅ์ ๊ฑฐ์ ๋์์ด ํ์ฅํ ์ ์๋ ๋ ธ๋ ๊ฐ๋
- ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ๋ก์ ํธ ํ์์ผ๋ก ํ์ผ ์์คํ ์ ์ ์ฅํ์ฌ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ์ฌ ์์ ์ ๋จ์ํํฉ๋๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์์ด ํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ ๋ฐ ํ ์คํธ ํธ์ง๊ธฐ์์ ๊ณ ๊ธ js ์ง์(์๋ ์์ฑ, ์ ์ ๋ถ์๊ธฐ)
- ๊ณ ๊ธ ์๋ ์์ฑ ๋ฐ ๋ณ์์ ํ์ฌ ๊ฐ ๊ฐ์กฐ ํ์
์คํ์์ค ์ ํ์ธ๊ฐ์?
์๋์, ํ์ฌ๋ ์์ค๊ฐ ํ์๋์ด ์์ง๋ง ํฅํ ์์ค ๊ณต๊ฐ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.
๋น์ ์ ๋ฌด์์ผ๋ก ์ด์์?)
๋ฌด๋ฃ ๋ฒ์ ๊ณผ ํจ๊ป ์ ๋ฃ ๋ฒ์ ๋ ์ถ์ํ ์์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฃผ๋ก ๋๊ธฐํ์ ๊ฐ์ด ์๋ฒ์ธก์ด ํ์ํ ์ฌํญ์ด ํฌํจ๋ฉ๋๋ค.
๊ฒฐ๋ก
์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ํฅํด ๋น์ฝ์ ์ผ๋ก ์์ง์ด๊ณ ์์ต๋๋ค. ํ์ง๋ง ํด๋น ์ ํ์ ์ด๋ฏธ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ด๊ธฐ ์ฌ์ฉ์๋ค์ ๊ธ์ ์ ์ธ ํผ๋๋ฐฑ์ด ์ด๋ฅผ ์ฆ๋ช ํฉ๋๋ค. ์ปค๋ฎค๋ํฐ์์ ๊ธด๋ฐํ ํ๋ ฅ ์์ด๋ ์ข์ ๋๊ตฌ๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ํผ๋๋ฐฑ์ ์ ๊ทน์ ์ผ๋ก ์์งํฉ๋๋ค. ์ฌ๊ธฐ์์ ์ฐ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค:
์ฌ๋ฌ๋ถ์ ํฌ๋ง๊ณผ ์ ์์ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค!
์ถ์ฒ : habr.com