๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Project/๋ถํŠธ๋ฆฝ

[ํšŒ๊ณ ] ๋ถํŠธ๋ฆฝ AppStore ์ถœ์‹œ ํšŒ๊ณ 

๋‚ด ์ธ์ƒ ์ฒซ ์ถœ์‹œ์•ฑ .. (์•„์ง๋„ ๋ณผ ๋•Œ๋งˆ๋‹ค ์‹ ๊ธฐํ•˜๋‹ค ใ…Ž)



๊ฐœ๋ฐœ ์†Œ์š” ๊ธฐ๊ฐ„ : 22.09.13 - 22.09.29 (์•ฝ 16์ผ)

์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ( ์ด 9๊ฐœ )
- Alamofire
- FSCalendar
- IQKeyboardManager
- KingFisher
- Mantis
- Realm
- Snapkit
- SwiftyJSON
- Toast

๋งก์€ ์—ญํ• 
- ๊ธฐํš / ๋””์ž์ธ / ๊ฐœ๋ฐœ ๋ชจ๋‘

๊ธฐํš ๋‹จ๊ณ„

์ด๋ฒˆ ์ถœ์‹œ ํ”„๋กœ์ ํŠธ์—์„œ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ์•„์ด๋””์–ด๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์•˜๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ๋„ ๋‚ด๊ฐ€ ์ •๋ง๋กœ ํ‰์†Œ์— ๋ถˆํŽธํ•จ์„ ๋Š๋ผ๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๋ฌธ์ œ๋ฅผ ์•ฑ์˜ ์ฃผ์ œ๋กœ ์‚ผ๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์ด์ „๋ถ€ํ„ฐ ๊ผญ ์•ฑ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋˜ ๋…๋ฆฝ์„œ์  ํ๋ ˆ์ดํŒ… ์•ฑ์„ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ๋ถํŠธ๋ฆฝ์„ ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋‹จ ๊ธฐํš ๋‹จ๊ณ„์—์„œ๋Š”, ์ง€๋„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ€์žฅ ๋‹ค์–‘ํ•œ ๋…๋ฆฝ์„œ์ ์„ ํ๋ ˆ์ดํŒ… ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์ง€๋„ ๊ธฐ๋ฐ˜์˜ ๊ธฐ๋Šฅ ์œ„์ฃผ๋กœ ๊ธฐํš์„ ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ผ๋‹จ ์ถœ์‹œ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„๋™์•ˆ ๋‚ด๊ฐ€ ์–ด๋Š ์ •๋„๊นŒ์ง€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ฐ์ด ์žกํžˆ์ง€ ์•Š์•„์„œ ๊ฐ€์žฅ ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ ์œ„์ฃผ๋กœ ๊ธฐํš์„œ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์—ญ์‹œ๋‚˜ ๊ธฐ๋Šฅ์ด ์ถœ์‹œ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ ๋Œ€๋น„ ๋ถ€์กฑํ•˜๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฉ˜ํ† ๋‹˜๊ณผ ์ƒ์˜๋ฅผ ํ•ด์„œ, ์‚ฌ์šฉ์ž๊ฐ€ ๋…๋ฆฝ์„œ์ ์„ ๋ฐฉ๋ฌธํ•ด์„œ ๊ด€๋ จ๋œ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ์ด๋Ÿฐ ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ฒช์œผ๋ฉด์„œ, ๊ธฐํš์ด๋ผ๋Š” ๊ณผ์ •์—์„œ๋Š” ์‹œ๊ฐ„ ์•ˆ์— ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋‚˜์˜ ๋Šฅ๋ ฅ์„ ์ž˜ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์ถœ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์—๋Š” ์ด๋Ÿฐ ๊ทœ๋ชจ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒฝํ—˜์ด ์ ๋‹ค๋ณด๋‹ˆ, ๋‚˜์˜ ๋Šฅ๋ ฅ์— ๋Œ€ํ•œ ์ธ์ง€ ๋Šฅ๋ ฅ์ด ๋งŽ์ด ๋ถ€์กฑํ–ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.

๊ฐœ๋ฐœ ๋‹จ๊ณ„

