๐ 1 . TypeAliases (ํ์
๋ณ์นญ) TypeAliases๋ ์ด๋ฏธ ์กด์ฌํ๋ ํ์
(ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ, ํจ์, ํํ ๋ฑ)์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ํ๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ๊ฐ๋
์ฑ์ ๋์ด๊ณ , ํน์ ํ์
์ ์๋ฏธ๋ฅผ ๋ช
ํํ๊ฒ ํํํ ์ ์๋ค.typealias ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํ๋ค. ๐ 2. ๊ธฐ๋ณธ ๋ฌธ๋ฒ ๐ 3. ์ฌ์ฉ ์์1. ๊ฐ๋
์ฑ ํฅ์์ฝ๋์์ ํ์
์ ์ด๋ฆ์ด ๊ธธ๊ฑฐ๋ ๋ณต์กํ ๋ typealias Point = (x: Int, y: Int) let orign: Point = (x: 0, y: 0) 2. ๋ณต์กํ ํ์
๋จ์ํ์ ๋ค๋ฆญ ํ์
์ด๋ ํจ์ ํ์
๊ณผ ๊ฐ์ด ๋ณต์กํ ํ์
์ ๊ฐ๋จํ ์ด๋ฆ์ผ๋ก ์ ์ํ์ฌ ๊ฐ๋จํ๊ฒ ์ฌ์ฉtypealias StringDictionary = [St..
์ ์ฒด ๊ธ
Swift์์ ์ค๋ฅ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์1. ์ต์
๋ : ์๋ชป๋ ์ฒ๋ฆฌ์ ๊ฒฐ๊ณผ๋ ์คํ ๋์ค ์คํจํ์ ๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ๋์ nil์ ๋ฐํ. 2. ์๋ฌ์ฒ๋ฆฌ ๊ตฌ๋ฌธ: ๋ฐํ๊ฐ ํ์
์ด๋ ์ฝ๋์ ํ๋ฆ๊ณผ ์๊ด ์์ด ์ค๋ฅ๋ฅผ ๋์ง ์ ์๋ ๊ตฌ๋ฌธ. ์๋ฌ์ฒ๋ฆฌ(Error Handlig)๋ ํ๋ก๊ทธ๋จ์ ์๋ฌ ์กฐ๊ฑด์์ ์๋ตํ๊ณ ๋ณต๊ตฌํ๋ ํ๋ก์ธ์ค์ด๋ค. ์ผ๋ถ ์์
์ ํญ์ ์คํ ์๋ฃํ๋ค๋ ๋ณด์ฅ์ด ๋์ง ์๋๋ค.์ต์
๋์ ๊ฐ์ด ์์์ ๋ํ๋ด๋๋ฐ ์ฌ์ฉ๋๋๋ฐ ์ฌ์ฉ๋์ง๋ง ์์
์ด ์คํจํ ๊ฒฝ์ฐ ์๋ฌ ์์ธ์ ์ดํดํ ์ ์๋ค. ๐ 1 . ์๋ฌ ํํ๊ณผ ๋์ง๊ธฐ(Representing and Throwing Errors) Swift์์ ์๋ฌ๋ Error ํ๋กํ ์ฝ์ ์ค์ํ๋ ํ์
์ ๊ฐ์ผ๋ก ํํ๋๋ค.์ด ํ๋กํ ์ฝ์ ๋น์ด์์ผ๋ฉฐ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ ๊ฒ์ ๋ํด ์ฌ์ฉ๋ ..
๐ 1 . Relay์ง๋ ๋ฒ์ ์ ๋ฆฌํ๋ Subject์ ์ฐ๊ณ๋๋ ๋ด์ฉ์ด๋ค. Subject๋ ์ต์ ๋ฒ๋ธ์ด๋ฉด์ ์ต์ ๋ฒ์ด๋ค. Relay๋ Subject๊ฐ onCompleted, onError๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค.์ฆ, ์๋ฌ์ ์๋ฃ ์ด๋ฒคํธ๋ฅผ ๋ฐฉ์ถํ์ง ์๊ณ , ์ข
๋ฃ๋์ง ์๋ ํน์ํ Subject์ด๋ค.๊ตฌ๋
์๊ฐ dispose๋ ๋๊น์ง ๊ณ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ค. ๋ฐ๋ผ์ Relay๋ ์ฃผ๋ก UI ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋๋ค. Relay์ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด์๋ onNext()๊ฐ ์๋ accept ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. Relay๋ RxCocoa์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ผ๋ก import RxCocoa๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๐ 2. Relay์ ์ข
๋ฅ1) PublishRelay : ๊ตฌ๋
์ดํ ์๋ก์ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ๊ทธ..
์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ํ๋ฉด์ ๊ทธ๋์ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐฉ์ง๋ฅผ ์ํด ์ฌ์ฉํ๊ณ ์์๋[ weak self ]์ ๋ํด์ ๋ค์ ํ๋ฒ ์๊ฐํด๋ณด๋ ์ข์ ๊ธฐํ๊ฐ ์๊ฒผ๋ค. 1. weak self๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํ๊ณ ๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด์ ํผํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค. Swfit์ ARC๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ๊ฐ์ฒด๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ค. ํ์ง๋ง ๊ฐ์ฒด๋ค์ด ์๋ก ๊ฐํ๊ฒ ์ฐธ์กฐํ ๊ฒฝ์ฐ, ARC๋ ์ด ์ฐธ์กฐ๋ฅผ ๋์ง ๋ชปํ๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์ ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.์ด๋ฌํ ์ํฉ์ ๊ฐํ ์ฐธ์กฐ ์ฌ์ดํด์ด๋ผ๊ณ ํ๋ค. 2. ๊ฐํ๊ฒ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ๋ ์ด๋ค ์ํฉ์ ๋งํ๋๊ฑฐ์ง? ๊ฐ์ฒด๋ค์ด ๊ฐํ๊ฒ ์ฐธ์กฐํ๋ค๋ ๊ฒ์, ํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์์ ํ๋ฉด์๊ทธ ๊ฐ์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ฒด๋์ง ์๋๋ก ์ฐธ์กฐ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์..
๐ 1 . SubjectSubject๋ ๋ค๋ฆฌ, ํ๋ก์ ์ญํ ๋ก ๋ฐ์ดํฐ์ ์ค๊ณ ์ญํ ์ ํ๋ ๊ฐ์ฒด์ด๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๊ตฌ๋
์๋ค์๊ฒ ์ฌ์ ์กํ๊ฑฐ๋ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ฐํํ๋ค. ๋ฐ๋ผ์, Subject๋ ์ต์ ๋ฒ์ด๋ฉด์ ๋์์ ์ต์ ๋ฒ๋ธ์ด๋ค. Subject๋ ํ๋ ์ด์์ ๋ค๋ฅธ ์ต์ ๋ฒ๋ธ์ ๊ตฌ๋
ํ ์ ์๊ณ (์ต์ ๋ฒ ์ญํ ), ๋์์ ์ต์ ๋ฒ๋ธ์ด๋ฏ๋ก ๊ตฌ๋
์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๋ค. * ์ต์ ๋ฒ๋ธ์ ๋ค๋ฅธ ์ต์ ๋ฒ๋ธ์ ๊ตฌ๋
ํ์ง ๋ชปํ๋ค. ์ต์ ๋ฒ๋ ๋ค๋ฅธ ์ต์ ๋ฒ์๊ฒ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ์ง ๋ชปํ๋ค. ๐ 2. Subject์ ์ข
๋ฅSubject๋ .next ์ด๋ฒคํธ๋ฅผ ๋ฐ๊ณ , ์ด๋ฒคํธ๋ฅผ ์์ ํ ๋๋ง๋ค ๊ตฌ๋
์์๊ฒ ๋ฐฉ์ถํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ๋ฒ๋ธ์ cold ์ต์ ๋ฒ๋ธ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ๊ตฌ๋
์๊ฐ ์๋ก์ด ๊ฐ์ ๋ฐ์ ๋๋ง๋ค ์ฒ์๋ถํฐ ์ด๋ฒคํธ๋ฅผ ๋ค..
๐ 1 . Observable = Observable sequence = sequenceRsSwift์์ ๋งํ๋ Observable๊ณผ sequence๋ ์๊ฐ์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ๋ฐ์ํ๋ ๋ฐ์ดํฐ์ ํ๋ฆ์ ๋งํ๋ค. Observable: RxSwift์ ํต์ฌ ๊ฐ๋
์ค ํ๋๋ก, ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ฐ์ด๋ ์ด๋ฒคํธ๋ฅผ ๋ฐฉ์ถํ๋ ๋ฐ์ดํฐ ํ๋ฆ(์คํธ๋ฆผ)์ ๋ํ๋. ์ด ์คํธ๋ฆผ์ ๊ตฌ๋
ํจ์ผ๋ก์จ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ๋ง๋ค ํด๋น ๊ฐ์ ๋ฐ์ ์ ์์.Sequence: ์ผ๋ฐ์ ์ผ๋ก Swift์์๋ ๋ฐ๋ณต๊ฐ๋ฅํ ๊ฐ์ ์งํฉ(์: ๋ฐฐ์ด, ๋ฆฌ์คํธ ๋ฑ)์ ์๋ฏธํจ. RxSwift์์์ ์ํ์ค๋ ๊ฐ๋ค์ด ์๊ฐ์ด ํ๋ฆ์ ๋ฐ๋ผ ํ๋์ฉ ๋์ค๋ ๋น๋๊ธฐ์ ์ธ ์ํ์ค๋ฅผ ์๋ฏธํจ. ์ด ์คํธ๋ฆผ์ ๋ฐฐ์ด์ฒ๋ผ ์ฌ๋ฌ ๊ฐ์ ๋ฐฉ์ถํ์ง๋ง, ๊ทธ ๊ฐ๋ค์ ์๊ฐ์ ๋ฐ๋ผ ๋น๋๊ธฐ์ ์ผ๋ก ์ ๋ฌ๋จ. ..
ํ
์ด๋ธ๋ทฐ ์ ์ฒด์ cornerRadius๋ฅผ ์ฃผ๊ณ ์ถ์๋ฐ ์ ์ฉ์ด ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์์ญ์ ํ์ธํด๋ณด๊ณ ์ ๋ฐฑ๊ทธ๋ผ์ด๋์ปฌ๋ฌ๋ฅผ ์ฃผ๊ณ ํ์ธํด๋ณด๋ ์
๋ถ๋ถ์ด ์ ์ฉ์ด ๋์ง ์์๋ค. ๊ทธ๋์ ์ ์ฉ์ ํด๋ดค๋๋ฐ ์ ๋์ง ์์๋ค. ์ฌ์ค cell์ ์ ์ฉ์ ํด์ฃผ๊ณ ์ถ์๋ฐ ์ฌ๊ธฐ์์๋ ์ด๋ป๊ฒ ์
์ ์ค์ผํ ์ง ๊ณ ๋ฏผ์ด์๋ค. ํ์๋ค๊ณผ ์๊ธฐ๊ฐ ๋์จ ๊น์ ์ด๊ฒ ์ ๊ฒ ๋ง์ด ์๋ ํด๋ณธ ๊ฒฐ๊ณผ...ใ
ใ
ใ
๊ทธ๋์ contentView์ self ๋ญ๊ฐ ๋ค๋ฅธ๊ฑฐ์ง..?๋ด๊ฐ ํ๊ณ ์ถ์๋ ๊ฒ์ ํ์ฌ ํ
์ด๋ธ๋ทฐ์๋ง cornerRadius ์ ์ฉ์ด ๋๊ณ ์๊ธฐ ๋๋ฌธ์cell์๋ cornerRadius์ ์ฃผ๊ณ ์ถ์๋ ๊ฒ! self: ์
์์ฒด๋ฅผ ์๋ฏธํ๋ค. ์ฆ, UITableViewCell ํด๋์ค์ ์ธ์คํด์ค์ด๋ค.์
์ ์ ์ฒด ์์ญ์ ๋ด๋นํ๋ฉฐ, ์
์ ๋ฐฐ๊ฒฝ์, ๊ฒฝ๊ณ์ ..
APIKey ๋ฐ ์ธ๋ถ ๋
ธ์ถ ์ ๋ณด์์ ๋ฌธ์ ๊ฐ ์๋ ์ฝ๋๋ค์ ๊ธฐ๋กํด๋๋ SecretsConfig.xcconfig ํ์ผ์ ๋ง๋ค๊ณ ๊น ์ด๊ทธ๋
ธ์ด์ ์ถ๊ฐํ์์ผ๋ ์ปค๋ฐ ์ ๊ณ์ Xcode์์ ์ฌ๋ผ๊ฐ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ค๋ ์ค์ ์คํฌ๋ผ ๋ ๋ฐ์ํ ๋ฌธ์ ๋,ํ์๋ค๊ณผ ๊น์ด๊ทธ๋
ธ์ด์ *.xcconfig ์ด์ธ์ ๊ตฌ์ฒด์ ์ธ SecretsConfig.xcconfig์ ์ ์ฉ์ด ๋๋์งํ์ธ ํด๋ณด๋ ๊ณผ์ ์ค ์ค์๋ก ํ์ผ์ด ์ปค๋ฐ๊น์ง ์งํ๋ ์ํ์๋ค.(์์ง ๋ก์ปฌ์์ ์ปค๋ฐ์ ํ๊ณ ํธ์ฌ๋ ํ์ง ์์ ๊นํ๋ธ์ ์ฌ๋ผ๊ฐ์ง ์์ ์ํ) ์ฌ๊ธฐ์ ํธ์ฌ๋ฅผ ํ๊ฒ ๋๋ฉด, ์๋กญ๊ฒ ์ถ๊ฐ๋ APIKey๋ค์ด ๋ชจ๋ ๊นํ๋ธ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๋ ์ํฉ... 1. .gitingore๊ฐ ์ ์ฉ์ด ์๋๊ณ .xcconfig ํ์ผ์ ํฌํจ์์ผ์ → ๊น ์บ์ฌ ์ญ์ git rm -r --cach..