[Firebase] Firestore โ‘  NoSQL Database๋ž€

2021/01/19 - [Firebase] Firestore โ‘  NoSQL Database๋ž€ 2021/01/20 - [Firebase] Firestore โ‘ก Firestore์˜ ๊ตฌ์กฐ Cloud Firestore๋Š” NoSQL database์ž…๋‹ˆ๋‹ค. (NoSQL์ด ๋ฌด์—‡์ธ์ง€ ์•„์‹œ๋Š” ๋ถ„์€ ์˜์ƒ์˜ 10๋ถ„๋Œ€๋กœ ๋„˜์–ด๊ฐ€์‹œ๊ฑฐ๋‚˜ ๋‹ค์Œ ๊ธ€๋กœ ๋„˜์–ด๊ฐ€์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค~) ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์€ NoSQL์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Firebase์˜ ๊ณต์‹ ์œ ํŠœ๋ธŒ์—์„œ ์ œ๊ณตํ•˜๋Š” ์˜์ƒ์„ ๋ฒˆ์—ญํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค! ์ปคํ”ผ ํ•œ ์ž”์€ ์™€๋ฐฉ ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค? ๊น”๊น”>< ํ˜น์‹œ๋‚˜ ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ ์‹œ ๋Œ“๊ธ€๋กœ ๊ผญ ๋ง์”€ํ•ด์ฃผ์„ธ์š”! ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? ๊ด€๊ณ„ํ˜• DB๋Š” ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ์ด ๋˜์–ด ์žˆ์ฃ ? ๊ฐ ํ…Œ์ด๋ธ”์˜ ํ–‰(row)์€ ์ •ํ•ด์ง„ ๊ทœ์น™์„ ๋”ฐ๋ผ ์ฑ„์›Œ๋‚˜๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ..

๋…ธ์žผ ์ธ์ƒ ์‚ด์•„๊ฐ€๊ธฐ

(2020.08.25์— ์ž‘์„ฑ ํ•œ ๊ธ€์„ ์˜ฎ๊ฒจ์™”์Šต๋‹ˆ๋‹ค.) "๋‚˜ ์ด์ œ ์•ˆ ๊ทธ๋ž˜ใ…‹ใ…‹ใ…‹" ์–ผ๋งˆ ์ „ ์นœ๊ตฌ์—๊ฒŒ DM์ด ์™”๋‹ค. ์žฌ์ˆ˜ ์‹œ์ ˆ์„ ํ•จ๊ป˜ํ–ˆ์œผ๋‹ˆ ํ–‡์ˆ˜๋กœ๋Š” 4๋…„์ง€๊ธฐ๋‹ค. ํ•˜์ง€๋งŒ ์นœ๊ตฌ๋Š” ๋ถ€์‚ฐ์— ์‚ด๊ณ  ๋‚œ ์•ˆ์–‘์— ์žˆ์œผ๋‹ˆ 1๋…„์— ๊ฒจ์šฐ ์‹œ๊ฐ„์„ ๋งž์ถฐ 1๋ฒˆ ๋ณผ๊นŒ ๋ง๊นŒํ•œ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ง€๋‚œ 1๋…„์„ ๋‚ด๊ฐ€ ํ•œ๊ตญ์— ์—†์—ˆ์œผ๋‹ˆ ์ด ์นœ๊ตฌ ๋งŒ๋‚œ์ง€ 1๋…„์ด ํ›จ์”ฌ ๋” ๋˜์—ˆ๋‹ค๋Š” ๋ง์ด๋„ค. ์นœ๊ตฌ๋Š” ์ธ์Šคํƒ€ ๋””์— ์œผ๋กœ ์œ ํŠœ๋ธŒ ๋งํฌ๋ฅผ ํ•˜๋‚˜ ๋ณด๋‚ด์™”๋‹ค. ์นœ๊ตฌ๋Š” ์ธ„๋”๋‹˜์˜ ์ •๋ง ์˜›๋‚  ์˜์ƒ์„ ๋ฐœ๊ตดํ•ด ๋ณด๋‚ด์™”๋‹ค. (์•„ ์ฐธ๊ณ ๋กœ ์ธ„๋”๋‹˜ ์˜์ƒ ์ค‘ [Ariana Grande - Santa Tell Me COVER | โ™ช Chrismas โ™ช] ๊ฐ€ ๋‚ด๊ฐ€ ์ œ์ผ ์ข‹์•„ํ•˜๋Š” ์˜์ƒ์ด๋‹ค. ์ฐฝ๋ฒ• ๋ถ„์„ํ•˜๋Š”๊ฒŒ ๋์žฅ๋‚˜ ์ฃผ์‹œ๋Š” ๋ถ„) ์˜์ƒ์„ ํ‹€์–ด๋ดค๋Š”๋ฐ ์›ƒ์Œ์ด ๋‚ฌ๋‹ค. ์˜์ƒ์ด ์›ƒ๊ธด๊ฑด ๋‹น์—ฐํ•˜๊ณ , ์นœ๊ตฌ๊ฐ€ ๋ฌด์Šจ ์ƒ๊ฐ..

