๐ 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..
๋ฌธ์ ์ 1๊ณต๊ณต๋ฐ์ดํฐํฌํธ์์ ์ ๊ณต๋๋ ํค๋ ์ธ์ฝ๋ฉ์ด ํ ๋ฒ๋ ์๋น์คํค๋ค. urlComponents์ queryItems๋ฅผ ํตํด์ ์ฟผ๋ฆฌํ๋ผ๋ฏธํฐ๋ฅผ ์ค์ ํ๋ url์ ์์ฑํ๋ ๊ณผ์ ์์ํ๋ฒ ๋ ์ธ์ฝ๋ฉ์ด ๋์ด 2๋ฒ ์ธ์ฝ๋ฉ์ด ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ธ์ฝ๋ฉ์ด 2๋ฒ๋จ์ ๋ฐ๋ผ, ์์ฑ๋ url์ ์ฃผ์๊ฐ ๋ฌ๋ผ์ ธ ์๋ฒ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ์ ์์๋ค. ๋ฌธ์ ํด๊ฒฐ1 ํด๋น ์ฌํญ์ ๊ตฌ๊ธ๋ง์ ํตํด ์ธ์ฝ๋ฉ์ด ๋๋ฒ ๋์ด ๋ฐ์ํ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์๋ค. ์ธ์ฝ๋ฉ์ด ๋ ๋ฒ๋ ๊ฒ์ด ๋ฌธ์ ์์ผ๋ฏ๋ก, ๋์ฝ๋ฉ์ ํด์ค๋ค. ๊ณต๊ณต๋ฐ์ดํฐํฌํธ์ ๋ง์ดํ์ด์ง์ ๋ค์ด๊ฐ๋ฉด ์ธ์ฝ๋ฉ๋ ์ธ์ฆํค์ ๋์ฝ๋ฉ๋ ์ธ์ฆํค ๋ ๋ค ์ ๊ณตํ๊ณ ์๋ค. ๊ธฐ๋ณธ ์ธ์ฝ๋ฉ๋ ํค๋ฅผ ์ฌ์ฉํด ์๋์ ๊ฐ์ด removingPercentEncoding ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํด์ ๋์ฝ๋ฉํ ์๋ ์๋ค. ๋๋ณด๊ธฐ..
1. ๊ณต๊ณต๋ฐ์ดํฐํฌํธ์์ ์ ๊ณตํ๋ ์๋น์คํค๋ ์ผ๋จ ์ธ์ฝ๋ฉ๋ ํค๋ฅผ ์ ๊ณตํ๋ค.๊ทธ๋์ ์๋์ ๊ฐ์ด %์ ๊ฐ์ด ๋ณํ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. // ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ์ธ์ฝ๋ฉ๋ ํค(์๋น์คํค ์ผ๋ถ ์ญ์ )https://apis.data.go.kr/1160100/service/GetMarketIndexInfoService/getStockMarketIndex?serviceKey=qfXqzDLVVPW1Ks0oWU%2Bm8Z9JphEfjCDxm7GMBUkVC4GoPQshE%2B8Uk%2BQ%3D%3D&์ด๋ ๊ฒ ํฌ์คํธ๋งจ์ด๋ ๊ณต๊ณต๋ฐ์ดํฐํฌํธ์์ ํ
์คํธํด๋ณด๋ฉด ์ ๋๋ก ๋์ค์ง๋ง, ์ฝ๋์์ผ๋ก๋ ๋์ค์ง ์๋๋ค. ๋ค๋ฅธ API๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ ์ด๊ฑด ์ ๋๋ก ๋์์ ๋ ์ ์๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. -> ๊ทธ๋ผ ์ธ์ฝ๋ฉ์ ๋ป์ด ์ ํํ๊ฒ ๋ฌด์..