์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Firestore
- CRUD
- ExpressJS
- Mac
- ์ฑ๋์์ธ
- Cloud Firestore
- nodejs
- mongoose
- Encodable
- ios
- Figma
- Codable
- Decodable
- ์ง๋ฒ๋ณํ
- RxSwift
- SWiFT
- DispatchQueue
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๊ณ ๋ฆฌ์ฆ
- components
- Firestore CRUD
- String.Index
- AVAudioPlayer
- Core Data
- map
- ์ฑ๋ง๋ค๊ธฐ
- Filter
- MongoDB
- UIRefreshController
- Reduce
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (67)
Focus On Develop ๐ค๐ค
์๋ ํ์ธ์~! ๐ ์ต๊ทผ์ ReactNative์ ์๋๋ก์ด๋๊น์ง ๊ฐ๋ฐํด๋ณผ ์ ์๋ ๊ธฐํ๊ฐ ์๊ฒผ์ด์! ๊ทธ๋ฐ๋ฐ ์๋ฌด๋๋ ์ ๋ iOS๊ฐ๋ฐ์๋ค๋ณด๋ ๋ค๋ฅธ ํ๋ซํผ์์ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ๋ง์ ๊ณต๋ถ๊ฐ ํ์ํ๊ฒ ์ฃ ใ .ใ ๊ทธ๋๋ ์ด๋ ๊ฒ ๋ค์ํ ํ๋ซํผ์ ๋ํด ๊ณต๋ถํด๋ณผ ์ ์๋ ๊ธฐํ๊ฐ ์๊ฒจ์ ์ด์ฌํ ํด๋ณด๋ ค๊ณ ์!! ์นดํ ๊ณ ๋ฆฌ ์ด๋ฆ์.. ๋ชจ๋๋์ ์ด๋ผ๊ณ ์ง์ด๋ดค๋๋ฐ์! ๋ชจ๋ฐ์ผ ํ๋ซํผ ๋ํ๋ฅผ ์ํ ๋๊ณ ์์ ์ง์ ์ด๋ผ๋ ์๋ฏธ์์ง ใ ใ ใ ใ ๐ค ๋ธ๋ก๊ทธ๋ ์์ผ๋ก๋ ์ฌ์ ํ iOS์ ๊ดํ ํฌ์คํ ์ด ๋ฉ์ธ์ด ๋๊ฒ ์ง๋ง, ์๋๋ก์ด๋๋ ReactNative์ ๊ด๋ จ๋ ํฌ์คํ ๋ ์์ฃผ ๊ธฐ์ด์ ์ธ ๊ฒ๋ถํฐ ์ข ์ข ์๊ธธ ๊ฒ ๊ฐ์์! ์๋ฌดํผ ์ฒ์์ ๊ฐ๋ฐํ๊ฒฝ์ ์ธํ ํ๊ณ , Package Dependency๋ฅผ ๊ด๋ฆฌํ๋ ํ๊ฒฝ์ ์ธํ ํด์ผ ํ๋๋ฐ์! ์ ๊ฐ ๊ฐ๋ฐํ๋ ํ๊ฒฝ์ yarn..
์๋ ํ์ธ์~~~! ๐ ์ด๋ฒ์ ๊ณต๋ถํ๋ฉด์ ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ํด๋ณผ๊ฑด๋ฐ cocoa pods์ผ๋ก dependency๋ฅผ ๊ด๋ฆฌํ๋ ค๊ณ ํด์! Xcode 14๋ฅผ ํตํด์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ๊ตฌ์ฑํ๋ ค๊ณ ํ์ด์. ๊ทธ๋ฐ๋ฐ ํ์์ ๊ฐ์ด ํ๋ก์ ํธ ๊ฒฝ๋ก์์ pod init์ ํ์ง๋ง.. ์๋ฌ๊ฐ ๋ฌ์ด์! ์ด์ฉ๊ณ ์ ์ฉ๊ณ ... [Xcodeproj] Unknown object version (56). (RuntimeError) ์ด์ฉ๊ณ ์ ์ฉ๊ณ ... ์... ์์ธ์ ์ ํํ ์ฐพ์๋ด์ง ๋ชปํ์ด์! ใ ใ ์ถ์ธกํ๋ ๋ฐ๋ก๋ ์๋ฌ ๋ด์ฉ ๊ทธ๋๋ก "cocoa pods์์ Xcod 14์ ๋ํด ์์ง ์๋ฒฝํ ๋์์ด ๋์ง ์์๋ค" ๋ผ๊ณ ์๊ฐํ๊ณ ์์ด์! ํน์ ์ด ์๋ฌ์ ์์ธ์ ์์๊ฑฐ๋ ๋ ์ข์ ํด๊ฒฐ์ฑ ์ด ์์ผ์ ๋ถ์ ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ๐ ์๋ฌดํผ ์ ์ ..
์๋ ํ์ธ์~~~๐ ์ง์ง ์ง์ง ์ค๋๋ง์ ๊ธ์ ์ฐ๋ ๊ฒ ๊ฐ์์ ใ ใ ใ ใ ์ค๋๋ง์ ๊ธ์ ์ฐ๋ ค๋ ๋ฌด์จ ๋ด์ฉ์ผ๋ก ์ด๋ป๊ฒ ์จ์ผํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ด์!! ๊ณต๋ถํ๊ณ ๊ฐ๋ฐํด์ค๋ฉด์ ๋์ค์ ์ด๋ฐ ๋ด์ฉ๋ ์จ์ผ๊ฒ ๋ค~ ์ ๋ฆฌํด์ผ๊ฒ ๋ค~ ํ๋๋ฐ ์์ด๋ค๊ฐ ์ํ์ก์ด์..... ๊ทธ๋๋ ๋ค์ ๋ง์์ ์ก๊ณ ๊ธฐ์ต์ ๋๋ฌ์ด ์ฐจ๊ทผ์ฐจ๊ทผ ์ฐ๋ ค๊ณ ํด๋ณผ๊ฑฐ์์! ๊ทธ๋ฐ ์๋ฏธ์์ ๊ฐ๋จํ ๋ด์ฉ๋ถํฐ ์ ๋ฆฌํด๋ณด๊ธฐ๋ก ํ์ด์! ์ผ๋ฐ์ ์ผ๋ก ์ฑ์ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ ๋ฐ, ์๋ฒ์ ์ ์ฅ์ ํ ์๋, ๋ก์ปฌ์ ์ ์ฅ์ ํ ์๋ ์์ฃ ? ๋ก์ปฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ค์ํ ๋ฐฉ๋ฒ ์ค์์๋ Realm์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๊ณ ์! (TMI) Realm์ ๋ ๋ฆ, ๋ ์ด๋ป๊ฒ ์ฝ์ด์ผ ํ๋์ง ํท๊ฐ๋ ธ๋๋ฐ.. Realm ๊ฐ๋ฐ ๋ด๋น์๊ฐ "๋ " ์ด๋ผ๊ณ ์ฝ์ด์ผ ํ๋ค๊ณ ํ๋๋ผ๊ณ ์! ์ ํด ๋ค์ ์ด์ผ๊ธฐ์์..
์๋ ํ์ธ์~~ ๊ธ ์ธ๋๋ง๋ค ์ค๋๋ง..^^ ์ด๋ผ๋ ๋ง๋ก ์์์ ํ๊ฒ ๋๋ค์ ใ ใ ใ ใ ใ ใ ๋ด ์์ ..๋ฐ์ฑํฉ๋๋ค ใ ใ ๊ทธ๋์ ์ฐ๊ณ ์ถ์ ์ฃผ์ ๋ ๋ง์ด ๋ชจ์๋ฌ์ ์์ฒญ ์์ฌ์๋๋ฐ ๋ง์ ์ธ ์๊ฐ์ด ์์๋ ๊ฒ ๊ฐ์์!! (๊ท์ฐฎ์์ ์์ด๊ฑฐ์์. ํฉ๋ฆฌํ ํ์ง๋ง ๋ ์์ .. ๐ ๐ ) ์ฝ๋ก๋๋ก ์ธํด์, ๋น๋๋ฉด ๋ผ์ดํ์คํ์ผ์ด ์์ฒญ ํ์ฑํ๋๊ธฐ ์์ํ๊ณ , ์ง๊ธ์ ๋น์ฐํด์ก์์์~ ๊ทธ๋ฌ๋ฉด์ ๊ต~์ฅํ ๋ณดํธ์ ์ผ๋ก ๋ง์ด ์ฐ๋ ํ์ ํด์ด Slack์ด์ฃ ~? ์ ํฌ๋ Slack์ ์ฌ์ฉํ๋ต๋๋ค!! ๊ทผ๋ฐ ์ด Slack์ ๊ฐ์ ์ค ํ๋๊ฐ ๊ต์ฅํ ๋ค์ํ App๋ค์ ์ง์ํด์ค๋ค๋ ์ ์ธ ๊ฒ ๊ฐ์์! ๊ทธ ๋ค์ํ App์ค์ Review Bot์ด๋ผ๋ ์น๊ตฌ๋, Google Playstore, AppStore์ ๋ฆฌ๋ทฐ๊ฐ ๋ฌ๋ฆฌ๋ฉด Slack์ผ๋ก ์๋ฆผํด์ฃผ๋ App์ด์์. ..
์ด๋ฒ ํฌ์คํ ์ UITextField์ ํ๊ธ์ ๋ ฅ์ ๊ธ์์ ์ ํํ๋ ๊ธฐ๋ฅ์ ์ ๋ฆฌํ๊ธฐ ์ํจ์ ๋๋ค! ์ด๋ฒ์ ๊ฐ๋ฐํ๋ฉด์ ๊ธ์์ ์ ํ์ด ์๋ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ ๊ธฐ๋ฅ์ ๋ฃ๊ฒ ๋๋๋ฐ, ์์ด๋ ์ด๋ชจ์ง๋ก๋ ๊ธ์์ ์ ํ์ด ์ ๋์ํ๋๋ฐ, ํ๊ธ ์ ๋ ฅ์ ๋ฒ๊ทธ๊ฐ ์๋๋ผ๊ตฌ์ ๐ญ ์๋ฅผ๋ค๋ฉด 5์ ์ ํ์ด๋ผ๊ณ ํ ๋ "๊ฐ๋๋ค๋ผใ " ์ด๋ ๊ฒ "ใ "๋ฅผ ์น์ง ๋ชปํ๊ฒ ๋๊ฑฐ๋, "๊ฐ๋๋ค๋ผ๋ง"์ ์น๊ณ ์ถ์๋ฐ "๊ฐ๋๋ค๋ผ๋ง"+"ใ "์ด ์ ๋ ฅ์ด ์๋๊ฑฐ๋, "๊ฐ๋๋ค๋ผ๋ง"์์ ๊ณ์ ํ์ดํ์ "๋ง" ๋ถ๋ถ์ ํ์ดํํ๋ ๋ฌธ์๊ฐ ๊ณ์ ์ ๋ ฅ๋๊ฑฐ๋ ใ ใ ๊ทธ๋์ ๊ฒช์๋ ์ํ์ฐฉ์ค๋ฅผ ์ ๋ฆฌํ๋ฉด์ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ์์ฑํด๋๋ ค๊ณ ํด์!! ์๋ง ์ด ๊ธ์ ๋น์ธ๊ธฐ ๊ธ์ด๋ผ์ ใ ใ ๋๊ตฌ์๊ฒ ๋ ธ์ถ์ด ๋ ์ง ์ฌ์ค ์๋ชจ๋ฅด๊ฒ ์ง๋ง.. ์ด๊น์ง ์ค์ จ๋ค๋ฉด ์๋์ ์ฝ๋๋ ๋ณธ์ ๋ง์ผ์ค๊ฑฐ์์! ๊ตฌ๊ธ๋งํด๋ณด๋ฉด TextFi..
์๋ ํ์ธ์ ๐ ์ค๋์ AssociatedType์ ๋ํด์ ์์๋ณผ๊ฑฐ์์! ๋ง ๊ทธ๋๋ก ๊ด๋ จ๋ ํ์ ..? ์ฐ๊ด๋ ํ์ ..? ๊ทธ๋ฐ๊ฑด๋ฐ, ์ฌ์ค์ Generic์์ placeholder ํ์ ๊ฐ์๊ฑฐ์์!! ๋ฌด์จ๋ง์ด๋.. ์์๋ฅผ ๋ค์ด์ ๋ด ์๋ค์!! protocol Appendable { var collection: [String] { get set } func append(_ item: String) } class StringArray: Appendable { var collection: [String] = [] func append(_ item: String) { collection.append(item) } } Appendable์ด๋ผ๋ ์ด๋ค Array์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง protocol์ด ์์ด์..
์ด๋ฒ์๋ ์ ๋ง ์ค๋๋ง์ ๊ธ์ ์ฐ๋ค์~~ ใ ใ ๊ทธ๋์ ์์๋ Big Event๋ ์์ํ ์ผ์ ๋ธ๋ก๊ทธ์ ํฌ์คํ ํ๋ ๊ถ๊ธํ์ ๋ถ(?)์ ๋๋ฌ์ค์ธ์~!! ๐ ์ค๋์ Swift์์ Error๋ฅผ ์ด๋ป๊ฒ Handlingํ๋ฉด ๋๋์ง ์ ๋ฆฌํด๋ณผ๊ฑฐ์์. "๊ทผ๋ฐ Error Handling์ด ๋ญ๋ฐ~?" ๋ง ๊ทธ๋๋ก ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ค๊ฐ ์๋ฌ๊ฐ ๋ฐ์ํ์๋, ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฑด์ง~? ๋ผ๊ณ ํด์ํด๋ ๋ ๊ฒ ๊ฐ์์! ๊ตฌ๊ตฌ์ ์ ์ค๋ช ๋ณด๋ค๋.. ์ญ์ ๊ฐ๋จํ ์์ ๋ฅผ ๋ณผ๊ฒ์! enum CustomError: Error { case invalidUrl case urlEmpty case other } ๋จผ์ Custom ํ์ ์ผ๋ก Error๋ฅผ ๋ง๋ค์ด ์ฃผ์์ด์. ์ด๋ฐ ์๋ฌํ์ ์ ์ํ๋๋๋ก ์ง์ ํด์ ๋ง๋ค ์ ์๊ณ , ์ํ๋ ๋งํผ case๋ฅผ ๋๋ ์๋ ์์ด์~!..
ใ ใ ๋ ์ค๋๋ง์ ๊ธ์ ์จ๋ด ๋๋ค~~ ์์ผ๋ก ์ข ์ข ์ฐ๋ฝ์ฒ ๊ฐ์ ธ์ค๊ธฐ, ์ด๋ฉ์ผ๋ณด๋ด๊ธฐ, ์ ํ๊ฑธ๊ธฐ, ์ฑ์คํํ๊ธฐ, ๋ก์ปฌNoti, ๋ณด์ ๋ฑ๋ฑ ์์ดํฐ์ OS๊ธฐ๋ฅ(?)์ ์ฌ์ฉํ๋ ๊ฒ๋ค์ ๋ํด์ ๋ช๊ฐ์ง๋ฅผ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํด์!! ์ด ํญ๋ชฉ๋ค์ ๊ฐ๋จํ Bento ์๋ฆฌ์ฆ! ๋ผ๊ณ ํ๊ณ ์์ํด๋ณผ๊ฒ์ ๐ ์ฒซ๋ฒ์งธ ํฌ์คํ ์ ์ฐ๋ฝ์ฒ ๊ฐ์ ธ์ค๊ธฐ์ ๋๋ค! ๋จผ์ ํด๋ํฐ์ ์ฐ๋ฝ์ฒ์ ์ ๊ทผํ๋ ค๋ฉด, ์ฌ์ฉ์๊ฐ ๊ถํ์ ํ๋ฝํด์ผ ๋์!! ์ฑ ์ค์นํ๊ฑฐ๋, ์นด๋ฉ๋ผ๋ก ์ฐ์ผ๋ ค๊ณ ํ๊ฑฐ๋ ๋ฑ๋ฑ ํ ๋ ์ด๋ฐ๊ฑฐ ๋ง์ด ๋ณด์ จ์ฃ ~~? ์ด ๊ถํ์ ํ๋ํ๊ธฐ ์ํด, ํ๋ก์ ํธ ์ค์ ์ ํด์ค๋๋ค. Info.plist์ ์ด ํญ๋ชฉ์ ์ถ๊ฐํด์ฃผ์ธ์! ์ ๋ ์ด๋ฐ ํน์ ๋ชฉ์ ์ ๊ฐ์ง๋ ๊ธฐ๋ฅ๋ค์ ํ๋กํ ์ฝ๋ก ๋ฐ๋ก ์ ์๋ฅผ ํด๋ฌ์. ์ด๋ฒ์๋ ์ฐ๋ฝ์ฒ ๊ด๋ จ๋ ๋ด์ฉ์ด๋๊น ContactUsable์ด๋ผ๊ณ ํ๋กํ ์ฝ์ ์ ์ํด..