SUEATY/๊ธฐ๋ก 2021. 1. 19. 01:07
[iOS] SceneDelegate & AppDelegate์˜ ์—ญํ• 

* ํ•ด๋‹น ๊ธ€์—๋Š” ๊ฐœ์ธ ๊ฒฌํ•ด๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ์œผ๋ฏ€๋กœ ์ด๊ณณ์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์กฐ๊ธˆ ๋” ๊น”๋”ํ•œ ์„ค๋ช…์„ ๋ณด์‹ค์ˆ˜๋„(?) ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ SceneDelegate๊ณผ AppDelegate์˜ ์—ญํ• ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณต์‹๋ฌธ์„œ์™€ DW ๋ธ”๋กœ๊ทธ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ธ€์ด๋ผ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ ์‹œ ๋Œ“๊ธ€๋กœ ๊ผญ ๋ง์”€ํ•ด์ฃผ์„ธ์š”! ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? ์ œ๊ฐ€ ์•ฝ 5๊ฐœ์›” ์ „์— ์ฒ˜์Œ iOS๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ์„ ๋• XCode ๋ฒ„์ „๋„ 11 ์ด์ƒ์ด์—ˆ๊ณ  ๋‹น์‹œ ๋ณดํŽธ์ ์ด์—ˆ๋˜ iOS ๋ฒ„์ „๋„ 13์ด์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ ์ œ๊ฐ€ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ๋„ Create New Project๋ฅผ ํ•˜๋ฉด AppDelegate.swift์™€ SceneDelegate์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ AppDelegate์ด App Life-Cycle๋„ ๊ด€๋ฆฌํ•˜๋˜ ํ˜ธ๋žญ์ด ๋‹ด๋ฐฐํ”ผ๋˜ ์‹œ์ ˆ(์ด..

iOS 2021. 1. 16. 19:47
[Swift] defer ๊ตฌ๋ฌธ

์ด ๊ธ€์€ defer ๊ตฌ๋ฌธ์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. Swift Programming Language, ์•ผ๊ณฐ๋‹˜์˜ ์Šค์œ„ํ”„ํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 3ํŒ, ์ˆฉ๋‹˜ ๋ธ”๋กœ๊ทธ์™€ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ธ€์ด๋ผ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ ์‹œ ๋Œ“๊ธ€๋กœ ๊ผญ ๋ง์”€ํ•ด์ฃผ์„ธ์š”! ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? defer ๊ตฌ๋ฌธ defer ๊ตฌ๋ฌธ์ด ํ•˜๋Š” ์—ญํ• ์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์€ ๋‹จ์–ด ์ž์ฒด์˜ ๋œป์„ ์•Œ๋ฉด ๋งŽ์€ ๋ถ€๋ถ„ ํ•ด์†Œ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ฃจ๋‹ค, ์—ฐ๊ธฐํ•˜๋‹ค๋ผ์ฃ ? ๋งž์Šต๋‹ˆ๋‹ค. defer ๊ตฌ๋ฌธ์€ ์‹คํ–‰์„ ์ž ์‹œ ๋ฏธ๋ค„๋‘์—ˆ๋‹ค๊ฐ€ ์‹คํ–‰๋˜๋‹ˆ๊นŒ์š”. ๊ณต์‹ ๋ฌธ์„œ๋กœ ๋ช…ํ™•ํžˆ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. A defer statement is used for executing code just before transferring program control outside of the scope that ..

iOS 2021. 1. 16. 02:00
[Swift] Optional

* ํ•ด๋‹น ๊ธ€์—๋Š” ๊ฐœ์ธ ๊ฒฌํ•ด๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ์œผ๋ฏ€๋กœ ์ด๊ณณ์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์กฐ๊ธˆ ๋” ๊น”๋”ํ•œ ์„ค๋ช…์„ ๋ณด์‹ค์ˆ˜๋„(?) ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ Optional์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ผ๊ณฐ๋‹˜์˜ ์Šค์œ„ํ”„ํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 3ํŒ, The Swift Programming Language์™€ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ธ€์ด๋ผ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ ์‹œ ๋Œ“๊ธ€๋กœ ๊ผญ ๋ง์”€ํ•ด์ฃผ์„ธ์š”! ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? Optional์„ ์“ฐ๋ ค๊ณ  Notion์„ ๋”ฑ ์—ด์—ˆ๋Š”๋ฐ ๋ฌธ๋“ ๋ถ€์ŠคํŠธ์บ ํ”„ ๋‹น์‹œ ์˜ต์…”๋„์„ '๊ถ๊ธˆ์ฆ'์ด๋ผ๊ณ  ๋ถ€๋ฅด๋˜ ์บ ํผ ๋ถ„์ด ์ƒ๊ฐ๋‚˜์„œ ํ˜ผ์ž ใ…‹ใ…‹ใ…‹ ๊ฑฐ๋ ธ๋„ค์š”. ๋ณ€์ˆ˜ ๋’ค์— ๋ถ™๋Š” ๋ฌผ์Œํ‘œ ๋•Œ๋ฌธ์— ๊ถ๊ธˆ์ฆ~ ๊ถ๊ธˆ์ฆ~ ํ•˜์…จ๋Š”๋ฐ ์ž˜ ์ง€๋‚ด์‹œ๋‚˜์š” ๋™๊ทœ๋‹˜ใ…‹ใ…‹ใ…‹(๋‚˜ ์‹ค๋ช… ์–ธ๊ธ‰ํ•ด๋„ ๋˜๋Š”๊ฑด๊ฐ€) Swift๋ฅผ ํ•˜๋ฉด์„œ ์˜ต์…”๋„์„ ๋ชจ๋ฅผ ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋ฉด์ ‘ ์ค€๋น„๋„ ๋  ๊ฒธ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•˜..

iOS 2021. 1. 12. 02:41
[iOS] URLSession์„ ์ด์šฉํ•ด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ JSON ๋ฐ์ดํ„ฐ ๋ฐ›์•„์˜ค๊ธฐ

์ด ๊ธ€์€ URLSession์„ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠน์ • Request ์ข…๋ฅ˜(GET, POST, DELETE ๋“ฑ)์— ์ข…์†๋˜์ง€ ์•Š์€ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„์„ ํ•ด ๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด Enocdeํ•˜๋Š” ๊ณผ์ • ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ Decode๋ฅผ ํ•˜๋Š” ๊ณผ์ •์ด ๋ฐฐ์ œ๋˜์–ด ์žˆ์„ํ…๋ฐ ์™œ ๋ฐฐ์ œ ์‹œ์ผฐ๋Š”์ง€๋Š” ์ž‘์„ฑํ•˜๋ฉฐ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ‰์ƒ์‹œ ์งœ๋˜ ์ฝ”๋“œ๋“ค์„ ์ •๋ฆฌํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฏ€๋กœ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฐœ๊ฒฌ์‹œ ๋Œ“๊ธ€๋กœ ๊ผญ ๋ง์”€ํ•ด์ฃผ์„ธ์š”! ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š”? URLSession URLSession ์ด ํ•œ ์ฃผ์ œ๋กœ๋„ ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ์–ด์„œ ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœ๋ฅผ ํ•ด๋ณด๋ฉด URLSession๊ณผ ๊ด€๋ จ ๋œ ํด๋ž˜์Šค๋“ค์€ ํŠน์ • URL์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋ฐ›๊ฑฐ๋‚˜,..

iOS 2021. 1. 6. 02:14
2020๋…„ ๊ฒฐ์‚ฐ๊ณผ ํšŒ๊ณ 

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

SUEATY/๊ธฐ๋ก 2021. 1. 5. 03:56