210815 ๊ฐœ๋ฐœ๊ธฐ๋ก: ์—ฌ๋Ÿฌ๊ฐœ์˜ query parameter string

2021. 8. 15. 22:43ใ†๐Ÿ“” TIL

๐ŸŒฟ  ์—ฌ๋Ÿฌ ๊ฐœ์˜ Query String Parameter ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

 

์•„๋ž˜ ์ฒ˜๋Ÿผ query string parameter ๋ฅผ ์ด์šฉํ•˜์—ฌ api ์š”์ฒญ์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

const response = await fetch(`/v1/search/book?query=${query}`)

 

์ฒ˜์Œ์—” {query} ํŒŒ๋ผ๋ฏธํ„ฐ ๋งŒ ํ•„์š”ํ–ˆ์œผ๋‚˜, ์ถ”๊ฐ€์ ์œผ๋กœ {display} ํŒŒ๋ผ๋ฏธํ„ฐ ๋„ ํ•„์š”ํ–ˆ๋‹ค.

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

// Bad request
const response = await fetch(`/v1/search/book?query=${query}?display={display}`)


// Good request
const response = await fetch(`/v1/search/book?query=${query}&display={display}`)

์ œ๋Œ€๋กœ api ํ˜ธ์ถœ์ด ๋˜์ง€ ์•Š์•„ ๋ญ๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ๋ชฐ๋ž๋Š”๋ฐ, ๋ฌผ์Œํ‘œ๊ฐ€ ์•„๋‹ˆ๋ผ `&` ์˜€๋‹ค.  ๋งŒ์•ฝ ์„ธ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ํ•„์š”ํ•˜๋‹ค๋ฉด, {display} ๋’ค์— & ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด ๋œ๋‹ค. ๋„ˆ๋ฌด ์–ด์ด์—†๋Š” ์‹ค์ˆ˜๋ผ ๋‹ค์‹œ๋Š” ์•ˆ๊นŒ๋จน๊ณ ์ž ๊ธฐ๋กํ•œ๋‹ค ^__.__^;

 

 

 

๐ŸŒ€ React ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฒช์€ ์‹ค์ˆ˜

1. Recoil์˜ selector ์ž‘๋™ ํ•˜์ง€ ์•Š์•˜๋‹ค. atom ์œผ๋กœ ๊ฑธ์–ด๋‘” state ๊ฐ€ ๋ณ€๊ฒฝ ๋์œผ๋‹ˆ ๋‹น์—ฐํžˆ selector ํ•จ์ˆ˜๊ฐ€ ์‹œ์ž‘๋  ๊ฑฐ๋ผ ์ƒ๊ฐํ•œ ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค. ์•„๋ฌด๋ฆฌ selector ๊ฐ€  get ํ•จ์ˆ˜๋กœ ํ•ด๋‹น ์•„ํ†ฐ์„ ์ธ์ž๋กœ ๋ฐ›์„ ์ง€๋ผ๋„, ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ํ•ด๋‹น selector ๋ฅผ useRecoilValue() ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

2. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ ์–ธํ•˜๋ฉด์„œ ๋ฐ”๋กœ async ๋ฅผ ๊ฑธ์—ˆ๋‹ค (์ฃฝ๋Š”๋‹ค) . ๋ฌผ๋ก  ๋ฐ”๋กœ ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ ์ˆ˜์ •ํ–ˆ๊ณ , ์ž˜๋ชป๋œ ์‚ฌ์šฉ์ด๋ผ๋Š” ๊ฒƒ๋„ ์•Œ๊ฒ ์œผ๋‚˜, ์ •ํ™•ํžˆ "์™œ, ๋ฌด์—‡์ด " ์ž˜๋ชป ๋๋Š”์ง€ ์•„์ง ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ด ๋ถ€๋ถ„์„ ๊ณต๋ถ€ํ•ด๋ณด์ž.

 

3. state ๋ฅผ DOM ์— ๋ฐ”์ธ๋”ฉํ•˜์ง€ ์•Š๊ณ , ์ผ๋ฐ˜ ๋ณ€์ˆ˜๋ฅผ ๋ฐ”์ธ๋”ฉํ–ˆ๋‹ค. (์ฃฝ๋Š”๋‹ค ์ง„์งœ)

 

 

 

 

์˜ค๋Š˜์€ ๊ด‘๋ณต์ ˆ,

๋Œ€ํ•œ๋…๋ฆฝ๋งŒ์„ธ