React router๋ฅผ ์ฐ์ตํ๋ฉด์ "url์ path varaible๊ณผ query parameter๋ ๊ฐ๊ฐ ์ด๋ ํ ์ํฉ์ผ ๋ ์ฌ์ฉํ๋ฉด ์ข์๊น?"๋ผ๋ ์๋ฌธ์ด ๋ค์๋ค.
๊ทธ๋์ ๋ณธ ํฌ์คํ ์์๋ path varaible๊ณผ query parameter์ ์ ์์ ํ์ฉ์ ๋ํด ์์๋ณด๊ฒ ๋ค.
path variable๊ณผ query parameter๊ฐ ๋ฌด์์ธ์ง๋ถํฐ ๋จผ์ ์์๋ณด์.
์ด๋ ํ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ ๊ฒฝ๋ก๋ฅผ ๋ณ์๋ก ์ง์ ํ์ฌ ๊ฒฝ๋ก๋ฅผ ๋์ ์ผ๋ก ์๋ํ๊ฒ ํ ์ ์๋ค.
path variable์ ๋ง ๊ทธ๋๋ก ๊ฒฝ๋ก ๋ณ์์ด๋ค.
์ด๋ ํ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ ๊ฒฝ๋ก๋ฅผ ์์์ ์ผ๋ก ์ง์ ํ ์ ์๋ค.
/users/:username
/users/jev
/users/harry
users๋ผ๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์๊ฒฝ๋ก์ ๋ฐ๋ผ user์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ๋ค๊ณ ํ์์ ๋ path variable์ username์ด๋ผ๊ณ ์ค์ ํด์ฃผ์๋ค.
์ด ๋ ๋ง์ user๋ฅผ ๋ณด์ฌ์ค์ผํ ์ ์๋ค.
๋ง์ user์ ๋ํ ๋ฌธ์๋ ์ปดํฌ๋ํธ๋ฅผ ์ผ์ผํ ์์ฑํ๋ ๊ฒ์ ๋๋ฌด๋ ์๊ณต์
์ด๋ค.
๋๋ฌธ์ ๋์ ์ผ๋ก ๊ฒฝ๋ก๋ณ์(:username)๋ฅผ ์ค์ ํด์ฃผ๊ณ ๋ฐ๋ก ์ค์ ํด์ฃผ์ง ์์๊ฒฝ๋ก(jev,harry)์ ๋ค์ด๊ฐ๋ฉด ๊ฒฝ๋ก๋ฅผ ์ค์ ํด์ค๊ฒ์ฒ๋ผ ์๋ํ๊ฒ ํด์ค๋ค.
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๋ ํน์ ๊ฒฝ๋ก์ ๋ํ์ฌ ์ฌ๋ฌ๊ฐ์ง ์ปจํ ํธ๋ค์ด ์์ ๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ํน์ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค ๋ ์ฌ์ฉํ ์ ์๋ค.
๋ฌด์กฐ๊ฑด ์์ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ ์๋์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๋๊ฐ์ง ๊ธฐ๋ฅ์ ์์ ์ฐ์์์ ๊ฐ์ด ํ์ฉํ๊ณ ์๋ค.
๋ฐ๋ผ์ ๊ฐ๊ฐ์ ํ์ํ ์ํฉ์ ๋ง์ถฐ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.