๐Ÿ”ก path variable & query parameter

๊น€์ฒ ์ค€ยท2022๋…„ 2์›” 15์ผ
0

์›น

๋ชฉ๋ก ๋ณด๊ธฐ
1/4

React router๋ฅผ ์—ฐ์Šตํ•˜๋ฉด์„œ "url์˜ path varaible๊ณผ query parameter๋Š” ๊ฐ๊ฐ ์–ด๋– ํ•œ ์ƒํ™ฉ์ผ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ?"๋ผ๋Š” ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” path varaible๊ณผ query parameter์˜ ์ •์˜์™€ ํ™œ์šฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค.

โœ”๏ธ ์ •์˜

path variable๊ณผ query parameter๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ถ€ํ„ฐ ๋จผ์ € ์•Œ์•„๋ณด์ž.

Path variable

์–ด๋– ํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์œ„ ๊ฒฝ๋กœ๋ฅผ ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•˜์—ฌ ๊ฒฝ๋กœ๋ฅผ ๋™์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

path variable์€ ๋ง ๊ทธ๋Œ€๋กœ ๊ฒฝ๋กœ ๋ณ€์ˆ˜์ด๋‹ค.
์–ด๋– ํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์œ„ ๊ฒฝ๋กœ๋ฅผ ์ž„์˜์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

/users/:username
/users/jev
/users/harry

users๋ผ๋Š” ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์œ„๊ฒฝ๋กœ์— ๋”ฐ๋ผ user์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ ์‹ถ๋‹ค๊ณ  ํ•˜์˜€์„ ๋•Œ path variable์„ username์ด๋ผ๊ณ  ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

์ด ๋•Œ ๋งŽ์€ user๋ฅผ ๋ณด์—ฌ์ค˜์•ผํ•  ์ˆ˜ ์žˆ๋‹ค.
๋งŽ์€ user์— ๋Œ€ํ•œ ๋ฌธ์„œ๋‚˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ผ์ผํžˆ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด๋‚˜ ์ˆ˜๊ณต์—…์ด๋‹ค.

๋•Œ๋ฌธ์— ๋™์ ์œผ๋กœ ๊ฒฝ๋กœ๋ณ€์ˆ˜(:username)๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ณ  ๋”ฐ๋กœ ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š์€๊ฒฝ๋กœ(jev,harry)์— ๋“ค์–ด๊ฐ€๋ฉด ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•ด์ค€๊ฒƒ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

query paramter

query parameter๋Š” ํŠน์ • ๊ฒฝ๋กœ ๋’ค์— ?๋ถ™์ธ ๋‹ค์Œ key์™€ value ์Œ์˜ string์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.
ํ•„์š”ํ•œ ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ query parameter๋ฅผ ํ†ตํ•ด ๋ณด์—ฌ์ค€๋‹ค.

query parameter๋Š” ํŠน์ •ํ•œ ๊ฒฝ๋กœ๋’ค์— ๋ถ™์—ฌ์„œ ํ• ๋‹น๋˜๋Š” parameter์ธ๋ฐ ํŠน์ •ํ•œ ์ปจํ…ํŠธ๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ์ •๋ ฌํ•  ๋•Œ์— ์‚ฌ์šฉ๋œ๋‹ค.

ํŠน์ • ๊ฒฝ๋กœ ๋’ค์— ?๊ฐ€ ๋ถ™์—ฌ ์‚ฌ์šฉ๋˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด key์™€ value์Œ์ด ํ•˜๋‚˜์ด์ƒ ๋ ์ˆ˜๋„ ์žˆ๋‹ค.
/users?gender=man&birth=1996

/users?gender=man

๋งŒ์•ฝ ์—ฌ๋Ÿฌ user์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ users๋ผ๋Š” ๊ฒฝ๋กœ์—์„œ ์„ฑ๋ณ„์ด ๋‚จ์ž์ธ user๋งŒ ํ•„ํ„ฐ๋งํ•ด์„œ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์œ„ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ•น๏ธ ํ™œ์šฉ

๊ทธ๋ ‡๋‹ค๋ฉด ๋‘ ๊ฐ€์ง€์˜ ๊ธฐ๋Šฅ์„ ์–ด๋– ํ•œ ์ƒํ™ฉ์ผ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ?

์ผ๋ฐ˜์ ์œผ๋กœ path variable์€ ๊ฒฝ๋กœ resource ์‹๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๊ณ  query parameter์€ ์ปจํ…ํŠธ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ฑฐ๋‚˜ ์ •๋ ฌํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

์œ„์—์„œ ๋ณธ ๊ฒƒ๊ณผ ๊ฐ™์ด path variable์€ ํŠน์ •๊ฒฝ๋กœ์— ๋Œ€ํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ™•์ธํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

query parameter๋Š” ํŠน์ •๊ฒฝ๋กœ์— ๋Œ€ํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ปจํ…ํŠธ๋“ค์ด ์žˆ์„ ๋•Œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํŠน์ •ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฌด์กฐ๊ฑด ์œ„์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์œ„์˜ ์“ฐ์ž„์ƒˆ์™€ ๊ฐ™์ด ํ™œ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ๊ฐ์„ ํ•„์š”ํ•œ ์ƒํ™ฉ์— ๋งž์ถฐ ์‚ฌ์šฉํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€