์ฒ˜์Œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋งž๋‹ฅ๋œจ๋ฆฐ ๋ฌธ์ œ๋Š” ๋…๋ฆฝ์„œ์ ์˜ ์ด๋ฆ„์„ Naver Place API ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฒ€์ƒ‰ํ•œ ํ›„, JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œํ˜„ํ•˜๊ณ ์ž ํ–ˆ์—ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค Place API ์—์„œ ๋‚˜์˜ค๋Š” ์ •๋ณด๊ฐ€ ํ•œ์ •์ ์ด๋ผ ์ด API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋˜์—ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‹จ์ˆœํžˆ '์˜ค, Place API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„ค์ด๋ฒ„์—์„œ ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ์žฅ์†Œ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚˜์˜ค๊ฒ ์ง€?' ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ , ๊ธฐํš๋‹จ๊ณ„์—์„œ API์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ž์„ธํžˆ ์ฐพ์ง€ ์•Š์•„ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ํ—ˆ๋น„ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด, ๊ธฐํš ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” API ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณธ ํ›„์— ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉ์ ๊ณผ API์˜ ์ ํ•ฉ์„ฑ์„ ๋น„๊ตํ•˜๋Š” ๊ณผ์ •์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐํš์ด ํƒ„ํƒ„ํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ํฌ๊ณ  ์ž‘์€ ์‹œ๊ฐ„์„ ํ—ˆ๋น„ํ•˜๊ฒŒ ๋˜์–ด ์ „์ฒด์ ์ธ ํšจ์œจ์„ฑ์ด ์ €ํ•ด๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ชธ์†Œ ๊นจ๋‹ฌ์•˜๊ธฐ์— ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ธฐํš์„ ์ข€ ๋” ๊ตฌ์ฒด์ ์ด๊ฒŒ ์งœ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋‹ค์Œ์€ ๋ถํŠธ๋ฆฝ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ๊ฒƒ์— ๋น„ํ•ด ์กฐ๊ธˆ ๋” ์˜ค๋ž˜ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๋˜ ๋ฌธ์ œ๋ฅผ ์†Œ๊ฐœํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

1) API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์–ด๋–ป๊ฒŒ JSON ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ธ๊ฐ€?

์ผ๋‹จ ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์€ ๋‚ด๊ฐ€ ์ง€๋„์— ํ‘œ์‹œํ•˜๊ณ ์ž ํ•˜๋Š” ๋…๋ฆฝ์„œ์ ์— ๋Œ€ํ•œ ์ •๋ณด(๋…๋ฆฝ์„œ์ ๋ช…, ์ฃผ์†Œ, ๋งํฌ, ๊ฒฝ๋„, ์œ„๋„, ์šด์˜์‹œ๊ฐ„)๋ฅผ JSON ํ˜•์‹์œผ๋กœ ์ ์–ด์ฃผ๊ณ , JSON ๋ฐ์ดํ„ฐ์˜ Key ๊ฐ’๊ณผ ๋™์ผํ•œ ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์ค€ ํ›„์— ๊ทธ ๋ณ€์ˆ˜์˜ ๊ฐ’์— ๋”ฐ๋ผ Value ๊ฐ’์„ ํŒŒ์‹ฑํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ JSON Data์˜ Key ๊ฐ’์€ ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„ ์ด๋ฆ„๊ณผ ์ผ๋Œ€์ผ ๋งค์นญ์„ ํ•ด์ฃผ์–ด์•ผ๋งŒ ๋ฌธ์ œ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์˜คํƒ€๋ฅผ ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ˜์ ์„ ์ ์ง€ ์•Š๋Š”๋‹ค๊ฑฐ๋‚˜, ์˜คํƒ€๊ฐ€ ๋‚œ๋‹ค๊ฑฐ๋‚˜ ๊ทธ๋Ÿฌ๋ฉด ์˜ค๋ฅ˜ํŒŒํ‹ฐ๊ฐ€ ์—ด๋ฆฐ๋‹ค.. ๊ทธ๋ ‡๋‹ค ํ•ญ์ƒ ์†๊พธ๋ฝ์ด ๋ฌธ์ œ์˜€๋‹ค ..


2) ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ฆฌ๊ณ ์ž ํ•  ๋•Œ, ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์šฉ๋Ÿ‰์„ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€? ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ 100๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด?


