private lazy var collectionView: UICollectionView = { let collectionView = UICollectionView(frame: .zero, collectionViewLayout: createLayout()) collectionView.register(PokemonCell.self, forCellWithReuseIdentifier: PokemonCell.id) collectionView.dataSource = self collectionView.delegate = self collectionView.backgroundColor = #colorLiteral(red: 0.4334821701, gre..
๐ฅ Sparta_iOS_4๊ธฐ
Swift์์ ๊ตฌ์กฐ์ฒด์ ํด๋์ค๋ ๋ ๋ค ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ฉ์๋๋ฅผ ํฌํจํ ์ ์๋ค. ๊ตฌ์กฐ์ฒด (Struct)๊ฐ ํ์
(Value Type): ๊ตฌ์กฐ์ฒด๋ ๊ฐ ํ์
์ด๋ค. ๊ตฌ์กฐ์ฒด์ ์ธ์คํด์ค๋ฅผ ๋ณ์๋ ์์์ ํ ๋นํ๊ฑฐ๋ ํจ์์ ์ ๋ฌํ ๋, ํญ์ ์๋ก์ด ๋ณต์ฌ๋ณธ์ด ๋ง๋ค์ด์ง๋ค.๋ถ๋ณ์ฑ(Immutability): ๊ตฌ์กฐ์ฒด๋ ๊ฐ ํ์
์ด๊ธฐ ๋๋ฌธ์, ๊ตฌ์กฐ์ฒด์ ์ธ์คํด์ค๋ ๋ค๋ฅธ ๊ณณ์์ ๋ณ๊ฒฝ๋์ง ์๋๋ค.์์ ๋ถ๊ฐ: ๊ตฌ์กฐ์ฒด๋ ์์์ ์ง์ํ์ง ์๋๋ค. ๊ตฌ์กฐ์ฒด๋ ์์ ๊ณ์ธต์ด ํ์ํ์ง ์์ ๋จ์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ํฉํ๋ค.์ด๊ธฐํ: ๊ตฌ์กฐ์ฒด๋ ์๋์ผ๋ก ๋ฉค๋ฒ์์ด์ฆ ์ด๋์
๋ผ์ด์ ๋ฅผ ์ ๊ณต. ํด๋์ค (Class)์ฐธ์กฐ ํ์
(Reference Type): ํด๋์ค๋ ์ฐธ์กฐ ํ์
์ด๋ค. ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ณ์๋ ์์์ ํ ๋นํ๊ฑฐ๋ ํจ์์ ์ ๋ฌํ ๋, ๋์ผํ ์ธ์คํด์ค์..
๐ฌ ํ๋ก์ ํธ ์ด๋ฆ: 4์กฐ ์ํ ์๋งค ์ฑํ๋ก์ ํธ ์๊ฐํ๋ก์ ํธ ์ผ์ : 2024.07.23 - 07.28(6์ผ๊ฐ) ์ด๋ฒ ํ๋ก์ ํธ๋ ๋ฐ์ดํฐ CRUD ๋ฐ ์ธ๋ถ API ์์ฒญ์ ์ ์ฉํด๋ณด๋ ๊ฒฝํ์ ๋ชฉํ๋ก ํฉ๋๋ค.TMDB API๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ๋ฐ์ดํฐ๋ฅผ ํธ์ถํ๊ณ ์ด๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ํ๋ฅผ ๊ฒ์ํ๊ณ ์๋งคํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์์ฐ ์์https://github.com/dkswlgus0314/NBC_iOS_4Team.git ์ญํ ๋ถ๋ด๊น๊ดํ: ๋ฉ์ธ ํ๋ฉด, ํ๋จ ํญ๋ฐ์์งํ: ์ํ ์์ธํ์ด์ง, ์๋งคํ๊ธฐ ๋ชจ๋ฌ ํ๋ฉด, NetworkManager์ด์ฃผํฌ: ์๋งคํ๊ธฐ ๋ด์ญ ํ๋ฉด, ์ฆ๊ฒจ์ฐพ๊ธฐ ๋ด์ญ ํ๋ฉด์ด์ง๊ท: ๋ก๊ทธ์ธ ํ๋ฉด, ํ์๊ฐ์
ํ๋ฉด์ ์นํ: ๋ง์ดํ์ด์ง ํ๋ฉด, ๊ฒ์ํ๋ฉด ์ฌ์ฉ ๊ธฐ์ ํ์
ํด: GitHub, Figma์ธ์ด:..
https://developer-fury.tistory.com/56#google_vignette ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ฌ ์ฐฝ๋ง ๋ซํ๊ณ ํ๋ฉด ์ ํ์ด ๋์ง ์๋๋ค. ํ์ธ ๋ฒํผ์ ๋๋ฅด์ง ์์๋๋ฐ ์๋์ผ๋ก ๋ชจ๋ฌ๋ก ํ์ด์ง ์ ํ์ด ์ด๋ฃจ์ด์ง๋ ์ํฉ.๊ทธ๋ฆฌ๊ณ ํด๋น ๋ชจ๋ฌ์์๋ ๋ค๋ก๊ฐ๊ธฐ๊ฐ ๋์ง ์๋ ์ํฉ MovieInfoViewController.swift ModalViewController.swift ๋ชจ๋ฌ์์ ๋ทฐ์ปจ์ ์๋๋๋ฐ๋ชจ๋ฌ์์ ๋ชจ๋ฌ์ ๊ฐ๋ฅ?ํ๋ ๊ฒ ๊ฐ๋ค.
์ฝ์ด๋ฐ์ดํฐ ์ฐ๊ฒฐ์ํฐํฐ ์ฌ๋ฌ๊ฐ ์์ฑ / ๊ด๊ณ
์๋งคํ๊ธฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํํ๋ชจ๋ฌ์ ๋์์ผํ๋ ์ํฉ์ด๋ค. ์ฌ์ค ์ง๋ ํค์ค์คํฌ ์ฑ์ ๊ตฌํํ ๋์๋ ๋น์ทํ๋ค. ๊ทธ์น๋ง ๊ทธ๋๋ณด๋ค ์ง๊ธ ๊ณ ๋ฏผ์ด ๋๋ ๋ถ๋ถ์ด ์๋ค๋ฉด, ์๋งคํ๊ธฐ ๋ฒํผ์ ๋ทฐ์ ์๊ณ ๋ฒํผ์ ๋๋ ์ ๋ addTarget์ผ๋ก ๋ชจ๋ฌ์ ๋์ฐ๋ ค๊ณ ํ๋ค. ์ด๋, ๋ณ๋์ ๋ทฐ์ปจ์ ๋ง๋ค์ง ์๊ณ ํจ์ ์์์ ๋ง๋ค์ด ๋ณด๋ ค๊ณ ํ๋๋ฐ๋ชจ๋ฌ์ ๊ตฌํํ ๋ ์ฌ์ฉํ๋ present ๋ฉ์๋ UIViewController ํด๋์ค์ ๋ฉ์๋๋ผ UIView์์๋ ์ง์ ํธ์ถํ ์๊ฐ ์๋ค๊ณ ํ๋ค. ์ด๊ฒ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ค... MovieInfoViewController.swift MovieInfoView.swift์ด๋ ๊ฒ ์์ฑํ๋ฉด ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ด ์ค๋ฅ๋ movieInfoVC ์ธ์คํด์ค๋ฅผ ์ด๊ธฐํํ๋ ์์ ์ self๊ฐ ์์ง ..
NetworkManager๋ฅผ ๋ง๋ค๊ณ ํํฐ๋์ ์ฐพ์๊ฐ๋๋ฐ ์ฐ์ฐํ ์๋ก์ด ๋ฐฉ๋ฒ์ ์๊ฒ ๋์๋ค.์ฑ๊ธํค ํจํด๋ณด๋ค๋ ํ๋กํ ์ฝ ์ฌ์ฉ์ ์ข ๋ ์ ํธํ์ ๋ค๋ ๊ฒ์ด๋ค. ํ์ง๋ง ์ง๊ธ ํ๋ก์ ํธ ์์ ์์๋ ์๊ฐ๋ ๋ถ์กฑํ๊ณ ๊ฐ๋
๋ ์ด๋ ค์์ ๊ณต๋ถํ๊ณ ๋ค์์ ์ข ๋ ์ ์ฉํด๋ณผ ๊ฒ. Model์ Movie, MovieDetail์ ๋ด๊ณ , NetworkManager๋ ์์ ํ ๋คํธ์ํน๋ง ํ ์์๊ฒ ์์
ํ๋ ๊ฒ์ด ์ข๋ค. ๊ทธ๋ฆฌ๊ณ NetworkManagerMock์ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ ์ ๋๋ฏธ ๋ฐ์ดํฐ๋ค์ ์ ์ด์ฃผ๊ณค ํ๋๋ฐ๊ทธ๋ด ํ์์์ด ์ด๊ณณ์์ ๋ฐ์ดํฐ๋ค์ ์ ์ฅํด๋๊ณ ๋ถ๋ฌ๋ค๊ฐ ์ฐ๊ณ NetworkManager๊ฐ ๋ค ์์ฑ๋๋ค๋ฉดMock ์ด 4๊ธ์๋ง ์ง์ฐ๊ณ ๋ณ๊ฒฝํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ ๋ง ๊ฐ๋จํด์ง๋ค. ์ด๋์ ์ฅ์ ์ ๋ชจ๋ํ์ ๋ฎ์ ์์กด์ฑ์ด ํต์ฌ. ..