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 โช] ๊ฐ ๋ด๊ฐ ์ ์ผ ์ข์ํ๋ ์์์ด๋ค. ์ฐฝ๋ฒ ๋ถ์ํ๋๊ฒ ๋์ฅ๋ ์ฃผ์๋ ๋ถ) ์์์ ํ์ด๋ดค๋๋ฐ ์์์ด ๋ฌ๋ค. ์์์ด ์๊ธด๊ฑด ๋น์ฐํ๊ณ , ์น๊ตฌ๊ฐ ๋ฌด์จ ์๊ฐ..
AppDelegate / SceneDelegate๊ณผ ๊ด๋ จ๋ ๋ฉด์ ์ง๋ฌธ SceneDelegate์ ๋ํด ์ค๋ช ํ์์ค. ์ถ์ฒ ์ํ ๋ณํ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์์ ์ฒ๋ฆฌํ๊ธฐ ์ํ AppDelegate methods๋ฅผ ์ค๋ช ํ์์ค. ์ถ์ฒ ์ํ ๋ณํ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์์ iOS13 ์ดํ๋ถํฐ SceneDelegate์ ์ญํ ์ด ๋์์ iOS 12 ์ดํ ๋ฒ์ ์ AppDelegate Application์ 1๊ฐ์ process ์ 1๊ฐ์ user interface ์ธ์คํด์ค ๋ฅผ ๊ฐ์ก๋ค. AppDelegate์ 2๊ฐ์ง ์ญํ ์ ํ๋๋ฐ, application์๊ฒ process level์ ์ด๋ฒคํธ ๋ฐ์์ ์๋ ค์ฃผ์๊ณ UI์ ์ํ๋ณํ๋ฅผ ์๋ ค์ฃผ์๋ค. process level์ ์ด๋ฒคํธ์ ์์๋ก๋ application์ด launch ๋๊ณ ์๋์ง ๋๋..
* ํด๋น ๊ธ์๋ ๊ฐ์ธ ๊ฒฌํด๊ฐ ๋ค์ด๊ฐ์์ผ๋ฏ๋ก ์ด๊ณณ์ ์ฐธ๊ณ ํ์๋ฉด ์กฐ๊ธ ๋ ๊น๋ํ ์ค๋ช ์ ๋ณด์ค์๋(?) ์์ต๋๋ค. ์ด ๊ธ์ SceneDelegate๊ณผ AppDelegate์ ์ญํ ์ ๋ํด ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ๊ณต์๋ฌธ์์ DW ๋ธ๋ก๊ทธ ๋ฐ ํ๋ก์ ํธ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ๋ ๊ธ์ด๋ผ ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค. ์ค๋ฅ ๋ฐ๊ฒฌ ์ ๋๊ธ๋ก ๊ผญ ๋ง์ํด์ฃผ์ธ์! ์์ํด๋ณผ๊น์? ์ ๊ฐ ์ฝ 5๊ฐ์ ์ ์ ์ฒ์ iOS๊ฐ๋ฐ์ ์์ํ์ ๋ XCode ๋ฒ์ ๋ 11 ์ด์์ด์๊ณ ๋น์ ๋ณดํธ์ ์ด์๋ iOS ๋ฒ์ ๋ 13์ด์์ด์์ต๋๋ค. ์ฆ ์ ๊ฐ ์ฒ์ ๋ฐฐ์ธ ๋๋ Create New Project๋ฅผ ํ๋ฉด AppDelegate.swift์ SceneDelegate์ด ์์์ต๋๋ค. ๊ทธ๋์ AppDelegate์ด App Life-Cycle๋ ๊ด๋ฆฌํ๋ ํธ๋ญ์ด ๋ด๋ฐฐํผ๋ ์์ (์ด..
์ด ๊ธ์ 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 ..
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..
* ํด๋น ๊ธ์๋ ๊ฐ์ธ ๊ฒฌํด๊ฐ ๋ค์ด๊ฐ์์ผ๋ฏ๋ก ์ด๊ณณ์ ์ฐธ๊ณ ํ์๋ฉด ์กฐ๊ธ ๋ ๊น๋ํ ์ค๋ช ์ ๋ณด์ค์๋(?) ์์ต๋๋ค. ์ด ๊ธ์ Optional์ ๋ํด ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ์ผ๊ณฐ๋์ ์ค์ํํธ ํ๋ก๊ทธ๋๋ฐ 3ํ, The Swift Programming Language์ ํ๋ก์ ํธ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ๋ ๊ธ์ด๋ผ ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค. ์ค๋ฅ ๋ฐ๊ฒฌ ์ ๋๊ธ๋ก ๊ผญ ๋ง์ํด์ฃผ์ธ์! ์์ํด๋ณผ๊น์? Optional์ ์ฐ๋ ค๊ณ Notion์ ๋ฑ ์ด์๋๋ฐ ๋ฌธ๋ ๋ถ์คํธ์บ ํ ๋น์ ์ต์ ๋์ '๊ถ๊ธ์ฆ'์ด๋ผ๊ณ ๋ถ๋ฅด๋ ์บ ํผ ๋ถ์ด ์๊ฐ๋์ ํผ์ ใ ใ ใ ๊ฑฐ๋ ธ๋ค์. ๋ณ์ ๋ค์ ๋ถ๋ ๋ฌผ์ํ ๋๋ฌธ์ ๊ถ๊ธ์ฆ~ ๊ถ๊ธ์ฆ~ ํ์ จ๋๋ฐ ์ ์ง๋ด์๋์ ๋๊ท๋ใ ใ ใ (๋ ์ค๋ช ์ธ๊ธํด๋ ๋๋๊ฑด๊ฐ) Swift๋ฅผ ํ๋ฉด์ ์ต์ ๋์ ๋ชจ๋ฅผ ์๋ ์์ง๋ง ๋ฉด์ ์ค๋น๋ ๋ ๊ฒธ ๊น๋ํ๊ฒ ์ ๋ฆฌํ..
์ด ๊ธ์ URLSession์ ์ด์ฉํ์ฌ ์๋ฒ์ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ํน์ Request ์ข ๋ฅ(GET, POST, DELETE ๋ฑ)์ ์ข ์๋์ง ์์ ํํ๋ก ๊ตฌํ์ ํด ๋ณผ ์์ ์ ๋๋ค. ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ํด Enocdeํ๋ ๊ณผ์ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ Decode๋ฅผ ํ๋ ๊ณผ์ ์ด ๋ฐฐ์ ๋์ด ์์ํ ๋ฐ ์ ๋ฐฐ์ ์์ผฐ๋์ง๋ ์์ฑํ๋ฉฐ ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ํ์์ ์ง๋ ์ฝ๋๋ค์ ์ ๋ฆฌํ๋ ํ์์ผ๋ก ์์ฑํ์์ผ๋ฏ๋ก ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค. ์ค๋ฅ ๋ฐ๊ฒฌ์ ๋๊ธ๋ก ๊ผญ ๋ง์ํด์ฃผ์ธ์! ์์ํด๋ณผ๊น์? URLSession URLSession ์ด ํ ์ฃผ์ ๋ก๋ ๋ฐฉ๋ํ ์์ ๊ธ์ ์ธ ์ ์์ด์ ๊น๊ฒ ๋ค์ด๊ฐ์ง๋ ์๊ฒ ์ต๋๋ค. ๊ฐ๋จํ ์๊ฐ๋ฅผ ํด๋ณด๋ฉด URLSession๊ณผ ๊ด๋ จ ๋ ํด๋์ค๋ค์ ํน์ URL์์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด๋ฐ๊ฑฐ๋,..
์ฝ๋ก๋๋ก ์ธํด ์ฌ๋ผ์ง 2020๋ ์ด๋ผ๊ณ ๋ค ๋งํ์ง๋ง ์ ํํ 2020๋ ์ ์์ด์ ธ์๋ ์๋ , ์์คํ ํ ํด์์ต๋๋ค. ๋ค๋ฅธ ์น๊ตฌ๊ฐ ํ ํด๋ฅผ ํ๊ณ ํ ๊ธ์ ์ฝ์ด๋ณด์๋๋ฐ ์ฌ์ง์ฒฉ์์ ์ ๋ณ๋ก ๊บผ๋ด์ ๋์ด์ผ๋ณด๋๊ฒ ์ข์๋ณด์ด๋๋ผ๊ตฌ์. ๊ทธ๋์ ๊ทธ๋ ๊ฒ ํด๋ณด๋ ค๊ณ ํฉ๋๋คใ 1์ ๋ค์ ์ฑ๊ฐํฌ๋ฅด๋ก ๊ทธ๋ค์ง ์์๊ฒ ์ฐํ ์ฌ์ง์ด ์๋๋ผ ์ฌ๋ฆฌ๊ณ ์ถ์ง ์์ง๋ง ์๋ง ์ ์ฌ์ง์ฒฉ์์ ์ ๋ ์ง์ธ ์ผ์ด ์๋ ์ฌ์ง์ด๊ธฐ๋ ํฉ๋๋ค. ์ ๊ฐ ์ฑ๊ฐํฌ๋ฅด ๋์๊ณต๋์ ์๋ ํ ํ๊ธฐ๋ง ์๋ ๊ฒ์ด์๋๋ฐ ํ๊ต๊ฐ ๋๋ฌด ์ข์์ ํ ํ๊ธฐ๋ฅผ ๋ ์ฐ์ฅํด๋ฒ๋ ธ์ฃ . (๊ทธ๋ฅ ์ฐ๋ฆฌ ํ๊ต๋ก ๋์๊ฐ๊ธฐ ์ซ์์์๋...?) ๊ทธ๋์ ํ๊ตญ์ ์ ์ ๋ค์ด๊ฐ๋ค๊ฐ ๋ค์ ์ฑ๊ฐํฌ๋ฅด ์ ๊ตญํ ๋ ์น๊ตฌ์ ๋จน์ ๋ผ๋ฉ์ ๋๋คใ ใ ์ฑ๊ฐํฌ๋ฅด์ ์์ผ๋ฉด์ ์์ฌ์ด๊ฒ ์๋ค๋ฉด ๊ทธ ๋น์์ ์ด์ฌํ ๊ธ์ ์ฐ์ง ์์๋ ๊ฒ์ธ๋ฐ ๊ฐ ๋๋ ๋ค์ง์ ..
Input // ๋ฌธ์์ธ๊ฐ? extension String { var isAlphabet: Bool { return range(of: "[^a-zA-Z]", options: .regularExpression) == nil } } // ๊ณต๋ฐฑ์ผ๋ก input arr ๋ง๋ค๊ธฐ let input = readLine()!.components(seperatedBy: " ") // ๋ค์ํ delimeter ์ฌ์ฉ let expression = "100-200*300-500+20" let arr = expression.components(separatedBy: CharacterSet(charactersIn: "*+-")) Loop // stride for i in stride(from: 5, to: 0, by: -1) { p..
- Total
- Today
- Yesterday
- RxSwift
- ์ด์์ฒด์
- ๋ณด์
- ์๊ณ ๋ฆฌ์ฆ
- ์ฝ๋ฉํ ์คํธ
- swacademy
- ํ๋ก๊ทธ๋๋จธ์ค
- ์กธ์ ์ํ
- ์ปค๋ฅํธ์ฌ๋จ
- ์ผ์ฑ
- ๋ถ์คํธ์บ ํ
- SWIFT
- firebase
- ์ฝํ
- ์ปดํจํฐ๊ณตํ
- ์ปด๊ณต์กธ์
- ์ํํธ์จ์ด์ญ๋์ํ
- ios
- OS
- nosql
- ์ธํด
- ์ผ์ฑ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- ๋ฐ์ดํฐ๋ถ์
- ์ปด๊ณผ์กธ์
- C++
- ๋ถ์บ
- ๋ถ์คํธ์บ ํ2020
- TableView
- ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- ๊ฐ๋ฐ์์ธํด
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |