Bibi's DevLog ๐Ÿค“๐ŸŽ

TIL - [20.08.30] API ์ˆ˜์ • ์™„๋ฃŒ! + ๋งˆ๊ฐ์ „๊นŒ์ง€ ํ• ์ผ ์ •๋ฆฌ ๋ณธ๋ฌธ

TIL

TIL - [20.08.30] API ์ˆ˜์ • ์™„๋ฃŒ! + ๋งˆ๊ฐ์ „๊นŒ์ง€ ํ• ์ผ ์ •๋ฆฌ

๋น„๋น„ bibi 2020. 8. 30. 22:47

๋ฐค9์‹œ์— ์ฝ”๋”ฉ์„ ํ•˜๋Ÿฌ ์˜ค๋‹ค๋‹ˆใ… ใ…  ์•Œ๋ฐ”&์žฅ๋ณด๊ธฐ๋กœ ํ•˜๋ฃจ๊ฐ€ ๋‹ค ๊ฐ”๋‹ค. ๊ทธ๋ž˜๋„ ์กฐ๊ธˆ์ด๋ผ๋„ ํ•˜๊ณ  ์ž์•ผ์ง€.

 

์˜ค๋Š˜ ํ•  ์ผ

API ์ˆ˜์ • ์™„๋ฃŒํ•˜๊ธฐ(๋ฐ์ฝ”๋ ˆ์ดํ„ฐ, ID๊ฐ’ ์ด์šฉํ•ด์„œ)

 

 

TIL

>2. ์ผ์ •์กฐํ™”๋Š” ๋ฌด๋‚œํ•˜๊ฒŒ ์„ฑ๊ณต!

>3. ์ผ์ •๊ฒ€์ƒ‰์€..

1)๋กœ๊ทธ์ธํ•œ ํšŒ์› ์•„์ด๋””๋กœ ์ž‘์„ฑ๋œ ์ผ์ • ์ค‘์—
2)๊ฒ€์ƒ‰์–ด์™€ ๋งž๋Š” ์ผ์ •์„ ์ฐพ์•„์„œ
3)๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๋ณด์—ฌ์ค˜์•ผ. 

๋‹ค ํ–ˆ๋Š”๋ฐ 
โ“ 'Cannot read property 'length' of undefined ๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋œจ๊ธธ๋ž˜ ์ด๊ฒŒ ๋ญ”๊ฐ€.. ์ฐพ์•„๋ดค๋”๋‹ˆ ํฌ๋กฌ console network์ฐฝ์„ ํ™œ์šฉํ•ด ๋””๋ฒ„๊น…ํ•ด๋ณด๋ผ๋Š” ์กฐ์–ธ์ด ์žˆ์—ˆ๋‹ค.

โ—ํ™œ์šฉํ•˜๋‹ˆ
-๋ฐ์ดํ„ฐ๊ฐ€ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์•ˆ ๋„˜์–ด์˜ค๊ณ  ์žˆ์–ด undefined๊ฐ€ ๋œธ.
-๊ทธ๋Ÿฐ๋ฐ ์„œ๋ฒ„ ์ชฝ์—์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ response['searched']๋ฅผ ์ฐ์–ด๋ณด๋‹ˆ ์ž˜ ๋œธ.
-๊ฒฐ๊ตญ ํ”„๋ก ํŠธ์—”๋“œ์˜ ๋ฌธ์ œ์—ฌ์„œ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ..
searched๋กœ ๋‹ค ๋ฐ”๊ฟ”๋†“์•˜๋˜ ๋ณ€์ˆ˜๋ช… ์ค‘ ํ•˜๋‚˜๊ฐ€ 'serched'๋กœ ๋˜์–ด ์žˆ์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ ๊ฒƒ์ด์—ˆ๋‹ค.
์†Œ์†Œํ•œ ๋””๋ฒ„๊น….. ์„ฑ๊ณต..!

> 4. ์ผ์ •ํŽธ์ง‘์€..

