๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/Code-States

[D+135] Final Project : 15์ผ์ฐจ(2) ์นด์นด์˜ค API๋กœ ์†Œ์…œ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 3. 4.

 

 

D+135

-  Final Project : 15์ผ์ฐจ -

( ์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ )

 


 

 

ํฌ์ŠคํŠธ๋งจ์œผ๋กœ ์นด์นด์˜ค API๋ฅผ ์ด์šฉํ•ด ๋‚ด ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ ๊นŒ์ง€ ์—ฐ์Šตํ•ด ๋ณด์•˜๋‹ค๋ฉด

์ด๋ฒˆ์—๋Š” ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์„œ ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์•˜๋‹ค.

 

์‚ฌ์‹ค ์ฝ”๋“œ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€๋Š” ์•Š์•˜๋Š”๋ฐ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ œ๋Œ€๋กœ ๋“ค์—ฌ๋‹ค ๋ณด์ง€ ์•Š์•„์„œ 

์—ฌ๋Ÿฌ๋ฒˆ ์‚ฝ์งˆ์„ ์‹œ๋„ํ•ด๋ณธ ๋์— ๋‹คํ–‰ํžˆ(?) ๋Œ๊ณ ๋Œ์•„์„œ ๋‚ด ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ์„ฑ๊ณตํ•˜์˜€๋‹ค.

 

์‚ฌ์‹ค ์†Œ์…œ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ์ „์— ํŒ€์›๋ถ„๊ณผ ํšŒ์˜๋ฅผ ์ง„ํ–‰ํ–ˆ์—ˆ๋Š”๋ฐ

๋‹น์‹œ์— ์šฐ๋ฆฌ๊ฐ€ ํ† ํฐ์„ ๊ตฌํ˜„์„ ๋‹ค ํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์†Œ์…œ๋กœ๊ทธ์ธ์œผ๋กœ ๋„˜์–ด์™”๊ธฐ ๋•Œ๋ฌธ์— ํ† ํฐ์ด ๋จธ๋ฆฟ์†์— ๋‚จ์•„์žˆ๋Š” ์ƒํƒœ์˜€๋Š”๋ฐ

์นด์นด์˜ค์—์„œ ์•ก์„ธ์Šค ํ† ํฐ๊ณผ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์„ ๋ณด๊ณ 

์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ํ† ํฐ๊ณผ ์นด์นด์˜ค์—์„œ ์˜ค๋Š” ํ† ํฐ์ด ์ถฉ๋Œ์ด ๋‚˜๋ฉด ์–ด์ฉŒ์ง€ ํ•˜๋Š” ๊ณ ๋ฏผ์„ ์—„์ฒญ ๋งŽ์ด ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ทธ๋ž˜์„œ ์ด ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์นด์นด์˜ค ํ† ํฐ์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•ด์ค˜์•ผ ํ•˜์ง€๋ผ๋Š” ์—„์ฒญ ๊นŠ์€ ๊ณ ๋ฏผ์„ ํ–ˆ์—ˆ๋Š”๋ฐ

์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋‚ด๊ฐ€ ์นด์นด์˜ค์—์„œ ์•ก์„ธ์Šคํ† ํฐ์„ ๋ฐ›์•„์˜ค๋Š” ์ด์œ ๋Š” ๋‹จ์ˆœํžˆ ์นด์นด์˜ค์—์„œ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ชฉ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—

๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ํ•ด๋‹น ํ† ํฐ์„ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์กฐ๊ธˆ ๋Šฆ๊ฒŒ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ ํŒ€์€ ์นด์นด์˜ค์—์„œ ๋ฐ›์•„์˜ค๋Š” ํ† ํฐ์€ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ฌ๋•Œ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ธ์ฆ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ํ† ํฐ์€

๋”ฐ๋กœ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ํ† ํฐ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ž๋ผ๋Š” ๊ณ„ํš์„ ์„ธ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ๋•Œ๋ฌธ์— 

๋ฐ›์•„์˜จ ์ธ๊ฐ€์ฝ”๋“œ๋ฅผ axios๋ฅผ ํ†ตํ•ด์„œ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค๋ ค๋Š” ์‹œ๋„๋ฅผ ํ•˜์˜€์ง€๋งŒ

