ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘

ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„. ์šฐ๋ฆฌ๋Š” ์ฒœ์ฒœํžˆ ๊ทธ๋ฆผ์ž์—์„œ ๋ฒ—์–ด๋‚˜ ์ œํ’ˆ์— ๋Œ€ํ•œ ์ผ๋ จ์˜ ๊ธฐ์‚ฌ๋ฅผ ๊ณ„์†ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์— ์ด์ „ ๋ฆฌ๋ทฐ ๊ธฐ์‚ฌ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ(๋Œ€๋ถ€๋ถ„ ๊ธ์ •์ ์ธ), ์ œ์•ˆ ๋ฐ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ๋ณด์—ฌ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค ์‹ค์ œ๋กœ ๋‹น์‹ ์€ ์šฐ๋ฆฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ๊ฐ์ƒํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณด๋‹ค ์™„์ „ํ•œ ๋ชฐ์ž…์„ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. http://docs-ru.testmace.com. ์ž, ๊ฐ€์ž!

์„ค์น˜

์ง„๋ถ€ํ•จ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด์ž. ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Linux, Windows, MacOS์˜ ์„ธ ๊ฐ€์ง€ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” OS์˜ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ. Linux ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ƒ… ํŒจํ‚ค์ง€. ์šฐ๋ฆฌ๋Š” Microsoft Store์™€ App Store๊ฐ€ ๊ณง ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค(ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?).

์‹คํ—˜ ์‹œ๋‚˜๋ฆฌ์˜ค

์šฐ๋ฆฌ๋Š” ํ…Œ์ŠคํŠธ ์ฃผ์ œ๋กœ ๋‹ค์Œ ํ‘œ์ค€ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋กœ๊ทธ์ธ: ์‚ฌ์šฉ์ž - ๊ด€๋ฆฌ์ž, ๋น„๋ฐ€๋ฒˆํ˜ธ - ๋น„๋ฐ€๋ฒˆํ˜ธ
  • ์ƒˆ ํ•ญ๋ชฉ ์ถ”๊ฐ€
  • ๋ ˆ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ด…์‹œ๋‹ค

์šฐ๋ฆฌ๋Š” ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค https://testmace-quick-start.herokuapp.com/. ์ด๊ฒƒ์€ ์ •์ƒ์ž…๋‹ˆ๋‹ค json ์„œ๋ฒ„, ์ด๋Ÿฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  json-server ๊ฒฝ๋กœ์— ํ† ํฐ์— ์˜ํ•œ ์ธ์ฆ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด ํ† ํฐ์„ ๋ฐ›๊ธฐ ์œ„ํ•œ ๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ•์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ ์ฐจ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ์„ ํ•˜๋ฉด์„œ ์ ์ง„์ ์œผ๋กœ ๋‚˜์•„๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์Šน์ธ ์—†์ด ์—”ํ„ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ์ƒˆ ํ”„๋กœ์ ํŠธ(์ž…์–‘ ๋ถ€๋ชจ๋กœ์„œ์˜ ๊ท€ํ•˜์˜ ์ ํ•ฉ์„ฑ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ฏธ๊ตญ ์ด๋ฏผ๊ตญ์—->์ƒˆ ํ”„๋กœ์ ํŠธ). ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ ์ƒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๋จผ์ € ์ƒˆ๋กœ์šด ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ์„ ์š”์ฒญํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค(์ธ์ฆ ์—†์ด ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ). ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”๋‰ด์—์„œ ํ•ญ๋ชฉ ์„ ํƒ ๋…ธ๋“œ ์ถ”๊ฐ€ -> ์š”์ฒญ ๋‹จ๊ณ„. ๋…ธ๋“œ ์ด๋ฆ„์„ ๋‹ค์Œ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ. ๊ฒฐ๊ณผ์ ์œผ๋กœ ํŠธ๋ฆฌ์— ์ƒˆ ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์ด ๋…ธ๋“œ์— ๋Œ€ํ•œ ํƒญ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค์Œ ์š”์ฒญ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์š”์ฒญ ์œ ํ˜•: POST
  • URL : https://testmace-quick-start.herokuapp.com/posts
  • ์š”์ฒญ ๋ณธ๋ฌธ: ๊ฐ’์ด ํฌํ•จ๋œ json {"title": "New testmace quick start post"}
    ๋ชจ๋“  ์ž‘์—…์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ–ˆ๋‹ค๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘

๊ทธ๋Ÿฌ๋‚˜ ์š”์ฒญ์„ ์ดํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์„œ๋ฒ„๋Š” 401 ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์Šน์ธ ์—†์ด๋Š” ์ด ์„œ๋ฒ„์—์„œ ์•„๋ฌด๊ฒƒ๋„ ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ˆ์ƒ๋Œ€๋กœ).

์Šน์ธ ์š”์ฒญ ์ถ”๊ฐ€

์ด๋ฏธ ๋งํ–ˆ๋“ฏ์ด POST ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. /login, ๋‹ค์Œ ํ˜•์‹์˜ ์š”์ฒญ ๋ณธ๋ฌธ์œผ๋กœ json์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. {"username": "<username>", "password": "<password>"}์–ด๋””์—์„œ username ะธ password (๋‹ค์‹œ, ์œ„์˜ ์†Œ๊ฐœ ๋‹จ๋ฝ์—์„œ) ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค admin ะธ password ๊ฐ๊ธฐ. ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์ด ๋์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ json์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. {"token": "<token>"}. ์ธ์ฆ์— ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งŒ๋“ค์–ด ๋ณด์ž ์š”์ฒญ ๋‹จ๊ณ„ ์ด๋ฆ„์ด ์žˆ๋Š” ๋…ธ๋“œ ๋กœ๊ทธ์ธ, ์กฐ์ƒ ์—ญํ• ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ํ”„๋กœ์ ํŠธ ๋งˆ๋”” ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ฆฌ์˜ ํŠน์ • ๋…ธ๋“œ๋ฅผ ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ๋†’๊ฒŒ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ. ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์š”์ฒญ์— ๋‹ค์Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์š”์ฒญ์„ ์‹คํ–‰ํ•˜๊ณ  ์‘๋‹ต์— ํ† ํฐ์ด ํฌํ•จ๋œ XNUMX๋ฒˆ์งธ ์ฝ”๋“œ๋ฅผ ๋ฐ›๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ™์€:

ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘

๋ฆฌํŒฉํ† ๋ง: ๋„๋ฉ”์ธ ์ค‘๋ณต ์ œ๊ฑฐ

์ง€๊ธˆ๊นŒ์ง€ ์š”์ฒญ์€ ๋‹จ์ผ ์Šคํฌ๋ฆฝํŠธ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ์œ ์ผํ•œ ๋‹จ์ ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ๋‘ ์š”์ฒญ ๋ชจ๋‘์—์„œ ์ตœ์†Œํ•œ ๋„๋ฉ”์ธ์ด ์ค‘๋ณต๋˜์–ด ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ข‹๋‹ค. ์ด์ œ ๋ฏธ๋ž˜ ์Šคํฌ๋ฆฝํŠธ์˜ ์ด ๋ถ€๋ถ„์„ ๋ฆฌํŒฉํ† ๋งํ•  ์‹œ๊ฐ„์ด๋ฉฐ, ๋ณ€์ˆ˜๋Š” ์ด์— ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ ์ˆ˜์ค€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. domain ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  https://testmace-quick-start.herokuapp.com. ์ด๊ฒƒ์„ ์œ„ํ•ด์„œ ๋‹น์‹ ์€

  • ์ด ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ํƒญ์„ ์—ด๊ณ  ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ ๊ณ„์‚ฐ๊ธฐ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์„ธ์š”.
  • ํด๋ฆญ + ๋ณ€์ˆ˜ ์ถ”๊ฐ€
  • ๋ณ€์ˆ˜ ์ด๋ฆ„๊ณผ ๊ฐ’์„ ์ž…๋ ฅํ•˜์„ธ์š”.
    ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋œ ๋Œ€ํ™” ์ƒ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘

์ข‹์•„์š”. ์ด์ œ ์ƒ์†์œผ๋กœ ์ธํ•ด ๋ชจ๋“  ์ค‘์ฒฉ ์ˆ˜์ค€์˜ ํ•˜์œ„ ํ•ญ๋ชฉ์—์„œ ์ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ะธ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ. ํ…์ŠคํŠธ ํ•„๋“œ์—์„œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ${<variable_name>}. ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ URL์€ ๋‹ค์Œ์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ${domain}/login, ๊ฐ๊ฐ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๋…ธ๋“œ URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค ${domain}/posts.

๋”ฐ๋ผ์„œ DRY ์›์น™์— ๋”ฐ๋ผ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์•ฝ๊ฐ„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ† ํฐ์„ ๋ณ€์ˆ˜์— ์ €์žฅ

์ง€๊ธˆ์€ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ด ์ฃผ์ œ๋ฅผ ์กฐ๊ธˆ ๋” ํ™•์žฅํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๋ฉด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํ›„์† ์š”์ฒญ์— ํ•„์š”ํ•œ ์ธ์ฆ ํ† ํฐ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ํ† ํฐ์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ค‘์— ๊ฒฐ์ •๋˜๋ฉฐ ์ด๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋™์  ๋ณ€์ˆ˜.

๋จผ์ € ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํƒญ์—์„œ ํŒŒ์‹ฑ โ€‹โ€‹๋จ ๋Œ€๋‹ตํ•˜๋ ค๋ฉด ํ† ํฐ ์œ„๋กœ ์ปค์„œ๋ฅผ ์ด๋™ํ•˜๊ณ  ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”๋‰ด(๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ํ˜ธ์ถœ๋จ ...)์—์„œ ํ•ญ๋ชฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์— ํ• ๋‹น. ๋‹ค์Œ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋œ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • ๊ฒฝ๋กœ โ€” ๋‹ต๋ณ€์˜ ์–ด๋Š ๋ถ€๋ถ„์ด ์ทจํ•ด์กŒ๋Š”๊ฐ€(์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” body.token)
  • ํ˜„์žฌ ๊ฐ€์น˜ โ€” ๊ฒฝ๋กœ์— ์žˆ๋Š” ๊ฐ’(์ด ๊ฒฝ์šฐ ํ† ํฐ ๊ฐ’)
  • ๋ณ€์ˆ˜ ์ด๋ฆ„ โ€” ๋ณ€์ˆ˜ ์ด๋ฆ„ ํ˜„์žฌ ๊ฐ€์น˜ ๋ณด์กด๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” token
  • ๋…ธ๋“œ โ€” ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋  ์กฐ์ƒ ์ค‘ ์–ด๋Š ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋ณ€์ˆ˜ ์ด๋ฆ„. ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜์ž

์™„์„ฑ๋œ ๋Œ€ํ™” ์ƒ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘

์ด์ œ ๋…ธ๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ๋กœ๊ทธ์ธ ๋™์  ๋ณ€์ˆ˜ token ์‘๋‹ต์˜ ์ƒˆ ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ ์œ„์น˜์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ์ด๋ฉฐ ์ƒ์† ๋•๋ถ„์— ์ž์†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์  ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์žฅ ๋ณ€์ˆ˜ $dynamicVar. ์˜ˆ๋ฅผ ๋“ค์–ด ์ €์žฅ๋œ ํ† ํฐ์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ${$dynamicVar.token}.

์ธ์ฆ ํ† ํฐ์„ ์š”์ฒญ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ด์ „ ๋‹จ๊ณ„์—์„œ ์ธ์ฆ ํ† ํฐ์„ ๋ฐ›์•˜์œผ๋ฏ€๋กœ ํ—ค๋”๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Authorization ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  Bearer <tokenValue> ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ ์Šน์ธ์ด ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์ฒญ์—์„œ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ. ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ† ํฐ์„ ์ˆ˜๋™์œผ๋กœ ๋ณต์‚ฌํ•˜๊ณ  ๊ด€์‹ฌ ์žˆ๋Š” ์š”์ฒญ์— ์ธ์ฆ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์ž‘๋™ํ•˜์ง€๋งŒ "๋งŒ๋“ค๊ณ  ๋ฒ„๋ ค์ง„" ์œ ํ˜•์˜ ์š”์ฒญ์—๋งŒ ์‚ฌ์šฉ์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ์˜ ๋ฐ˜๋ณต ์‹คํ–‰์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์„ธ์š” ๊ถŒํ•œ ๋ถ€์—ฌ.
  3. ์‚ฌ์šฉ ๊ธฐ๋ณธ ํ—ค๋”

๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋‹น์—ฐํ•ด ๋ณด์ด์ง€๋งŒ ์ด ๊ธฐ์‚ฌ์˜ ๋งฅ๋ฝ์—์„œ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€... ํฅ๋ฏธ๋กญ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„์š”, ์‹ค์ œ๋กœ: ์Šน์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋งˆ์ด๋„ˆ์Šค๋ฅผ ๋”ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹ค๋ฅธ ๋„๊ตฌ์—์„œ ์ต์ˆ™ํ•ฉ๋‹ˆ๋‹ค(๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ๋”๋ผ๋„). ๊ถŒํ•œ ์ƒ์†) ์งˆ๋ฌธ์„ ์ œ๊ธฐํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ ๊ธฐ๋ณธ ํ—ค๋”์ž…๋‹ˆ๋‹ค! ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๊ธฐ๋ณธ ํ—ค๋”๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์ฒญ์— ์ถ”๊ฐ€๋˜๋Š” ์ƒ์†๋œ HTTP ํ—ค๋”์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ •์˜ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ—ค๋”์— ํ† ํฐ์„ ์ „๋‹ฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ „์—๋Š” ํ† ํฐ์„ ๋™์  ๋ณ€์ˆ˜์— ์‹ ์ค‘ํ•˜๊ฒŒ ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. $dynamicVar.token ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ ์ˆ˜์ค€์—์„œ. ๋‚จ์€ ๊ฒƒ์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ๊ธฐ๋ณธ ์ œ๋ชฉ ์ •์˜ Authorization ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  Bearer ${$dynamicVar.token} ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ ์ˆ˜์ค€์—์„œ. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋…ธ๋“œ์˜ ํ”„๋กœ์ ํŠธ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๊ธฐ๋ณธ ์ œ๋ชฉ(๋ฒ„ํŠผ)์ด ์žˆ๋Š” ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ—ค๋” ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ์— ์žˆ์Œ) ํ•ด๋‹น ์ œ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฑ„์›Œ์ง„ ๊ฐ’์ด ํฌํ•จ๋œ ๋Œ€ํ™” ์ƒ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘
  2. ๋กœ๊ทธ์ธ ์š”์ฒญ์—์„œ ์ด ํ—ค๋”๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์‹œ ์•„์ง ํ† ํฐ์ด ์—†์œผ๋ฉฐ ์ด ์š”์ฒญ์„ ํ†ตํ•ด ํ† ํฐ์„ ์„ค์น˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํƒญ์— ์žˆ๋Š” ์š”์ฒญ์˜ ๋กœ๊ทธ์ธ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ํ—ค๋” ์˜ ์ง€์—ญ์—์„œ ์ƒ์†ํ•˜๋Š” Authorization ํ—ค๋”๋ฅผ ์„ ํƒ ์ทจ์†Œํ•˜์„ธ์š”.

๊ทธ๊ฒŒ ๋‹ค์•ผ. ์ด์ œ ๋กœ๊ทธ์ธ ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ์˜ ํ•˜์œ„์ธ ๋ชจ๋“  ์š”์ฒญ์— โ€‹โ€‹์ธ์ฆ ํ—ค๋”๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ค€๋น„๋˜์–ด ์žˆ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์€ ๊ทธ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ์„ ํƒํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ฌ๋ฆฌ๊ธฐ ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ์˜ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด์— ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ์˜ ์ •ํ™•์„ฑ ํ™•์ธ