์‚ฌ์šฉ์ž๊ฐ€ ๋…๋ฆฝ์„œ์ ์—์„œ ์ฐ์€ ์‚ฌ์ง„์„ ์ €์žฅํ•˜๊ณ ์ž ํ•  ๋•Œ, ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰์„ ์ฒ˜๋ฆฌํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์•ฑ์˜ ์šฉ๋Ÿ‰์ด ์–ด๋งˆ์–ด๋งˆํ•ด์ง„๋‹ค. ํŠนํžˆ ์š”์ฆ˜๊ฐ™์ด ์นด๋ฉ”๋ผ ํ™”์งˆ์ด ์ข‹์€ ์„ธ์ƒ์—์„œ๋Š” ์‚ฌ์ง„ ํ•˜๋‚˜๋‹น ์šฉ๋Ÿ‰์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ๋งŒ ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰์„ ์ฒ˜๋ฆฌํ•ด์ค„์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€, image resize ๋ฐฉ๋ฒ•์œผ๋กœ ์šฉ๋Ÿ‰์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ƒˆ๋กญ๊ฒŒ ์ ์šฉํ•  ๊ฐ€๋กœ๊ธธ์ด๋ฅผ ๋ฐ›์•„์„œ ์›๋ณธ์ด๋ฏธ์ง€์™€ ๋น„์œจ์„ ๋น„๊ตํ•ด์„œ ์„ธ๋กœ ๊ธธ์ด๋„ ์ ์šฉํ•ด์‹œ์ผœ์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๊ณ  UIGraphicsImageRenderer๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์ค€ ํ›„์— image()ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์ด๋ฏธ์ง€์— ์ ‘๊ทผํ•ด์„œ ์›ํ•˜๋Š” ์ž‘์—…์„ ํ•œ ํ›„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ๋˜๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ render.image ๋ถ€๋ถ„๊ณผ draw ๋ถ€๋ถ„์ด ๋งŽ์€ CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์–ด, ์ด๋Ÿฌํ•œ ๊ณ ์šฉ๋Ÿ‰ ์ด๋ฏธ์ง€๊ฐ€ ์Œ“์ด๋‹ค๋ณด๋ฉด ์•ฑ์ด ํ„ฐ์งˆ ์ˆ˜ ์žˆ๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•˜๋‹ˆ ์ด ๋ถ€๋ถ„์€ ์ถ”ํ›„ ๊ฐœ์„ ํ•ด๋‚˜๊ฐ€์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

3) ํ•œ ํ™”๋ฉด ๋‚ด ๊ฐ™์€ ๋ฒ„ํŠผ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ• ๊นŒ?

์ด ๋ฌธ์ œ๋Š” ์ง„์งœ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋Š”๋ฐ, '๊ฐ™์€ Button์— ๋‹ค๋ฅธ Action์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์„๊นŒ?'๋ผ๋Š” ๋ฌธ์ œ์— ๊ฝ‚ํ˜€์„œ ๋„์ €ํžˆ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผํ• ์ง€ ๊ฐ์ด ์žกํžˆ์ง€ ์•Š์•˜์—ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ–ˆ๋˜ ๋ถ€๋ถ„์€ ์ˆ˜์ •ํ™”๋ฉด์—์„œ ์˜€๋Š”๋ฐ, ์บ˜๋ฆฐ๋”ํƒญ์—์„œ ๋‚ ์งœ๋ฅผ ํด๋ฆญํ•œ ํ›„์— ๋‚˜์˜ค๋Š” ์ˆ˜์ •ํ™”๋ฉด ๋‚ด์˜ ์‚ญ์ œ๋ฒ„ํŠผ๊ณผ ํฌํ† ํƒญ์„ ํด๋ฆญํ•œ ํ›„์— ํฌํ† ์นด๋“œ๋ฅผ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ์ˆ˜์ •ํ™”๋ฉด ๋‚ด์˜ ์‚ญ์ œ๋ฒ„ํŠผ์ด ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•ด์•ผ๋งŒ ํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์บ˜๋ฆฐ๋”์—์„œ๋Š” Realm ์ด ์„ ํƒํ•œ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ํ•„ํ„ฐ๋ง์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ indexPath๋ฅผ ์‚ฌ์šฉํ•ด ์‚ญ์ œํ•ด์•ผ ํ–ˆ๊ณ , ํฌํ† ํƒญ์—์„œ๋Š” ์ „์ฒด Realm ์„ ๋‚ ์งœ๊ฐ€ ๋น ๋ฅด๊ณ  ๊ฐ™์€ ๋‚ ์งœ ์•ˆ์—์„œ๋„ ์ตœ๊ทผ์— ๋“ฑ๋ก๋œ ์ˆœ์œผ๋กœ Sort๋ฅผ ํ•œ ํ›„์— indexPath๋ฅผ ์‚ฌ์šฉํ•ด ์‚ญ์ œํ•ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ Button Action์„ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ด๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„์„œ ๊ณ„์† Realm Exception ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, ์ฐจ๊ทผ์ฐจ๊ทผ ๊ฐ ํƒญ๋งˆ๋‹ค ์–ด๋–ค task๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด๋Š” ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ์ข…์ ์œผ๋กœ๋Š” UserDefaults๋ฅผ ํ™œ์šฉํ•ด, ์บ˜๋ฆฐ๋”ํƒญ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ๋ฅผ false ๋กœ ์ง€์ •ํ•˜๊ณ  ํฌํ† ํƒญ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ๋Š” true๋กœ ์ง€์ •ํ•ด ์ด์— ๋”ฐ๋ฅธ ๋ถ„๊ธฐ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด ํ•ด๊ฒฐํ–ˆ๋‹ค. ์ •๋ง ์ƒ๊ฐ๋ณด๋‹ค ์‰ฌ์šด ๋ฌธ์ œ์˜€๋Š”๋ฐ, ๊ฐ™์€ Realm์„ ํƒญ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ filtering ํ•˜๊ณ  sortํ•˜๋Š” ๊ณผ์ •์—์„œ ๋จธ๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ ธ ์ƒ๊ฐ๋ณด๋‹ค ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.


4) ์™œ ์‹ค์‹œ๊ฐ„ ๋‚˜์˜ ์œ„์น˜๋ฅผ ํด๋ฆญํ•˜๋ฉด (ํŒŒ๋ž€์ ) ์•ฑ์ด ๊บผ์งˆ๊นŒ?


์ง€๋„ ๊ธฐ๋Šฅ์„ ๋‹ค ๊ตฌํ˜„ํ•œ ํ›„์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๋‹ค๊ฐ€, ๋‹ค๋ฅธ Annotation์„ ํด๋ฆญํ•˜๋ฉด ๊ดœ์ฐฎ์€๋ฐ, ์‹ค์‹œ๊ฐ„ ๋‚˜์˜ ์œ„์น˜๋ฅผ ํด๋ฆญํ•˜๋ฉด ์•ฑ์ด ๊บผ์ง€๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. (์™œ ์•ˆ๋ผ..!) ๊ทธ๋ž˜์„œ ์ด๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋ฉ˜ํ† ๋‹˜๊ป˜ ์—ฌ์ญค๋ณด๋‹ˆ, ๊ฐ•์ œํ•ด์ œ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌ๊ฐ€ ๋”ฐ๋กœ ํ•„์š”ํ•  ๊ฑฐ ๊ฐ™๋‹ค๊ณ  ๋ง์”€ํ•ด์ฃผ์…จ๋‹ค. as? ๋Š” "๋Ÿฐํƒ€์ž„ ์‹œ์ "์— ๋‹ค์šด ์บ์ŠคํŒ…์„ ํ•˜๊ณ  ์‹คํŒจํ•  ๊ฒฝ์šฐ nil์„ return ํ•˜์ง€๋งŒ, as!๋Š” "๋Ÿฐํƒ€์ž„ ์‹œ์ "์— ๋‹ค์šด ์บ์ŠคํŒ…์„ ํ•˜๊ณ  ์‹คํŒจํ•  ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ์ด ๊บผ์ง€๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ถ€๋ถ„์€ ์•ˆ์ „ํ•˜๊ฒŒ guard let ์œผ๋กœ ์˜ต์…”๋„ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ  as! ๊ฐ€ ์•„๋‹Œ as?๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์—ˆ๋‹ค.


5) tmp ํŒŒ์ผ์€ ์–ด๋–ค ํŒŒ์ผ์ธ๊ฐ€?

