![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c4kHfA/btqT18Rs2KE/ruaBqGf32xQucGEd9MOkJK/img.jpg)
2021/01/19 - [Firebase] Firestore โ NoSQL Database๋ 2021/01/20 - [Firebase] Firestore โก Firestore์ ๊ตฌ์กฐ Cloud Firestore๋ NoSQL database์ ๋๋ค. (NoSQL์ด ๋ฌด์์ธ์ง ์์๋ ๋ถ์ ์์์ 10๋ถ๋๋ก ๋์ด๊ฐ์๊ฑฐ๋ ๋ค์ ๊ธ๋ก ๋์ด๊ฐ์๋ฉด ๋ฉ๋๋ค~) ๊ทธ๋์ ์ด๋ฒ ๊ธ์ NoSQL์ ๋ํด ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค. Firebase์ ๊ณต์ ์ ํ๋ธ์์ ์ ๊ณตํ๋ ์์์ ๋ฒ์ญํ๋ ํ์์ผ๋ก ์งํํด๋ณผ๊น ํฉ๋๋ค! ์ปคํผ ํ ์์ ์๋ฐฉ ํฐ ํ์ด ๋ฉ๋๋ค? ๊น๊น>< ํน์๋ ์ค๋ฅ ๋ฐ๊ฒฌ ์ ๋๊ธ๋ก ๊ผญ ๋ง์ํด์ฃผ์ธ์! ์์ํด๋ณผ๊น์? ๊ด๊ณํ DB๋ ํ ์ด๋ธ ํํ๋ก ๊ตฌ์ฑ์ด ๋์ด ์์ฃ ? ๊ฐ ํ ์ด๋ธ์ ํ(row)์ ์ ํด์ง ๊ท์น์ ๋ฐ๋ผ ์ฑ์๋๊ฐ๊ฒ ๋ฉ๋๋ค. ์..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/K1xxG/btqTNBlhxT0/C9ehuucOxwr07X7N7U21tk/img.png)
* ํด๋น ๊ธ์๋ ๊ฐ์ธ ๊ฒฌํด๊ฐ ๋ค์ด๊ฐ์์ผ๋ฏ๋ก ์ด๊ณณ์ ์ฐธ๊ณ ํ์๋ฉด ์กฐ๊ธ ๋ ๊น๋ํ ์ค๋ช ์ ๋ณด์ค์๋(?) ์์ต๋๋ค. ์ด ๊ธ์ SceneDelegate๊ณผ AppDelegate์ ์ญํ ์ ๋ํด ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ๊ณต์๋ฌธ์์ DW ๋ธ๋ก๊ทธ ๋ฐ ํ๋ก์ ํธ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ๋ ๊ธ์ด๋ผ ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค. ์ค๋ฅ ๋ฐ๊ฒฌ ์ ๋๊ธ๋ก ๊ผญ ๋ง์ํด์ฃผ์ธ์! ์์ํด๋ณผ๊น์? ์ ๊ฐ ์ฝ 5๊ฐ์ ์ ์ ์ฒ์ iOS๊ฐ๋ฐ์ ์์ํ์ ๋ XCode ๋ฒ์ ๋ 11 ์ด์์ด์๊ณ ๋น์ ๋ณดํธ์ ์ด์๋ iOS ๋ฒ์ ๋ 13์ด์์ด์์ต๋๋ค. ์ฆ ์ ๊ฐ ์ฒ์ ๋ฐฐ์ธ ๋๋ Create New Project๋ฅผ ํ๋ฉด AppDelegate.swift์ SceneDelegate์ด ์์์ต๋๋ค. ๊ทธ๋์ AppDelegate์ด App Life-Cycle๋ ๊ด๋ฆฌํ๋ ํธ๋ญ์ด ๋ด๋ฐฐํผ๋ ์์ (์ด..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cgUuRG/btq4db5QKkQ/KdV5WTwAA5vPei4t2EZsl0/img.png)
Optional๊ณผ ๊ด๋ จ๋ ๋ฉด์ ์ง๋ฌธ Optional์ด ๋ฌด์์ธ์ง ์ค๋ช ํ์์ค. Optional์ Swift์์ ์ด๋ป๊ฒ ๊ตฌํ๋์ด ์๋์ง ์ค๋ช ํ์์ค. Optional์ ๊ฐ ์ถ์ถ ๋ฐฉ์์ ๋ํด ์ค๋ช ํ์์ค. guard ๊ตฌ๋ฌธ์ ํ์ฉํ optional binding์ ๋ํด ์ค๋ช ํ์์ค. Optional Chaining์ด ๋ฌด์์ธ์ง ์ค๋ช ํ์์ค. Optional Optional์ ๊ธฐ๋ณธ public enum Optional: ExpressibleByNilLiteral { case none // abscence of value case some(Wrapped) // presence of a value, stored as `Wrapped` } Optional์ ๋ณ์๋ ์์ ๋ฑ์ ๊ฐ์ด ์์์ด ๋ณด์ฅ๋์ง ์์ ๋ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ผ๋ก Swi..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/JkwZc/btqSIZ89Gpz/cG12Bu53MrGJ5mLjN6HgV1/img.png)
์ด ๊ธ์ URLSession์ ์ด์ฉํ์ฌ ์๋ฒ์ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ํน์ Request ์ข ๋ฅ(GET, POST, DELETE ๋ฑ)์ ์ข ์๋์ง ์์ ํํ๋ก ๊ตฌํ์ ํด ๋ณผ ์์ ์ ๋๋ค. ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด Enocdeํ๋ ๊ณผ์ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ Decode๋ฅผ ํ๋ ๊ณผ์ ์ด ๋ฐฐ์ ๋์ด ์์ํ ๋ฐ ์ ๋ฐฐ์ ์์ผฐ๋์ง๋ ์์ฑํ๋ฉฐ ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ํ์์ ์ง๋ ์ฝ๋๋ค์ ์ ๋ฆฌํ๋ ํ์์ผ๋ก ์์ฑํ์์ผ๋ฏ๋ก ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค. ์ค๋ฅ ๋ฐ๊ฒฌ์ ๋๊ธ๋ก ๊ผญ ๋ง์ํด์ฃผ์ธ์! ์์ํด๋ณผ๊น์? URLSession URLSession ์ด ํ ์ฃผ์ ๋ก๋ ๋ฐฉ๋ํ ์์ ๊ธ์ ์ธ ์ ์์ด์ ๊น๊ฒ ๋ค์ด๊ฐ์ง๋ ์๊ฒ ์ต๋๋ค. ๊ฐ๋จํ ์๊ฐ๋ฅผ ํด๋ณด๋ฉด URLSession๊ณผ ๊ด๋ จ ๋ ํด๋์ค๋ค์ ํน์ URL์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ฐ๊ฑฐ๋,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cjXCaJ/btqRI8f40H1/YSzYpmF0MIYCIlwAbLLOA0/img.png)
๋ธ๋ก๊ทธ ์ ์ ํต๊ณ๋ฅผ ๋ณด๋ ๋ง์ ๋ถ๋ค์ด NAVER ์ปค๋ฅํธ์ฌ๋จ์์ ์งํ๋ ๋ถ์คํธ์บ ํ์ ๊ด์ฌ์ ์ฃผ์๊ณ ๊ณ์๋๋ผ๊ตฌ์! ๋ฉค๋ฒ์ญ ์ ๊ณผ ํ ํ์ต์คํ๋ฆฐํธ ๊ธฐ๊ฐ์ด ๋๋๊ณ ๋ฏธ๋์์ด๋ผ๋ ํ๋ซํผ์ ๊ธ์ ์จ ๋์๋๋ฐ ๋ ๋ง์ ๋ถ๋ค๊ป ๋์์ด ๋์์ผ๋ฉด ํ๋ ๋ง์์ ๋งํฌ ๋จ๊ฒจ๋๊ฒ ์ต๋๋ค. ํ์ฌ๋ ๋ถ์คํธ์บ ํ ๊ต์ก ๊ธฐ๊ด์ด ๋๋ ์ํฉ์ด๋ผ ์กฐ๋ง๊ฐ ๋ถ์คํธ์บ ํ ํ๊ธฐ๋ ์ธ ์์ ์ด๋ ๋ง์ด ์ฌ๋ํด์ฃผ์ญ์ฌ... ์ธ๋ฐ์ธ๋ฐ~ใ ใ sueaty.medium.com/๋ถ์คํธ์บ ํ-๋ฉค๋ฒ์ญ-ํ์ต-์คํ๋ฆฐํธ-ํ๊ณ -12f1ff4ef546 ๋ถ์คํธ์บ ํ — ๋ฉค๋ฒ์ญ ํ์ต ์คํ๋ฆฐํธ ํ๊ณ ๋ฉค๋ฒ์ญ ์คํ๋ฆฐํธ ๋ง์ง๋ง ๋ง์คํฐํด๋์ค๊ฐ ๋๋๊ณ ์ฌ๋ ๋์ ๊ฐ์ด ์ฑํ ์ฐฝ์๋ ‘์๊ณ ํ์ จ์ต๋๋ค’์ ‘๊ฐ์ฌํฉ๋๋ค’๊ฐ ์ฌ๋ผ์์ง๋ง ์ฌ๋ ๋์๋ ๋ค๋ฅด๊ฒ ์ค ์ฐฝ์ ๋๊ฐ๋ ์ธ์์ด ์ ์๋ค. ํ์์๋ sueaty.med..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/rUzBu/btqJ0pbMGYN/BTqyxPXpDq2pfOQPe4oPuK/img.png)
๋ด๊ฐ ๋ ์์ ์ฒ๋ฆฌํ์ด์ผ ํ๋ ์ผ : [ ์น - flask - iOS ] ์ด๋ ๊ฒ ์ฐ๊ฒฐ๋ ๊ตฌ์กฐ ๋ง๋ค๊ธฐ. ์ง๋ ๊ธ์ ์ผ์ ๋๋ ์น-flask๋ง ์ฐ๊ฒฐ ๋ ์ํ์๊ณ iOS ํ๋ก์ ํธ์๋ ์ฐ๊ฒฐํ์ง ๋ชปํ ์ํ์๋ค. ๊ทธ๋์ ์คํธ๋ ์ค๊ฐ ์์ฌ ์์๊ณ ํ๊ธฐ ์ซ์ด ์๊พธ๋ง ๋ฏธ๋ค๋ค. ์ธ์ ๊น์ง๋ ๋ฏธ๋ฃฐ ์ ์๋ค๋ ๊ฒ์ ์ ์๊ณ ์์๋ค. ๋๋ฌด ๋์ด์ก๋ ๊ฒ์ผ๊น? iOS๊ฐ ํ๋ค๋ฉด ๊ทธ๋ฅ ์น์ผ๋ก ํ์๋ ์๊ฒฌ์ด ๋์๋ค. iOS๊ฐ ๋์๋ ์น์ด ๋์๋ ๋งก๊ฒ ๋ ์ญํ ์ด ๋ฐ์ดํฐ ๋ถ์์ ๊ฒฐ๊ณผ๋ฅผ ํ๋กฏ์ผ๋ก ๊ทธ๋ ค์ฃผ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ ์ ์ฒด์์ ํฐ ๋น์ค์ ์ฐจ์งํ์ง ์๋๋ค. ๊ทธ๋์ ์ธ์ ๋ ์ง ๋์ฒด๊ฐ ๋ ์ ์์๋ ๊ฒ์ด๋ค. iOS๋ฅผ ํ๊ฒ ๋ค๊ณ ๋งํ ๋ด ์ ์ฅ์ด ๊ณค๋ํด์ก๋ค. ์๋์ง, iOS๋ฅผ ํ๊ฒ ๋ค๊ณ ๋งํ ๋ด ์ ์ฅ์ด ๊ณค๋ํด์ง ๊ฒ์ด ์๋๋ผ ๋ญ๊ฐ 'ํจ๋ฐฐ์'๊ฐ ๋ ๊ธฐ๋ถ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/tD8Z3/btqwvMSoHv3/gDvhYcnkJx8zNSGyLYmwl1/img.jpg)
Types Swift๋ ์๋ฃํ์ ์ฌํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค ์ฒ๋ผ ๊ธฐ๋ณธ์ ์ธ ์๋ฃํ๊ณผ collection type์ ์ ๊ณตํ๋ค. ๊ทธ ๋ฐ์๋ Objective-C์์๋ ์ ๊ณตํ์ง ์์ง๋ง python์ ๋ค๋ค๋ดค๋ค๋ฉด ์๋ tuple๊ณผ Swift์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๋๊ตฌ์ธ optional์ด ์๋ค. Swift์์ ๋ณผ ์ ์๋ ๊ธฐ๋ณธ์ ์ธ ์๋ฃํ์๋ ์ ์๋ฅผ ๋ํ๋ด๋ Int, ์ค์๋ฅผ ๋ํ๋ด๊ธฐ ์ํ Double / Float, ๋ ผ๋ฆฌ ์๋ฃํ Bool๊ณผ text data๋ฅผ ์ํ String์ด ์๋ค. Collection type์๋ Array, Set, Dictionary๊ฐ ์๊ณ ์ง์ ์ ์ธ๊ธํ tuple์ ํจ์์์ ์ฌ๋ฌ ๊ฐ์ returnํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฅ ๊ฐ๋ ฅํ ์๋ฃํ์ธ optional type์ ์ฌ์ฉํ๋ฉด ๊ฐ์ ์ ๋ฌด๋ฅผ ํํํ ..
- Total
- Today
- Yesterday
- ์ปด๊ณต์กธ์
- ์ผ์ฑ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- ํ๋ก๊ทธ๋๋จธ์ค
- OS
- ๋ณด์
- ์ด์์ฒด์
- RxSwift
- ์ฝํ
- ๋ถ์คํธ์บ ํ2020
- ์ปค๋ฅํธ์ฌ๋จ
- ์ปดํจํฐ๊ณตํ
- ๋ถ์คํธ์บ ํ
- ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- ์ํํธ์จ์ด์ญ๋์ํ
- ๋ฐ์ดํฐ๋ถ์
- ์กธ์ ์ํ
- ์ผ์ฑ
- ๋ถ์บ
- nosql
- firebase
- ์ฝ๋ฉํ ์คํธ
- ๊ฐ๋ฐ์์ธํด
- ์ธํด
- ์๊ณ ๋ฆฌ์ฆ
- TableView
- SWIFT
- swacademy
- C++
- ์ปด๊ณผ์กธ์
- ios
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |