Query parameter, Query String vs Path Variable
728x90

๋“ค์–ด๊ฐ€๋ฉฐ

์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ์‹์œผ๋กœ ์ „์†กํ•˜๊ณ  ์–ด๋–ค ๊ฒฝ๋กœ(End-point)์— ์ „๋‹ฌํ• ์ง€๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ๋ณธ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” GET, POST ๋“ฑ์˜ HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๊ณ , ๊ด€๋ จํ•ด์„œ REST API๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋‹ค.

๊ทธ๋ณด๋‹ค ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ฒฝ๋กœ์— ๋Œ€ํ•ด์„œ, ๊ทธ ์ค‘์—์„œ๋„ Query Parameter์™€ Path Variable์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค.

 

 

Query Parameter (Query String)

์œ„ ์ด๋ฏธ์ง€๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”ํ•˜๊ฒŒ ๋ณด๋Š” URL์˜ ๊ตฌ์กฐ์ด๋‹ค.

์—ฌ๊ธฐ์„œ ? ์ดํ›„๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š” Parameters๋ผ๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ Query Parameter์ด๋‹ค.

ํ”ํžˆ Query String, ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์€ ๊ฐ™์€ ํ‘œํ˜„!

 

Query String์€ key์™€ value๋กœ ์Œ์„ ์ด๋ฃฌ ๋ฌธ์ž ํ˜•ํƒœ์ด๋ฉฐ & ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.

์œ„ ๊ตฌ์กฐ๋กœ ๋”ฐ์ง€๋ฉด 2๊ฐœ์˜ key, value ์Œ์ด parameter์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๋‹ด๊ฒจ์ง„ Query String์€ ์›น์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋œ๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” q๋ผ๋Š” key์— abc๋ฅผ ๋‹ด์•„ ์ „๋‹ฌํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋˜๊ฒ ๋‹ค.

/search?q=abc

 

 

Path Variable

Path Variable์€ ๊ฒฝ๋กœ๋ฅผ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

๊ฒŒ์‹œ๊ธ€์„ ์กฐํšŒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์˜ id๋ฅผ ์„œ๋ฒ„๋กœ ๋„˜๊ฒจ์ฃผ์–ด์•ผ๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

/boards/100

์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ, id ๊ฐ™์€ ํŠน์ • ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ ์กฐํšŒ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ Path Variable์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

๊ฐ๊ฐ ์–ธ์ œ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?

๊ทธ๋Ÿผ Query Parameter์™€ Path Variable์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ ์ ˆํ•œ ๋•Œ๋Š” ์–ธ์ œ์ผ๊นŒ?
์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•ด๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

  • Path Variable : id๋ฅผ ์–ด๋–ค ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋” ์ ์ ˆ!
/users  // ๋ชจ๋“  ์‚ฌ์šฉ์ž ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ
/users/123  // ํšŒ์› ๋ฒˆํ˜ธ ํ˜น์€ id๊ฐ€ 123์ธ ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ

 

  • Query Paramater : ํ•„ํ„ฐ๋ง์„ ํ•˜๊ฑฐ๋‚˜ ์ •๋ ฌ์„ ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒ์ !
/posts  // ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ
/posts?user=abc  // ์ž‘์„ฑ์ž๊ฐ€ abc์ธ ๊ฒŒ์‹œ๊ธ€๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ

 

 

ํ•ญ์ƒ ๋ชจ๋“  ๊ฒฝ๋กœ์— Query String์ด๋‚˜ Path Variable์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
ํ•„์š”์— ๋”ฐ๋ผ, ๊ฒฝ์šฐ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉํ•ด๋ด์•ผ๊ฒ ๋‹ค!

 

 

 

728x90