๋””๋ฐ”์ด์Šค์— ์ด๋ฏธ์ง€๊ฐ€ ์ž˜ ์ €์žฅ๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด Download Container ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ์šฉ๋Ÿ‰์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์—์„œ tmp ๋ผ๋Š” ํŒŒ์ผ์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚ด๊ฐ€ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€์˜ ์šฉ๋Ÿ‰์— ๋น„ํ•ด ๋ฐ์ดํ„ฐ์˜ ์šฉ๋Ÿ‰์ด ์—„์ฒญ ์ปธ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ํŒŒ์ผ์—๋Š” ๋‚ด๊ฐ€ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์›๋ณธ ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด ๊ทธ๋Œ€๋กœ ์˜ฌ๋ผ๊ฐ€๊ณ  ์žˆ์–ด์„œ ์ „์ฒด ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰์ด ์–ด๋งˆ๋ฌด์‹œํ•˜๊ฒŒ ์ปค์กŒ๋˜ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ํŒŒ์ผ์˜ ์šฉ๋„๊ฐ€ ๊ต‰์žฅํžˆ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋ฉ˜ํ† ๋‹˜๊ป˜ ์—ฌ์ญค๋ณด๋‹ˆ, tmp ํŒŒ์ผ์€ ์‹œ์Šคํ…œ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ž„์‹œ ํŒŒ์ผ๋“ค์ด๋ผ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ œ๊ฑฐ๋˜๊ฑฐ๋‚˜, ํ˜น์€ KingFisher ์—์„œ ์บ์‹ฑ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ๋ง์”€ํ•ด์ฃผ์…จ๋‹ค. ๋˜ ํ˜น์‹œ ์‹ ๊ฒฝ์“ฐ์ด๋ฉด ์ด ํŒŒ์ผ์„ ์ •๊ธฐ์ ์œผ๋กœ ์ œ๊ฑฐํ•ด๋„ ๊ดœ์ฐฎ๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ๋‚˜๋Š” ์ด ๋ถ€๋ถ„์ด ๊ต‰์žฅํžˆ ์‹ ๊ฒฝ์“ฐ์˜€๊ธฐ ๋•Œ๋ฌธ์—, tmp ํŒŒ์ผ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์•˜๋‹ค.


์‚ฌ์‹ค ์•„์ง๊นŒ์ง€๋„ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์™„๋ฒฝํ•˜์ง„ ์•Š์ง€๋งŒ, FileManager Extension์„ ํ†ตํ•ด Appdelegate ์—์„œ ์•ฑ์ด ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์œ„ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ •๊ธฐ์ ์œผ๋กœ tmp ํŒŒ์ผ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

๋ฆฌ์ 

์ฒซ ์ถœ์‹œ๋ฅผ ํ•˜๊ณ  ๊ธฐ๋Œ€๋˜๋Š” ๋งˆ์Œ์œผ๋กœ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋ฆฌ์ ์ด ๋˜์—ˆ๋‹ค๋Š” ์•Œ๋ฆผ์ด ์™”๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์ˆ˜๋„ ์—†์ด ๋ดค๋˜ ๊ถŒํ•œ ๋ฌธ๊ตฌ์— ๊ด€๋ จ๋œ ๋ฆฌ์ .. ์‚ฌ์‹ค ํ”ผ๋ฆฌ์ŠคํŠธ ํŒŒ์ผ์— ๋ฌธ๊ตฌ ์“ธ ๋•Œ๋„ ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•œ๊ฐ€ ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค๊ธด ํ–ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ์•ฑ์˜ ์‚ฌ์ง„ ๊ถŒํ•œ ํ—ˆ์šฉ ๋ฌธ๊ตฌ๋„ ์ด๋ ‡๊ฒŒ ์“ฐ๊ธธ๋ž˜ ('์‚ฌ์ง„์„ ์ฒจ๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ถŒํ•œ ํ—ˆ์šฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค') ์ด๋ ‡๊ฒŒ ์จ๋„ ๋˜๊ฒ ๊ตฌ๋‚˜ ๋ผ๋Š” ์•ˆ์ผํ•œ ์ƒ๊ฐ์ด ํ™”๋ฅผ ๋ถ€๋ฅธ ๊ฑฐ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฆฌ์  ์•Œ๋ฆผ์„ ๋ณด๊ณ  ๋ฐ”๋กœ ๊ถŒํ•œ ๋ฌธ๊ตฌ๋ฅผ ์ตœ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฐ”๊ฟ”์„œ ์žฌ์‹ฌ์‚ฌ๋ฅผ ๋„ฃ์—ˆ๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ๋‚ ์— ํ†ต๊ณผ๋˜์—ˆ๋‹ค๊ณ  ํ†ต์ง€๊ฐ€ ์™”๋‹ค. ์ด๋ฒˆ ๋ฆฌ์ ์„ ํ†ตํ•ด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ถŒํ•œ ๋ฌธ๊ตฌ๋Š” ์ตœ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ด๊ณ  ์ž์„ธํ•˜๊ฒŒ ์“ฐ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ตฌ๋‚˜๋ฅผ ์ธ์ง€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์•ž์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์•ผ ํ•  ๋ถ€๋ถ„


