์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Encodable
- components
- nodejs
- SWiFT
- mongoose
- ExpressJS
- String.Index
- ios
- ์ง๋ฒ๋ณํ
- ์ฑ๋ง๋ค๊ธฐ
- DispatchQueue
- RxSwift
- Decodable
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- Core Data
- map
- Figma
- Firestore CRUD
- CRUD
- ์ฑ๋์์ธ
- Filter
- AVAudioPlayer
- UIRefreshController
- Codable
- Reduce
- Firestore
- Cloud Firestore
- Mac
- MongoDB
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (67)
Focus On Develop ๐ค๐ค
์ค๋์ App Store๋ก ์ฑ์ ๋ฐฐํฌํ๋ ๊ณผ์ ์ Fastlane์ ํตํด ์๋ํ ํ๋๊ฑธ ํด๋ณด๊ณ , ๊ทธ ๊ณผ์ ์์ ๋ง๋ ์๋ฌ๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค!! ์ง๊ธ ์ ๊ฐ ๊ฐ๋ฐํ๋ ์๋น์ค๋ ํ๊ท ์ ์ผ๋ก ๋ณด๋ฉด ํ๋ฌ์ 1~2ํ ์ ๊ท ๋ฒ์ ์ ์ถ์ ํ๋ ๊ฒ ๊ฐ์์. ์ฌ์ค ๋ฐฐํฌํ๋ ๋น๋๋ ๊ทธ๋ ๊ฒ ๋ง์ง ์๊ณ , ๊ทธ ๊ณผ์ ์ด ๋ง์ด ๋ณต์กํ ๊ฒ(?)๋ ์๋๋ผ์.. ๋ฑํ ๋ถํธํ๊ณ ๊ท์ฐฎ๋ค๊ณ ์๊ฐ์ ์ํ๋ ๊ฒ ๊ฐ์์! ๊ทธ๋ฐ๋ฐ.. ์ต๊ทผ์ ๊ฐ์๊ธฐ ์๋ํ๋ฅผ ํด์ผ๊ฒ ๋ค, ๋ผ๊ณ ์๊ฐ์ด ๋ฌธ๋ ๋ค์๋๋ฐ์! ์ฑ์คํ ์ด์ ์ฑ์ ๋ฐฐํฌํ๊ณ , ์ ๋ก๋ ์๋ฃ๋์๋ค, ํ ์คํธ ํ๋ผ์ดํธ ๋ฐฐํฌ๋์๋ค, ๋ฑ๋ฑ ํ ์คํฐ ์กฐ์ง์๊ฒ ๊ณต์ ๋ฅผ ํด์ผํ์ฃ . ๊ทผ๋ฐ ์ฑ์คํ ์ด์ ์ ๋ก๋ํ๊ณ , ๊ทธ ํ์ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์๊ฐ์ด ์ ํด์ ธ์์ง ์๊ณ ๊ฐ๋ณ์ ์ด์ฃ ~? ๊ทธ๋ผ ๊ทธ๋๋ง๋ค ๋ชจ๋ํฐ๋ง ํ๋ฉด์ ์ฒ๋ฆฌ๋๋ ๊ณผ..
์ด์ ํฌ์คํ ์์ RxSwift ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๊ณผ ์ฌ์ฉ๋ฒ์ ์์๋ดค๋๋ฐ์~!! ๊ทผ๋ฐ ํ๊ฐ์ง ์๋ฌธ์ ์ด ์๊ธฐ์ฃ ! Observable์ ๊ตฌ๋ ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ฐ๊ธฐ๋ ํ๋๋ฐ, ๋ฐ๋๋ก Observable์ ๋ฐ์ดํฐ ๋ณํ๋ ์ด๋ป๊ฒ ์ค ์ ์์๊น์? ๊ทธ๋์ผ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๊ตฌ๋ ํด์ User Interaction์ ๋ฐ๋ผ ๋ญ๊ฐ UI์ ๋ณํ๋ฅผ ์คํ ๋ฐ์! ์ฌ๊ธฐ์ ๋์จ๊ฒ ๋ฐ๋ก Subject ์ ๋๋ค. ํ๋ฒ Subject์ ๋ํด ์์๋ณผ๊น์~~~ ๐ reactivex.io/documentation/subject.html ReactiveX - Subject If you have a Subject and you want to pass it along to some other agent without exposing its S..
์ง๋ ํฌ์คํ ์์ RxSwift์ ์ ๋ฌธํด๋ดค๋๋ฐ์~!! ๊ทธ๋ผ ์ด RxSwift๋ ์์จ์ผํ ๊น์~? ์ฅ๋จ์ ์ ํ๋ฒ ํํค์ณ๋ณผ๊ฒ์!! RxSwift์ ์ฅ์ 1. ๋ฐ์ํ ํจ๋ฌ๋ค์์ด ์ ๊ณตํ๋ ๋ช ํํจ, ๋น๋๊ธฐ๋ฅผ ๋๊ธฐํ ์ฝ๋์ฒ๋ผ ์์ฑ์ด ๊ฐ๋ฅ 2. ์ผ๊ด์ฑ์ด ์๋ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ํ๋์ ๋น๋๊ธฐ ์ฝ๋๋ก ๊ฐ๋ฐ์ด ๊ฐ๋ฅ - ์ด๋์๋ DispatchQueue, ์ด๋์๋ OperationQueue..... 3. Rx๋ก ์ผ๊ด๋ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ํ์ฅ์ด ๋ถ๊ฐ๋ฅํ ์ํคํ ์ฒ ํจ๋์ ํด๊ฒฐํ ์ ์์ - ์๋ก ๋ค๋ฅด๊ฒ ๊ตฌํํ ๋ก์ง์ ์กฐํฉํ๊ธฐ ์ฝ๊ณ , ํ์ฅ์ด ์ด๋ ค์ด ๋ถ๋ถ์ ํด๊ฒฐ ๊ฐ๋ฅ 4. Thread ์ฒ๋ฆฌ๊ฐ ์ฌ์์ง - Callback ์ง์ฅ์์์ ํ์ถ - UI ์ด๋ฒคํธ, ๋คํธ์ํฌ ์ฒ๋ฆฌ ๋ฑ๋ฑ ๋ฐ์ดํฐ ๊ฐฑ์ ํ์ ๋์ ์ฒ๋ฆฌ๊ฐ ์ฌ์ 5. ์ฝ๋๊ฐ ๊น๋ํด์ง 6. ๋ค์ํ..
์๊ฐ์ด ๊ฐ์๋ก ์ ์ RxSwift๋ ๊ผญ ์์์ผ ํ๋ ํธ๋ ๋์ฃ ~~?ใ ใ Apple์์๋ Rx+MVVM Base์ธ SwiftUI๋ฅผ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ ์ ์งํฅํ๋ ๊ฒ ๊ฐ๊ณ ์ ใ ใ (๊ฐ์ธ์ ์ธ ์๊ฐใ ) ์ ๋ฌด๋ฅผ ํ๋ฉด์๋ ์ ํด๋ณผ ๊ธฐํ๊ฐ ์์ด์, ํผ์ ๋ฐ๋ก๋ผ๋ ํ๋ฒ ๊ณต๋ถํ๋ฉด์ "์ ์ด๋ ๊ฐ๋ ์ ๋๋ ์๊ณ ๊ธฐ๋ณธ์ ๋๋ ์ฌ์ฉํ ์ ์์ด์ผ๊ฒ ๋ค" ํด์ ์์ํด๋ณด๋ ค๊ณ ํด์!! ๐ ๊ทธ๋งํผ ์์ด๋ณด๋ฅผ ์ํ ์ ๋ฌธ์ฉ ํฌ์คํ ์ด ๋๊ฒ ์ง๋ง, ํต์ฌ ๊ฐ๋ ์ด๋ ์๋ฆฌ๋ ์์ ์ ํจ๊ป ์์ธํ ๋ค๋ค๋ณผ ์์ ์ด๋ผ ์กฐ๊ธ์ ๊ธด ํฌ์คํ ์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค!! ๐ญ ๊ทธ์น๋ง! ์ด ํฌ์คํ ์ ์ฒ์ฒํ๋ผ๋ ์์ฃผํ์ ๋ค๋ฉด RxSwift์ ๋ํ ๊ฐ๋ ์ด๋ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์ตํ์ค ์ ์์๊ฑฐ์์ ๐ง๐ป RxSwift์ ๋ํด์ ์์๋ณด๊ธฐ ์์ํ๊ธฐ ์ ์, ๊ธฐ๋ณธ์ ์ธ Swift์ ๋ํ ๋ด์ฉ์ ์๊ณ ์๋ค๊ณ ..
์ด๋ฒ ํฌ์คํ ์์๋ ๋งค์ฐ ๊ธฐ๋ณธ์ด๋ฉด์๋, ๋งค์ฐ ์ค์ํ Class์ Struct์ ๋ํด์ ์ข ์ดํด๋ณด๋ ค๊ณ ํด์! ๋์๋ณด๋ค ๋ณด๋, ์ด๋ฐ Swift์ ๋ํด ๊ธฐ๋ณธ์ด์ง๋ง ๋งค์ฐ ์ค์ํ ๋ด์ฉ๋ค์ ๋ฐ๋ก ๋ค๋ฃจ์ง ์์๋ ๊ฒ ๊ฐ์์ ์ข ๋ค๋ฃจ๋ ค๊ณ ์!! ๐ง๐ป ๋จผ์ Struct์ Class๋ ์ฌ์ฉ์๊ฐ ์์๋ก ๋ง๋ "๋ฐ์ดํฐ ํ์ "์ด์์. ๋ฐ์ดํฐ๋ฅผ ํน์ ์ฉ๋์ ๋ง๊ฒ ๋ฌถ์ด ํํํ๊ณ ์ ํ ๋, ๋ด๋ถ์์ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ์ ์ํด์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ํ์ ์ด ๋ ์ ์์ด์. ๋จผ์ ๊ฐ๋ตํ๊ฒ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ ์ ์์ฝํด๋ณด๊ณ , ์ค์ํ ์ฐจ์ด์ ์ ๋ํด์๋ ์ข ๋ ์ดํด๋ณผ๊ฒ์! ๊ณตํต์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ํ๋กํผํฐ ์ ์ ๊ฐ๋ฅ ๊ธฐ๋ฅ ์คํ์ ์ํ ๋ฉ์๋ ์ ์ ๊ฐ๋ฅ initializer(์์ฑ์) ์ ์ ๊ฐ๋ฅ extension ์ ํตํ ํ์ฅ ๊ฐ๋ฅ protocol ์ฑํ ๊ฐ๋ฅ..
์ค๋๋ง์ ํฌ์คํ ์ ํ๋ ๊ฒ ๊ฐ๋ค์, ์ด๋ฐ ์ ๋ฐ ์ ๊ฒฝ์ธ ์ผ๋ค์ด ๋ง์๋ ๊ฒ ๊ฐ์์ ๐ ๋ฐ๋น ๋ ํ๋ฃจ์ ๊ฐ๋จํ ํฌ์คํ ์ด๋ผ๋ ํ๋๋ ํ์๊ณ ๋ชฉํ๋ฅผ ์ธ์ ๋๋ฐ, ์ฝ์ง ์๋๊ตฐ์ ๐ญ ๊ฑฐ๋์ ๋ฏธํ๊ณ ์ค๋์ ์ฑ๊ธํค ํจํด์ ๋ํด์ ์์๋ณผ๊ฒ์!! Design Pattern ์ฑ๊ธํค ํจํด์ Design Pattern ์ค ์์ฑ๊ณผ ๊ด๋ จ๋ ๋์์ธ ํจํด์ด์์. ๊ทธ๋ผ.. Design Pattern์ ๋ญ๊น์? ๊ฐ๋ฐ์์ ๋์์ธํจํด์ด๋, ๋ค์ํ ๊ฐ๋ฐํ๊ฒฝ์์๋ ๋น์ทํ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ ์ ์๋๋ฐ, ์ด ๋น์ทํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋ ์ ํํ(?)๋ ํ ํ๋ฆฟ์ด๋ ๊ฐ๋ฐํจํด ๊ฐ์, ๋ง์น "ํด๊ฒฐ์ฑ " ๊ฐ์๊ฑฐ์์. ์ด๋ฐ ์ด๋ค ํจํด์ ์ ์ฉํ๋ฉด, ๊ทธ๋งํผ "์ ํํ"๋ ํด๊ฒฐ์ฑ ๊ฐ์ ๋งฅ๋ฝ์ด๋ ์ฝ๋์ ๊ฐ๋ ์ฑ, ํจ์จ์ฑ, ๋๋ฒ๊น , ํ์ ๋ฑ์ด ์ฌ์์ง๊ฒ ์ฃ ? Swift์์ ๊ฐ์ฅ ๋ณดํธ์ ์ผ๋ก ..
๋จผ์ ๋ง์๋๋ฆฌ๊ณ ์ถ์ ๊ฑด, ์ด ํฌ์คํ ์ Nodejs์ Expressjs์ ์ฅ,๋จ์ ๋ฑ๋ฑ ๋งค์ฐ ์์ธํ๊ฒ ๋ค๋ฃจ์ง๋ ์์๊ฑฐ์์. ๋ค๋ง, nodejs๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ ์ ์์์ ์! ์ด๋ฐ๊ฑฐ๊ตฌ๋! ํ๋ ์ ๋๋ง ๋ค๋ฃฐ ์์ ์ ๋๋ค. node.js ์ผ๋ฐ์ ์ผ๋ก javaScript๋ ์น๋ธ๋ผ์ฐ์ ๋ ์น์ฌ์ดํธ์์๋ง ์คํ ๊ฐ๋ฅํ์ฃ ? noejs๋ javaScript๋ฅผ ์น๋ธ๋ผ์ฐ์ , ์น์ฌ์ดํธ ๋ฟ๋ง ์๋๋ผ ์ธ๋ถ์์๋ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ cross-platform ์์ง์ด์์. ๋ง์ ์ ๋ฌธ์๋ค์ด nodejs๋ฅผ ์น์๋ฒ๋ผ๊ณ ์๊ฐํ๋๋ฐ, nodejs๊ฐ http์๋ฒ๋ฅผ ๋ด์ฅํ๊ณ ์์ด์ ์๋ฒ๋ก ๋ง์ด ์ฌ์ฉํ์ง๋ง, nodejs ์์ฒด๋ก๋ ์น์๋ฒ๊ฐ ์๋๋๋ค! ์..? ์๋ฒ๋ก ์ฌ์ฉํ๋๋ฐ ์๋ฒ๊ฐ ์๋๋ผ๊ณ ..? ๐ nodejs๋ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ ํ๋์..
๋จผ์ ๋ง์๋๋ฆฌ๊ณ ์ถ์ ๊ฑด, ์ด ํฌ์คํ ์ Mongo DB์ Mongoose์ ์ฅ,๋จ์ ๋ฑ๋ฑ ๋งค์ฐ ์์ธํ๊ฒ ๋ค๋ฃจ์ง๋ ์์๊ฑฐ์์. ๋ค๋ง, nodejs๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ ์ ์์์ ์! ์ด๋ฐ๊ฑฐ๊ตฌ๋! ํ๋ ์ ๋๋ง ๋ค๋ฃฐ ์์ ์ ๋๋ค. mongoDB mongo DB๋ ๋ง ๊ทธ๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๊ณ , NoSQL์ ์ํด์! ์~ NoSQL์ด ๋ญ์ง ๋ชฐ๋ผ ~~ ๐๐ NoSQL์ Non SQL๋ก, RDBMS(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ) ๊ณผ๋ ์ฝ~๊ฐ ๋ค๋ฅด๊ฒ ๋ ์ ํ์ ์ธ ๋ชจ๋ธ์ ์ด์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ด์์! ์ฃผ๋ก nodejs๋ก ์๋ฒ๋ฅผ ๊ตฌ์ฑํ ๋, javaScript์ธ์ด๋ก JSON ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ํธ์ถํ๊ณ ๋ฐ๊ณ ํ ์ ์๋๊ฒ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค์ ํ๋์ฃ . ์ฌ์ค ์ ์์๋ฟ์ผ์์ฃ ~? ์ ๋ ๊ทธ๋ฌ์ด์. ์ฐ๋ฆฌ๊ฐ ๊ทธ๋๋ RDBMS์ ์ข ๋..