[ Swift ] ํ”„๋กœํผํ‹ฐ(Property) / NetworkManager์™€ shared

์ธ์Šคํ„ด์Šค ๋˜๋Š” ํƒ€์ž…์˜ ๋ถ€๋ถ„์ธ ์ €์žฅ๋œ ๊ฐ’๊ณผ ๊ณ„์‚ฐ๋œ ๊ฐ’์— ์ ‘๊ทผํ•œ๋‹ค. ํด๋ž˜์Šค๋‚˜ ๊ตฌ์กฐ์ฒด์—์„œ ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํ”„๋กœํผํ‹ฐ๋Š” ๊ฐ’์— ๋Œ€ํ•œ ์ €์žฅ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ €์žฅํ”„๋กœํผํ‹ฐ์™€ ๊ณ„์‚ฐํ”„๋กœํผํ‹ฐ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.  - ํ”„๋กœํผํ‹ฐ์˜ ์œ„์น˜: ํด๋ž˜์Šค์˜ ๋‚ด๋ถ€์—, ๋ฉ”์„œ๋“œ์˜ ์™ธ๋ถ€์— ์ •์˜ํ•œ๋‹ค. ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ์•„๋‹Œ ์ง€์—ญ๋ณ€์ˆ˜.   1. ์ €์žฅํ”„๋กœํผํ‹ฐ ์ƒ์ˆ˜ ๋ฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ •์˜ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ž…๋ ฅ๋œ ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ €์žฅ๋œ ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• . ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด์—์„œ๋Š” ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์—ด๊ฑฐํ˜•์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ.    1-1. ์ง€์—ฐ ์ €์žฅ ํ”„๋กœํผํ‹ฐ(lazy)lazy ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ”„๋กœํผํ‹ฐ๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์„ ์–ธ๋งŒ ๋  ๋ฟ ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š๊ณ  ํ˜ธ์ถœ๋˜๋Š” ์‹œ์ ์— ์ดˆ๊ธฐํ™”๋œ๋‹ค. ์ฒ˜์Œ์œผ๋กœ ํ˜ธ์ถœ๋œ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ๋˜๋ฉฐ, ๊ทธ ๋‹ค์Œ๋ถ€ํ„ฐ ํ˜ธ์ถœ ๋  ๋•Œ๋Š” ์ฒ˜์Œ ์ดˆ..

๐ŸŽ iOS/Swift 2024. 8. 24. 10:07

endpoint ์‚ฌ์šฉ

์ด๋ฒˆ ๋‚ ์”จ์—ก ํŒ€ํ”„๋กœ์ ํŠธ์—์„œ OpenWeather API์™€ Kakao API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ,์„œ๋กœ ๋‹ค๋ฅธ ์š”๊ตฌ์‚ฌํ•ญ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ๋งค๋‹ˆ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๋‹ค. OpenWeather API: ์š”์ฒญ ์‹œ ํ—ค๋” ์„ค์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ.Kakao API: ์š”์ฒญ ์‹œ ์ธ์ฆ์„ ์œ„ํ•œ ํ—ค๋”(Header) ์ถ”๊ฐ€ ํ•„์ˆ˜.-> ์œ„์™€ ๊ฐ™์ด ๋‘ API์˜ ์š”์ฒญ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค ๋ณด๋‹ˆ, ํ•˜๋‚˜์˜ fetchData(url: URL) ๋ฉ”์„œ๋“œ๋กœ ๋‘ API๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋‹ค์†Œ ๋ณต์žก.  ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, Endpoint๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค.๊ฐ API์— ๋Œ€ํ•ด ๋ณ„๋„์˜ Endpoint ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๊ณ , ๊ฐ๊ฐ์˜ API์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. Endpoint์˜ ๋‹ค์–‘ํ•œ ์žฅ์ ๋“ค์ด ์žˆ๊ฒ ์ง€๋งŒ, ๊ฐœ์ธ์ ์œผ๋กœ..

๐ŸŽ iOS/Network 2024. 8. 23. 08:31

JSONObject์™€ JSONArray

JSON(JavaScript Object Notation) ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๋Ÿ‰ ๋ฐ์ดํ„ฐ ํ˜•์‹์ž…๋‹ˆ๋‹ค. JSON์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ๋‚˜๋‰œ๋‹ค. JSON์€ "key-value"๊ฐ€ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. key์™€ value ์‚ฌ์ด๋ฅผ : ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌ๋ถ„ํ•˜๋Š” ํ˜•์‹์„ ์ทจํ•œ๋‹ค.key๊ฐ’๋งŒ ์•Œ๊ณ  ์žˆ์œผ๋ฉด value๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.๊ฐ Key๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด์ด๊ณ , ์ด์— ๋Œ€์‘ํ•˜๋Š” Value๋Š” ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ฐฐ์—ด, ๊ฐ์ฒด ๋“ฑ ๋‹ค์–‘ํ•œ ํƒ€์ž…์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.  JSONObjectJSON Object๋Š” {} ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ง„ Key-Value ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ์ฒด๋‹ค. ๊ฐ Key๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด์ด๊ณ , ์ด์— ๋Œ€์‘ํ•˜๋Š” Value๋Š” ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ฐฐ์—ด, ๊ฐ์ฒด ๋“ฑ ๋‹ค์–‘ํ•œ ..

๐ŸŽ iOS/Network 2024. 8. 20. 14:36