4-1. 'ํŽธ์ง‘'ํด๋ฆญํ•œ ์ผ์ • ์กฐํšŒํ•ด์„œ ํ”„๋ก ํŠธ์—”๋“œ์— ํŽธ์ง‘์ฐฝ value๊ฐ’์œผ๋กœ ๋„ฃ์–ด์คŒ
4-2 ์ˆ˜์ •ํ•œ ๋‚ด์šฉ์„ ๋‹ค์‹œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด db์— ์ €์žฅ
->์ด ๋ถ€๋ถ„์€ db์˜ _id๊ฐ’์„ ํ™œ์šฉํ–ˆ์œผ๋ฏ€๋กœ ํŠน๋ณ„ํžˆ ๊ฑด๋“œ๋ฆด ๋ถ€๋ถ„์ด ์—†์—ˆ๋‹ค.
 ๋กœ๊ทธ์ธ๋˜์–ด์žˆ๊ธฐ๋งŒ ํ•˜๋ฉด 2.์ผ์ •์กฐํšŒ๋ฅผ ํ†ตํ•ด ์ž์‹ ์ด ์ž‘์„ฑํ•œ ์ผ์ •๋งŒ ์กฐํšŒ๋  ๊ฒƒ์ด๊ณ , ์กฐํšŒ๋œ ์ผ์ • ์ค‘์—์„œ๋งŒ ํŽธ์ง‘์ด ๊ฐ€๋Šฅํ•˜๊ณ , ํŽธ์ง‘ํ•˜๋Š” ์ค‘์— ๊ฐ‘์ž๊ธฐ userID๊ฐ€ ๋ฐ”๋€” ์ผ๋„ ์—†์œผ๋ฏ€๋กœ ๋”ฑํžˆ userID๊ฐ’์„ ํ™œ์šฉํ• ๋ถ€๋ถ„์ด ์—†๋Š” ๋“ฏ. ๋งŒ๋“ค์–ด๋‘” API ๋‹ค์‹œ ์‚ฌ์šฉํ•ด ๋ณด์•„๋„ ํฐ ๋ถˆํŽธํ•จ์ด ์—†์—ˆ๋‹ค.
๋‹ค๋งŒ ๋กœ๊ทธ์ธ์‹œ๊ฐ„์ด ๋งŒ๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์ด์œ ์—†์ด ํŽธ์ง‘/ํŽธ์ง‘ํ•œ ๋‚ด์šฉ ์ €์žฅ์ด ์•ˆ ๋  ๋–„๊ฐ€ ์žˆ์–ด์„œ @login.required๋งŒ ๋ถˆ๋Ÿฌ๋‚ด ๋กœ๊ทธ์ธ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

>5. ์ผ์ •์‚ญ์ œ๋Š”..

์ด ๋ถ€๋ถ„์€ 'userID'๋ณด๋‹ค๋Š” '_id'๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ญ์ œํ•˜๋ฉด ๋˜๋Š” ๋ถ€๋ถ„์ด๋ผ์„œ 4.์ผ์ •ํŽธ์ง‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ˆ˜์ •ํ–ˆ๋‹ค.

โ“db์—์„œ ์ผ์ •์ด ์ž˜ ์‚ญ์ œ๋˜๋Š”๋ฐ๋„ ์‚ญ์ œ์™„๋ฃŒ ๋ฉ”์‹œ์ง€๊ฐ€ ์•„๋‹Œ '์„œ๋ฒ„์˜ค๋ฅ˜!'๊ฐ€ ๋œจ๊ธธ๋ž˜ ์™œ ๊ทธ๋Ÿฐ๊ฐ€ ํ•ด์„œ ๋ดค๋Š”๋ฐ, ์‚ญ์ œ์™„๋ฃŒ msg๋Š” ์ฝ˜์†”์ฐฝ์œผ๋กœ ์ž˜ ๋„˜์–ด์˜ค๊ณ  ์žˆ์—ˆ๋‹ค.

โ—์‚ดํŽด๋ณด๋‹ˆ ๊ฒฐ๊ตญ ํด๋ผ์ด์–ธํŠธ ๋ฌธ์ œ์˜€๋Š”๋ฐ _id๊ฐ’์„ ๋ณด๋‚ด๋Š๋ผ .dumps๋กœ ์ธ์ฝ”๋”ฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ 'response = JSON.parse(response)'๋กœ ๋””์ฝ”๋”ฉํ•ด์ฃผ์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ ๊ฑฐ์˜€๋‹ค. ์ด ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•˜๋‹ˆ '์„œ๋ฒ„ ์˜ค๋ฅ˜!'๋Š” ๋œจ์ง€ ์•Š์Œ!

 

๋“œ๋””์–ด API์ˆ˜์ •์„ ๋‹ค ๋งˆ์ณค๋‹ค! ๐ŸŽ‰
ํ™•์‹คํžˆ ์งˆ๋ฌธ๋‹ต๋ณ€, ๊ณต๋ถ€๋ฅผ ํ†ตํ•ด ๊ฐœ๋… ์ดํ•ด๊ฐ€ ์ข€ ๋˜๋‹ˆ๊นŒ ์˜ค๋Š˜์€ ์‚ฝ์งˆ๋„ ๊ฑฐ์˜ ์•ˆ ํ•˜๊ณ , ์—๋Ÿฌ๊ฐ€ ๋œจ๋”๋ผ๋„ ๊ธˆ๋ฐฉ ๊ณ ์น  ์ˆ˜ ์žˆ์—ˆ๋‹ค.๐Ÿ‘

์ด์ œ ์•ž์œผ๋กœ ํ•  ์ผ์„ ์ •๋ฆฌ, ๊ณ„ํšํ•˜๊ณ  ์ž์•ผ๊ฒ ๋‹ค.

+ ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ ์ฝ”๋“œ ์ˆ˜์ •ํ•˜๋‹ค ๋ณด๋‹ˆ this์™€ e์— ๋Œ€ํ•ด์„œ ์ข€ ํ—ท๊ฐˆ๋ฆฌ๋Š”๋ฐ, ํŠœํ„ฐ๋‹˜๊ป˜ ์งˆ๋ฌธํ•˜๊ฑฐ๋‚˜ ๊ธฐํšŒ ๋  ๋•Œ ๊ตฌ๊ธ€๋ง์„ ์ž์„ธํžˆ ํ•ด ๋ด์•ผ๊ฒ ๋‹ค!

 

์•ž์œผ๋กœ ํ•  ์ผ

 

2. ๋‚ ์”จ openAPI์ฐพ์•„์„œ ์ •๋ฆฌํ•˜๊ณ , ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋ถˆ๋Ÿฌ์™€์„œ ํ™œ์šฉํ•˜๊ธฐ
-์ฐพ์•„๋ณด๋‹ˆ..
์›๋ž˜ ํ™œ์šฉํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋˜ '์ผ€์ด์›จ๋”' ๋Š” API์„œ๋น„์Šค๋ฅผ 2017๋…„์— ์ž ์ • ์ค‘๋‹จ.
์ƒˆ๋กœ ์ฐพ์•„๋ณธ '์›จ๋”์•„์ด'๋Š” ์œ ๋ฃŒ๋กœ API์„œ๋น„์Šค ์ œ๊ณต.
๋„ค์ด๋ฒ„, ์นด์นด์˜ค๋Š” ๋‚ ์”จAPI ์ œ๊ณตํ•˜์ง€ ์•Š์Œ.
๊ฒฐ๊ตญ ๊ตฌ๊ธ€๋ง์œผ๋กœ '๋‚ ์”จAPI'๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ค๋Š” Open Weather API๋ฅผ ์šฐ์„  ํ™œ์šฉํ•ด ๋ด์•ผ๊ฒ ๋‹ค. 
openweathermap.org/API

 

Weather API - OpenWeatherMap

Please sign up and use our fast and easy-to-work weather APIs for free. Look at our monthly subscriptions for more options rather than the Free account that we provide you. Read How to start first and enjoy using our powerful weather APIs.

openweathermap.org

-๊ตฌํ˜„๊ณ„ํš : ๋‹น์ผ ๋Œ€ํ•œ๋ฏผ๊ตญ ์˜ค์ „-์˜คํ›„ ๋‚ ์”จ๋ฅผ ์กฐํšŒํ•ด ๋กœ๊ทธ์ธ์‹œ ํ™ˆ ํ™”๋ฉด์—์„œ "์˜ค๋Š˜์˜ ๋‚ ์”จ๋Š” (์˜ค์ „๋‚ ์”จ)-(์˜คํ›„๋‚ ์”จ)์ž…๋‹ˆ๋‹ค. (๋‚ ์”จ๋ณ„ ๋ณ€ํ•˜๋Š” ๋ฌธ๊ตฌ)" ๋ฅผ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค. api์ •๋ณด ๋ฐ›์•„์„œ ๊ฐ ๋‚ ์”จ (๋ง‘์Œ/ํ๋ฆผ/๋น„..)์— ๋งž๋Š” ๋ฌธ๊ตฌ๋ฅผ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋ณด์—ฌ์ค„ ๊ณ„ํš

3. ์•Œ๋ฆผ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ
-์นดํ†ก: ์นด์นด์˜คํ†ก openAPI ํ™œ์šฉํ•ด ํŒŒ์ด์ฌ์œผ๋กœ ์นดํ†ก ๋ณด๋‚ด๊ธฐ (์ฐธ๊ณ :https://ai-creator.tistory.com/23) ๋‚˜์—๊ฒŒ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ.
-๋ฉ”์ผ: ์ˆ˜์—…์ž๋ฃŒ 'ํ•œ๊ฑธ์Œ ๋”' ์ฐธ๊ณ ํ•ด ํŒŒ์ด์ฌ์œผ๋กœ ๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ.
->๋‘˜๋‹ค ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ์‹œ๊ฐ„์— ์•Œ๋ฆผ ๋ณด๋‚ด๊ธฐ!
์‚ฌ์‹ค '๋ฉ์ด์™€ ๋‚˜'์˜ ๋ฉ”์ธ ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— 2.๋‚ ์”จ์กฐํšŒ๋ณด๋‹ค ๋จผ์ € ํ•˜๊ณ  ์‹ถ๋‹ค. ์šฐ์„  ์–‘์งˆ์˜ ์ฐธ๊ณ ์ž๋ฃŒ๊ฐ€ ์žˆ๋Š” ๋ฉ”์ผ๋ณด๋‚ด๊ธฐ๋ถ€ํ„ฐ ํ•ด ๋ณด๊ณ , ๊ทธ ๋‹ค์Œ ์นดํ†ก์•Œ๋ฆผ์„ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•ด ๋ด์•ผ๊ฒ ๋‹ค. + ๊ฐ€๋Šฅํ•œ ์นดํ†ก ๋‚˜์—๊ฒŒ ๋ณด๋‚ด๊ธฐ๊ฐ€ ์•„๋‹Œ ์นดํ†ก์ฑ„๋„์„ ํ†ตํ•œ ์•Œ๋ฆผ๋ฉ”์‹œ์ง€๋กœ!

+ ์ผ์ •๊ฒ€์ƒ‰ ์กฐ๊ฑด ์™„ํ™”?ํ•˜๊ธฐ(20.08.26 TIL ์ฐธ๊ณ )

+ 7์ผ, 30์ผ ๋ ˆ์ด์•„์›ƒ ๋งŒ๋“ค๊ธฐ

+ ์•„์ด๋””(์ด๋ฉ”์ผ) ์ค‘๋ณต๊ฒ€์‚ฌ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ. (๋ฒ„ํŠผ๊ณผ ํ•จ์ˆ˜๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘ )

->์ด ์…‹์€ ํ”„๋กœ์ ํŠธ ๋งˆ๊ฐ ์ „ ๋ฐ˜๋“œ์‹œ ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๋“ค. ์ž˜ ์•ˆ ๋˜๋ฉด ๋‚ด์ผ ์ˆ˜์—…์ด๋‚˜ ์Šฌ๋ž™์ฑ„๋„ ํ†ตํ•ด ์งˆ๋ฌธํ•ด์„œ๋ผ๋„ ํ•ด๋ด์•ผ์ง€. ํŠนํžˆ ์•„์ด๋””(์ด๋ฉ”์ผ)์ค‘๋ณต๊ฒ€์‚ฌ๊ธฐ๋Šฅ!! ๊ทธ๋ƒฅ list(db.user.id)์™€ ์ž…๋ ฅ๊ฐ’์ด ์ผ์น˜ํ•˜๋ฉด ์ค‘๋ณต์ด๋ผ๊ณ  ์–ผ๋Ÿฟ ๋„์šฐ๋ฉด ๋˜๋ ค๋‚˜? :)


๋‚ด์ผ๋„ ์•Œ๋ฐ” 10์‹œ์ถœ๊ทผ..ใ… ใ…  ์–ผ๋ฅธ ์ž์•ผ๊ฒ ๋‹ค. ๋‚ด์ผ ํ‡ด๊ทผํ•˜๊ณ  ์ŠคํŒŒ๋ฅดํƒ€ ์ˆ˜์—… ์ „๊นŒ์ง€ ์—ด์‹ฌํžˆ ๊ฐœ๋ฐœ๊ฐœ๋ฐœ ํ•ด์•ผ์ง€.๐Ÿ’ช

์˜ค๋Š˜์˜ ์ˆœ์ˆ˜๊ณต๋ถ€์‹œ๊ฐ„ - 1:39:26