์ฝ˜์†”์„ ๋Œ๋ ค๋ณด์•˜์ง€๋งŒ ์š”์ƒํ•œ ์—๋Ÿฌ๋งŒ ๋‚˜ํƒ€๋‚  ๋ฟ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์—†์—ˆ๋‹ค..... ใ… ใ…œ

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์นด์นด์˜ค๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์ž˜๋ชป ์ „ํ•ด์คฌ์„ ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์—

์นด์นด์˜ค ๋กœ๊ทธ์ธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์—„์ฒญ๋‚˜๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‹œ๋„ํ•ด๋ณด์•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™์•˜๋‹ค.

 

ํฌ์ŠคํŠธ ๋งจ์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™์ด ๋˜์—ˆ๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ์•ˆ๋‚˜์™€์„œ ์•ฝ๊ฐ„ ๋ฉ˜๋ถ•์ƒํƒœ์˜€๋Š”๋ฐ

์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋‚˜๋Š” ์ด์ „์— axios๋กœ ์š”์ฒญํ• ๋•Œ content-type์„ application/x-www-form-urlencoded ํ˜•ํƒœ๋กœ ๊ฐ’์„ ๋ณด๋‚ด๋ณธ ์ ์ด ์—†๋‹ค.

 

ํ•ญ์ƒ jsonํ˜•์‹์œผ๋กœ ๋ณด๋‚ด์™”๋Š”๋ฐ ํ˜น์‹œ ํƒ€์ž…์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ

์š”์ฒญ์ด ์ œ๋Œ€๋กœ ๊ฐ€์ง€ ์•Š๋Š” ๊ฒƒ์ผ๊นŒ ์‹ถ์–ด์„œ ๊ฒ€์ƒ‰์„ ํ•ด๋ณด์•˜๋”๋‹ˆ 

 

์—ญ์‹œ๋‚˜... axios๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ JSON ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค.

 

๊ทธ๋ž˜์„œ formํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋Š” ์ œ๋Œ€๋กœ ์š”์ฒญ์ด ๊ฐ€์ง€ ์•Š๋Š” ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ์€ axios์—์„œ ํ•ด๋‹น ํƒ€์ž…์˜ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” 'qs'๋ผ๋Š” ๋ชจ๋“ˆ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ๊ณ ,

qs๋Š” ๋ณด์•ˆ์ด ์ถ”๊ฐ€๋œ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด ๊ตฌ๋ฌธ์„ ๋ถ„์„ํ•˜๊ณ  ์ด๋ฅผ ๋ฌธ์ž์—ดํ™” ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค.

 

 

qs

A querystring parser that supports nesting and arrays, with a depth limit

www.npmjs.com

 

๊ทธ๋ž˜์„œ qs๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด ์ฃผ์—ˆ๋”๋‹ˆ ์ฝ˜์†”๋กœ๊ทธ๋กœ ํ† ํฐ์„ ์ œ๋Œ€๋กœ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.

 

์ด ์ดํ›„์— ๋‹ค์‹œ .then์„ ์‚ฌ์šฉํ•ด ๋ฐ›์•„์˜จ ํ† ํฐ์œผ๋กœ ํšŒ์›์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ 

ํšŒ์›์ •๋ณด๋ฅผ ์ด์šฉํ•ด DB์˜ ๋ฐ์ดํ„ฐ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ณ  JWT ํ† ํฐ์„ ์ƒ์„ฑํ•˜์—ฌ

์นด์นด์˜ค ์†Œ์…œ๋กœ๊ทธ์ธ ๊ตฌํ˜„์„ ์™„์„ฑํ•˜์˜€๋‹ค.

 

์˜ค๋Š˜์€ ์‚ฌ์‹ค ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์œผ๋กœ ์‚ฝ์งˆ์„ ํ•˜๊ธฐ๋„ ํ–ˆ๊ณ , ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๋Œ€๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •์ด

์–ด์ฐŒ๋‚˜ ๋ฟŒ๋“ฏํ•œ์ง€....

 

์˜ค๋Š˜์˜ ๊ฒฐ๋ก  ) ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ž˜ ์ฝ์ž !!!

 

 


 

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€