์ด ๋‹จ๊ณ„์—์„œ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋กœ๊ทธ์ธํ•˜๊ณ  ์ธ์ฆ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ฒŒ์‹œ๋ฌผ์˜ ์ด๋ฆ„์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ณธ์งˆ์ ์œผ๋กœ ๋‚จ์€ ๊ฒƒ์€ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

  • ์•„์ด๋””๋กœ ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์‹  ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ ,
  • ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์ด๋ฆ„๊ณผ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ์‹œ ๋ณด๋‚ธ ์ด๋ฆ„์ด ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. id ๊ฐ’์€ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ค‘์— ๊ฒฐ์ •๋˜๋ฏ€๋กœ ๋™์  ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค). postId) ๋…ธ๋“œ์—์„œ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ํ”„๋กœ์ ํŠธ ๋…ธ๋“œ ์ˆ˜์ค€์—์„œ. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”. ํ† ํฐ์„ ๋ณ€์ˆ˜์— ์ €์žฅ. ๋‚จ์€ ๊ฒƒ์€ ์ด ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ์„ ์ˆ˜์‹ ํ•˜๋ผ๋Š” ์š”์ฒญ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด RequestStep์„ ์ƒ์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. get-post ๋‹ค์Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์š”์ฒญ ์œ ํ˜•: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์‚ฌํ•ญ์„ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ญ์„ค ๋งค๋“ญ. Assertion ๋…ธ๋“œ๋Š” ํŠน์ • ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ๊ฐ ์–ด์„ค์…˜ ๋…ธ๋“œ์—๋Š” ์—ฌ๋Ÿฌ ์–ด์„ค์…˜(๊ฒ€์‚ฌ)์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์œ ํ˜•์˜ ์ฃผ์žฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹น์‚ฌ์˜ ์„ ์  ์„œ๋ฅ˜ ๋น„์น˜. ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค Compare ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ ์–ด์„ค์…˜ equal. ์–ด์„ค์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ธด. RequestStep ๋…ธ๋“œ์˜ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด์—์„œ Assertion ๋…ธ๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ์–ด์„ค์…˜ ๋…ธ๋“œ์—์„œ ๊ด€์‹ฌ ์žˆ๋Š” ์–ด์„ค์…˜์„ ์ถ”๊ฐ€ํ•˜๊ณ  ํ•„๋“œ๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค.
  2. ๋น ๋ฅธ. ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”๋‰ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ RequestStep ๋…ธ๋“œ ์‘๋‹ต์˜ ์–ด์„ค์…˜๊ณผ ํ•จ๊ป˜ ์–ด์„ค์…˜ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์˜ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋ฉ”์ด์Šค. ๋น ๋ฅธ ์‹œ์ž‘

์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. ๋…ธ๋“œ์—์„œ ์š”์ฒญํ•˜๊ธฐ get-post
  2. ํƒญ์—์„œ ํŒŒ์‹ฑ โ€‹โ€‹๋จ ๋Œ€๋‹ต, ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”๋‰ด๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์„ ํƒ ์–ด์„ค์…˜ ๋งŒ๋“ค๊ธฐ -> ๋น„๊ต -> ๊ฐ™์€

์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ„๋‹จํ•˜์ง€ ์•Š๋‚˜์š”? ์ด์ œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์™„์ „ํžˆ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ฆ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ์กฐ๊ธˆ ๋ฆฌํŒฉํ† ๋งํ•ด์„œ ๊บผ๋‚ด๋Š” ๊ฒƒ๋ฟ์ด๋‹ค. title ๋ณ„๋„์˜ ๋ณ€์ˆ˜๋กœ. ํ•˜์ง€๋งŒ ์ด๊ฑด ์ˆ™์ œ๋กœ ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค)

๊ฒฐ๋ก 

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๋ณธ๊ฒฉ์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋™์‹œ์— ์ œํ’ˆ์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ๊ฒ€ํ† ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์•˜์œผ๋ฉฐ ๋‹ค์Œ ๊ธฐ์‚ฌ์—์„œ๋Š” TestMace์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค!

PS ๋ชจ๋“  ๋‹จ๊ณ„๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ ๊ท€์ฐฎ์œผ์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด ์นœ์ ˆํžˆ ๋…น์Œํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ ๊ธฐ์‚ฌ์˜ ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜. ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์ž…์–‘ ๋ถ€๋ชจ๋กœ์„œ์˜ ๊ท€ํ•˜์˜ ์ ํ•ฉ์„ฑ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ฏธ๊ตญ ์ด๋ฏผ๊ตญ์— -> ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์„ ํƒํ•˜์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€