| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 |
- Cloud Firestore
- ์ฑ๋์์ธ
- components
- ExpressJS
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ฑ๋ง๋ค๊ธฐ
- nodejs
- MongoDB
- ์ง๋ฒ๋ณํ
- Reduce
- AVAudioPlayer
- CRUD
- Core Data
- DispatchQueue
- Firestore CRUD
- RxSwift
- ์๊ณ ๋ฆฌ์ฆ
- Filter
- Figma
- UIRefreshController
- Decodable
- mongoose
- ios
- String.Index
- Codable
- Mac
- Firestore
- map
- SWiFT
- Encodable
- Today
- Total
๋ชฉ๋กSWiFT (59)
Focus On Develop ๐ค๐ค
๊ณต๋ถ๋ฅผ ํ๋ฉด ํ ์๋ก Interface Builder ๋ก๋ง UI์์ ์ ํ๋๊ฒ ํ๊ณ๊ฐ ์๋๋ผ๊ตฌ์! ๐ Storyboard vs Programmatic UI ๋ฐ๋ก๋ณด๊ธฐ ๊ทธ๋์ ์ ๋ Programmatically AutoLayout์ ์ ๋ฌธํ์ต๋๋ค!! ์ด๋ฐ ์ ๋ฐ ์์ค๋ฅผ ๋ณด๋ฉด CG ์ด์ฉ๊ตฌ ์ ์ฉ๊ตฌ..๊ฐ ๋์ค๋๋ฐ, ๋ด๊ฐ ์๋ CG๋ ์ํ๋ณด๋ฉด์ "์์ด~์ ๊ฑฐ CG๋ค" ๋ผ๊ณ ํ๋ ๊ฒ ๋ฟ์ธ๋ฐ..๐๐ ๊ทธ๋์ ํ๋ํ๋ ๊ธฐ์ด์ ์ธ ๊ฒ๋ถํฐ ์ ๋ฆฌํด๊ฐ๋ ค๊ณ ํฉ๋๋ค!! ๋จผ์ , CG CG ํ๋๋ฐ CG๊ฐ ๋ญ๊น์~? ๊ทธ๋ ๋์. ๊ฐ๋จํ ๋งํ๋ฉด Swift์์ 2์ฐจ์์์ ํ๋ฉด์ ๊ทธ๋ฆด๋ ์ฌ์ฉํ๋ Framework๋ผ๊ณ ํฉ๋๋ค! ๋ง์ด ๋ค์ด๋ณธ CGFloat, CGPoint, CGSize, CGRect, CGColor, CGFont ๋ฑ๋ฑ ๋ค์ํ ์์๊ฐ ์ Fra..
์ ๋ ์์ด๋ณด์ด๋ณด๋ผ์, ๋ฐฐ์ด๋๋ก ์ถฉ์คํ๊ฒ Storyboard๋ฅผ ํตํ UI์์ ๋ง ํด์๋๋ฐ์~! ๊ณต๋ถ๋ฅผ ํ๋ฉด ํ ์๋ก ๋ณต์กํ๊ฑฐ๋ ๋ค์ํ User Interaction(swipe ๋ฑ)์ด ํ์ํ ํ๋ฉด๋ค์ ๋ง๋๊ฒ ๋๊ณ , ๊ทธ๊ฒ๋ค์ ๋ ์ ๊ตฌํํ๋ ค๋ฉด Code Base๋ก Programaticํ๊ฒ UI๋ฅผ ๊ทธ๋ฆด ์๋ ์์ด์ผ ๊ฒ ๋๋ผ๊ตฌ์! ๊ทธ๋์ ์ด๋ฒ์๋ CodeBase๋ก๋ UI๋ฅผ ์์ฑํ ์ ์์ด์ผ ํ๋ ์ด์ ๋ฅผ ํฌ์คํ ํด๋ณผ๊ฑฐ์์! Storyboard๋ก ๊ฐ๋ฐํ ๋ ์ฅ/๋จ์ ์ฅ์ ๊ฒฐ๊ณผ๋ฌผ์ ๊ดํด ์์ธกํ๊ธฐ ์ฌ์ (๋น์ฐํ ๋์ผ๋ก ๋ณด๋ฉด์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋๊น..?) ์์ฑ ํ์ธ ๊ฐ๋ฅ (inspector ํ๋ฉด์ ๋ณด๋ฉด์ ํ๋ฉด ํด๋ฆญ ๋ธ๊น ๋ธ๊น์ผ๋ก ๊ฐ๋จํ๊ฒ ํ์ธ ๊ฐ๋ฅํ์ฃ !) ์์ค์ฝ๋๋ฅผ ํ๋ํ๋ ๊ธฐ์ตํ์ง ์์๋ ๋ฌด๊ด ๋จ์ ๋ฌด๊ฑฐ์ ๐ฉ (์๋ง ๋ณต์กํ ํ๋ฉด ์์ ..
๋ด ์ฃผ๋ณ์๋ ์ ๋์์ด๋๊ฐ ํ๋ช ๋ ์๋ ๊ฒ์ธ๊ฐ..ใ ใ ๋ํ์๋๋ถํฐ ์ด๋ฐ์ ๋ฐ ํ๋ํ๋ฉด์ ๋ค์ํ ์ฌ๋๋ค์ ๋ง์ด ์ฌ๊ท์ด๋๊ฑธ ๊ทธ๋ฌ์ด์! ใ ใ ์์ฌ์ด๋ฐ๋ก ์ง์ ๋์์ธํด๋ณด๋ ค๊ณ ํฉ๋๋ค์ฉ~~ ๐ (๋ฏธ์ ๊ฐ๊ฐ Zero.. ํน์ ์ฑ๋์์ด๋ ๊ณ์๋ฉด ์ฐ๋ฝ์ฃผ์ธ์.. ๊ฐ์ด ํฉ์๋ค.. ใ ใ ๋จ, ์ด์ ํ์ด๋ง ๊ฐ๋ฅ ใ ใ ใ ) App์ ํ๋ฒ ๋ง๋ค์ด๋ณด๊ณ ์ถ๊ณ ,, ํผ์ ์ฝ๋๋ง ๋ณด๋ฉด์ ๋์ ๊ฑฐ๋ฆฌ๊ธฐ์ ๋ญ๊ฐ ๋ฑ๋ฑํ๊ณ .. ์์ฑ๋ ๋ชจ์ต์ ๋ฏธ๋ฆฌ ๋ณด๊ณ ์ถ๊ธฐ๋ ํ๊ณ .. ์ข ์ด์ ๋์ถฉ ํ๊ฒจ๊ทธ๋ฆฐ wireframe์ ์ง๊ธ์ง๊ธํ๊ณ .. ๋๋ ๊ณต๋๊ณต๋์ด๋ผ ๋์์ธ๊ฐ์๊ฑฐ 1๋ ๋ชจ๋ฅด๊ณ ๊ฐ๊ฐ๋ ์๊ณ ... ๊ทธ๋ฐ๋ถ๋ค!! ์์์์์๋ง ์ด๋ ๊ฒ ๋๊ฒ ์ง! ํ๋๊ฑด ์ด์ ๊ทธ๋งํ๊ณ ๊น๋ํ๊ฒ ์ํ๋ ํ๋ฉด ๋์์ธ ํด๋๊ณ ์ฑ๊ฐ๋ฐ ํด๋ณด์๊ตฌ์! ํ๋ฒ ์ตํ๋์ผ๋ฉด ๋์ค์ ๋์์ด๋์ ๊ฐ์ด ์์ ํ ๋๋ ์์ํ๊ณ ,..
Sketch, Figma ๋ฑ๋ฑ์ ํ์ฉํด์ ์ฑ ๋์์ธ ํ ๋ ์ฌ์ฉํ ์ ์๋ ์ ์ฉํ ์ฌ์ดํธ ๋ชจ์์ ๋๋ค~~ ๐๐ 1. ๊ฐ์ข ์ด๋ฏธ์ง ๋ค์ด๋ก๋ www.pexels.com/ko-kr/ ๋ฐฐ๊ฒฝ, ์ด๋ฏธ์ง ๋ฑ๋ฑ ํ์ํ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์์ฐฝ์ ๊ฒ์ํ๋ฉด ๋ค์ด๋ฐ์ ์ ์์ด์. (์ด๋ฏธ์ง์ ๋ฐ๋ผ ์ ๋ฃ๋ ์์) 2. (์ฃผ๋ก) ๋ฐฐ๊ฒฝํ๋ฉด, App Icon www.pinterest.co.kr/ Pinterest ์๋ฆฌ๋ฒ, ์ง ๊พธ๋ฏธ๊ธฐ ์์ด๋์ด, ์๊ฐ์ ์ฃผ๋ ์คํ์ผ ๋ฑ ์๋ํด ๋ณผ ๋งํ ์์ด๋์ด๋ฅผ ์ฐพ์์ ์ ์ฅํ์ธ์. www.pinterest.co.kr ์ํ๋ ํค์๋๋ก ๊ฒ์ํ๋ฉด ๋ค์ํ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ์ผ์ค ์ ์์ด์. 3. iOS ๊ธฐ๋ณธ ํ๋ฉด ๋ฆฌ์์ค ๋ค์ด๋ก๋ iosdesignkit.io/ios-11-gui/ iOS 11 GUI for iPhone X an..
๋จผ์ ARC์ ๊ฐ๋ ์ ๋ํด์ ์ง๊ณ ๋์ด์์ผ ์์ฐ์ค๋ฝ๊ฒ ๋ฉ๋ชจ๋ฆฌ ๋์์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค ๐ ๐ 2021/01/29 - [iOS [Swift]] - [Swift] ARC (Automatic Reference Counting) ์ ๊น ์์ฝํ๋ฉด ARC๋ Swift์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํด์ค๋ค๋ ๊ฐ๋ ์ธ๋ฐ, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ํด์ฃผ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ ํฌ์ธํธ๊ฐ ์์์ฃ . ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ ํฌ์ธํธ๋ ์ธ์ ์ด๋ฉฐ, ์ด๋ป๊ฒ ๋ฐฉ์ง๋ฅผ ํด์ผ ํ ์ง์ ๋ํด์ ์์๋ณด๋ ค ํฉ๋๋ค. ** ์ฌ๊ธฐ์๋ถํฐ๋ Swift ๊ณต์ Document๋ฅผ ์ฐธ๊ณ ํด์ ์์ฑํ์ต๋๋ค ** [Swift Docs] docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.htm..
Swift์์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ๊น์~? Swift์์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ณ ์ฑ๋ฅ์ ํ๋ฅผ ๋ง๊ธฐ์ํด ARC ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์๋๋ฐ์! ์ด ARC์ ๋ํด์ ํ๋ฒ ์์๋ณด๋ ค๊ณ ํด์! RC๋ Reference Counting์ ์ฝ์๋ก ์ ํ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ผ๋ ๊ธฐ๋ณธ์ ์ธ Rule์ด๋ผ๋ ์ ์ ๋ฅผ ๋ก๋๋ค. MRC๋ Manual Reference Counting์ ์ฝ์๋ก Object-C์์ ๊ฐ๋ฐ์๊ฐ ์ง์ ! ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น/ํด์ ํด์ค์ผ ํ ๋ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋๋ฐ, ์ด ๋ถ๋ถ์ ์ฟจํ๊ฒ ์์ ๋๋ก ํจ์คํฉ๋๋ค.ใ ์ด๋ฏธ Swift๊ฐ ๋ณดํธํ ๋์๊ณ , ์ ๋ํ Object-C๋ 1๋ ๋ชจ๋ฅด๊ณ ํ์ฌ ์ฌ์ฉ๋ ์ํ๊ธฐ ๋๋ฌธ..ใ ๐๐ ์ ์ด์ ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ์, ARC๋ Automatic Reference Counting์..
์ด ํ์ด์ง๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ ์์ฃผ(?) ์ฐ์ด๋ ์คํฌ(?) ๊ฐ์ ๊ฒ๋ค์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ ์์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด์ ์..? root๊ฐ ์ด๋ป๊ฒ ๊ตฌํ์ง.. ์ง๋ฒ๋ณํ ์ด๋ป๊ฒ ํ์ง.. ๋ฑ๋ฑ! (๋งค๋ฒ ๊ตฌ๊ธ๋งํ๊ธฐ ๋ ๊ท์ฐฎ..๐) ์ ~๋ง ๊ฐ๋จํ๊ฒ ์ฌ์ฉ๋ฒ๋ง ์ ๋ฆฌํ ์์ ์ด๋๋๋ค ๐ ๋ฌธ์ ํ๋ฉด์ ๋ ์์ฃผ ๋ณด์ด๋ ๊ฒ์ ์ด ํ์ด์ง์ ์ถ๊ฐํด๋๊ฐ ์์ ์ ๋๋ค ๐๐ - ๋ฐฐ์ด ์ด๊ธฐ๊ฐ ๋ฃ์ด์ ๋ง๋ค๊ธฐ var array = Array(1...5) // [1,2,3,4,5] - ํฌ๊ธฐ๊ฐ ์ ํด์ง ๋ฐฐ์ด ๋ง๋ค๊ธฐ var arr = Array(repeating: 0, count: 3) // [0,0,0] - 2์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ let array: [[Int]] = Array(repeating:Array(repeating:1, count: 4), c..
์ผ๋จ ์นดํซ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ๊ท์น ํน์, ์๋ฆฌ๋ฅผ ์์๋ด์ผ ํ๋ค. ์ฒ์ ์๋๋ brown ๊ธฐ์ค์ผ๋ก ํฌ๊ธฐ๋ฅผ ์ถ์ ํ๋ ค๊ณ ํด๋ณผ๊น ํ๋๋ฐ.. ์์ 3๋ฒ ์ผ์ด์ค์์ ์? ์ด๊ฑด์๋๊ฒ ๊ตฌ๋ ํ๊ณ ์๊ฐ์ด ๋ค์๋ค ใ ใ ์ฆ.. ์ด๋ฌธ์ ๋ yellow ๋ก๋ถํฐ ํฌ๊ธฐ๋ฅผ ์์๋ด์ผํ๋ค๋ ์๋ฏธ๋ค. ์ง์ฌ๊ฐํ๊ณ yellow์ ํฌ๊ธฐ๊ฐ ์ต์ 1x1์ ๋๋(์ ์ถ๋ ฅ ์ ํ์ฌํญ), yellow์ ํฌ๊ธฐ๋ง ์๋ฉด yellow์ (์์๋๊ธธ์ด + ์ข์ฐ๊ธธ์ด) x 2 + 4(๋์ชฝ๋ชจ์๋ฆฌ) ๋ง ํด์ฃผ๋ฉด brown์ ๊ฐฏ์๋ฅผ ๊ตฌํ ์ ์๋ค. (brown์ yellow๋ฅผ ๊ฐ์ธ๋ ํ ๋๋ฆฌ๋๊น) ๊ด๊ฑด์ yellow์ ํฌ๊ธฐ๋ ์ด๋ป๊ฒ ๊ตฌํ์ง? yellow์ ํฌ๊ธฐ๋ ๊ฐ๋กx์ธ๋ก๋ก ๊ตฌํด์ง ๊ฑด๋ฐ, ๊ฐ๋ฅํ ์กฐํฉ์ ๊ฐ๋กx์ธ๋ก (์ฝ์์ ๊ณฑ) ์ค์ ์์์ ๋์ถํ brown ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ๊ณต์์ ๋ฃ์์..