์›๋ž˜ ์ง€๊ธˆ ๊ตฌํ˜„๋œ ๊ฒƒ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ์™„์„ฑ๋„์žˆ๊ฒŒ ํ•ด์„œ ์ถœ์‹œ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„์ด ๋นก๋นกํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— ๋ฒ„๊ทธ๋ฅผ ์žก๋Š”๋ฐ์— ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์„œ ์ผ๋‹จ ์ „์ฒด์ ์ธ ๊ธฐ๋Šฅ์ด ์˜ค๋ฅ˜์—†์ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ํ™•์ธํ•˜๊ณ  ์ถœ์‹œ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. (๋‚˜๋จธ์ง€๋Š” ๋ฏธ๋ž˜์˜ ๋‚ด๊ฐ€ ์ˆ˜๊ณ ํ•˜๊ฒ ์ง€..) ๊ทธ๋ž˜์„œ ์•ž์œผ๋กœ ๋‚จ์€ ์—…๋ฐ์ดํŠธ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ๊ณผ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•ด์„œ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ ๋””ํ…Œ์ผํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์— ์ง‘์ค‘ํ•˜๊ณ ์ž ํ•œ๋‹ค.

- ํฌํ† ํƒญ์— ํ•˜๋‚˜์˜ Cell๋งŒ ์ •์ค‘์•™์— ๋ณด์ด๋„๋ก ๋งŒ๋“ค๊ธฐ

์›๋ž˜ CollectionViewCell์„ ๋„˜๊ธธ ๋•Œ ํ™”๋ฉด ์ •์ค‘์•™์— Cell์„ ํ•˜๋‚˜์”ฉ๋งŒ ๋ณด์ด๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ, ์‹œ๊ฐ„๋„ ๋ถ€์กฑํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ ๊ฐ์ด ์ž˜ ์žกํžˆ์ง€ ์•Š์•„์„œ ์šฐ์„ ์€ ์ตœ๋Œ€ํ•œ ์ค‘์•™์— ๋ณด์ด๋„๋ก ๋งŒ๋“ค๊ธด ํ–ˆ์ง€๋งŒ ์ฃผ๋ณ€ ์ง€์ธ๋“ค๋กœ๋ถ€ํ„ฐ ํ™”๋ฉด ์ค‘์•™์— ํฌํ† ์นด๋“œ๊ฐ€ ๋ณด์˜€์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์–ด์„œ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋ ˆ์ด์•„์›ƒ์„ ์–ด๋–ป๊ฒŒ ์žก์•„์•ผ ํ• ์ง€ ์ข€ ๋” ๊ณ ๋ฏผํ•ด๋ณด๋Š” ์‹œ๊ฐ„์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.

- ํฌํ† ์นด๋“œ๋ฅผ ํ•œ ๋ฒˆ์— ๋ชจ์•„์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

์œ„์™€ ๊ฐ™์€ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹  ๋ถ„๋„ ์žˆ๋Š”๊ฐ€ ํ•˜๋ฉด, ์‚ฌ์ง„์„ ๋„˜๊ธฐ๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ํ•œ ํ™”๋ฉด์— ๋‹ค ๋ชจ์•„์„œ ๋ณผ ์ˆ˜๋„ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹  ๋ถ„๋„ ๊ณ„์…จ๋‹ค. ๊ทธ๋ž˜์„œ ํฌํ† ์นด๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณด์ผ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋Šฅ์„ ๋‹ค์–‘ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.

- ํฌํ† ํƒญ์— ๋Œ€ํ•œ Tutorial ํ•„์š”

์‹œ๊ฐ„์ด ๋ถ€์กฑํ•ด์„œ ์บ˜๋ฆฐ๋”ํƒญ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ํฌํ† ํƒญ์—๋Š” ๋”ฐ๋กœ Tutorial์„ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด ๋“ค์–ด์™€์„œ ์ด ๋ถ€๋ถ„๋„ ์ถ”ํ›„ ์—…๋ฐ์ดํŠธ ๋•Œ ์ถ”๊ฐ€ํ•  ์˜ˆ์ •์ด๋‹ค. ํฌํ† ํƒญ์„ ์ฒ˜์Œ ๋“ค์–ด๊ฐ”์„ ๋•Œ, ๋นˆ ํ™”๋ฉด์ด ๋‚˜์˜ค๋Š”๋ฐ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์ด ํƒญ์€ ์–ด๋–ค ํƒญ์ธ์ง€ ์ธ์ง€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ Tutorial ์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์–ด ์ด ๋ถ€๋ถ„๋„ ์ถ”ํ›„์— ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค.

- ๋ฐฑ์—… / ๋ณต๊ตฌ ๊ธฐ๋Šฅ

๋Š๋‚€ ์ 

์ด๋ฒˆ ์ถœ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, AppStore์— ์ถœ์‹œ๊นŒ์ง€์˜ ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ฒฝํ—˜ํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๋งŽ์ด ํ‚ค์šธ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ฒ˜์Œ ์•ฑ ์ถœ์‹œ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋‹ˆ, ๋Œ์•„๋ณด๋ฉด ๋ฏธ์ˆ™ํ–ˆ๋˜ ๋ถ€๋ถ„๋„ ๋งŽ๊ณ  ๋‹ค์‹œ ๋Œ์•„๊ฐ€๋ฉด ๋” ์ž˜ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์€ ๋ถ€๋ถ„๋„ ๋งŽ์ด ์žˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๊ทธ๋Ÿฐ ์‹œ๊ฐ„๋“ค์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์ด ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. 16์ผ์ด๋ผ๋Š” ๊ธฐ๊ฐ„์ด ์งง์€ ์‹œ๊ฐ„์€ ์•„๋‹ˆ์—ˆ๋˜ ๋งŒํผ, ์ฒด๋ ฅ์ ์œผ๋กœ ํž˜๋“  ์‹œ๊ฐ„๋„ ์žˆ์—ˆ๊ณ  ๋งค์ผ์ด ์˜ค๋ฅ˜์™€์˜ ์ „์Ÿ์ด์—ˆ์ง€๋งŒ ์ถœ์‹œํ•˜๊ณ  AppStore์— ๋‚ด ์ด๋ฆ„์œผ๋กœ ์•ฑ์ด ์˜ฌ๋ผ๊ฐ€๊ณ  ๋‚˜๋‹ˆ ๊ทธ๋™์•ˆ์˜ ํž˜๋“ค์—ˆ๋˜ ๊ฒƒ๋“ค์ด ๋‹ค ๋‚ ๋ผ๊ฐˆ ๋งŒํผ ๋ฟŒ๋“ฏํ–ˆ๋˜ ๊ฒฝํ—˜์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์•ž์œผ๋กœ๋Š” ๋ถํŠธ๋ฆฝ์„ ์ž˜ ๊ด€๋ฆฌํ•ด์„œ, ์‚ฌ์šฉ์ž๋“ค์ด ์‚ฌ์šฉํ•˜๊ธฐ์— ํŽธ๋ฆฌํ•œ ์•ฑ์œผ๋กœ ๋งŒ๋“ค์–ด๋‚˜๊ฐ€๊ณ  ์‹ถ๋‹ค.



โ€Ž๋ถํŠธ๋ฆฝ

โ€Ž๊ทธ๋ž˜์„œ ๋ถํŠธ๋ฆฝ์€ ๊ฐ€๊นŒ์šด ๋…๋ฆฝ์„œ์ ์ด ์žˆ๋Š”์ง€ ์ผ์ผ์ด ๊ฒ€์ƒ‰ํ•ด๋ณด์ง€ ์•Š์•„๋„, ์ง€๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์–‘ํ•œ ๋…๋ฆฝ์„œ์ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ•œ ๋ฒˆ์— ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์•ฑ์ด์—์š”. ๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ง€๊ธˆ

apps.apple.com