ํ๋ฉด : ์ฌ์ฉ์ ์ ์ฅ์์ ๋ณด๋ ๊ฒ๊ธฐ๋ฅ : ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ.๋ฐ์ดํฐ๋ฐ์ดํฐ๊ฐ ์ฑ ๋ด๋ถ์ ์ ์ฅ๋์ด ์์ ๊ฒฝ์ฐ : ๋ฐฑ์ / ๋ณต๊ตฌ ํ์ (ex: ์นด์นด์คํก ์ฉ๋, ์ํ ๊ด๋ฆฌ ์ฑ ๋ฑ)๋ฐ์ดํฐ๊ฐ ์๋ฒ์ ์ ์ฅ๋์ด ์์ ๊ฒฝ์ฐ : ๋คํธ์ํฌ ์ฐ๊ฒฐ ํ์ (ex: ์ธ์คํ, ์ ํ๋ธ, ์นํฐ
Entry Point์ ๋ค๋ฃจ๊ธฐ ์์, Entry Point์ ๊ฐ๋ ์ ๋ํด์ ์์๋ณด์.Swift์์ Entry Point๋, ํ๋ก๊ทธ๋จ์ด ์์ํ๋ ์์ ์ ์๋ฏธํ๋ค. ์ง์ ์ ์ด๋ผ๋ ์๋ฏธ๋ก, ๊ฒฐ๊ณผ์ ์ผ๋ก ์ํธ๋ฆฌ ํฌ์ธํธ๋ main ํจ์๋ผ๊ณ ๋ณผ ์ ์๋ค.์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด, ํ๋์ ํ์ด
XCode์์ ์ง์ํ๋ ๊ธฐ๋ฅ์ผ๋ก, XCode์์ ๋ง๋ ์ฑ์ ์คํ์์ผ ํธ๋ํฐ์ ์๋๋๋ ์ฑ์ ๋ฏธ๋ฆฌ ํ์ธํด ๋ณผ ์ ์๋ ์๋น์คXCode ์คํ ํ, XCode๋ฅผ ๋๋ฅธ ํ Preferences๋ฅผ ํด๋ฆญ์ดํ Components๋ฅผ ํด๋ฆญํ๋ฉด ๋ค์ํ XCode์ ์๋ฎฌ๋ ์ดํฐ ๋ฒ์ ์ ์ค์น
ํธ๋ํฐ ํ๋ฉด์ ๋ณผ๋์ ํธ๋ํฐ ํ๋ฉด์ ์ฝ 1์ด์ 60๋ฒ์ฉ ํ๋ฉด์ ์๋ก ๊ทธ๋ฆฌ๋ ๊ฒ! => ์ค์ ํ๋ฉด์ ๋ค์ ๊ทธ๋ฆฌ๋ ์ผ์ Thread1(๋ฉ์ธ์ฐ๋ ๋) ์์ ๋ด๋น (๋ฐ๋ณต๋ฌธ์ ํตํด ํ๋ฉด์ ๋ค์ ๊ทธ๋ฆผ)์ด๋ 1์ด์ 60๋ฒ์ฉ ํ๋ฉด์ ๊ทธ๋ฆฐ๋ค๋ ์ฉ์ด : ํ๋ฉด ์ฃผ์ฌ์จ 60Hz์ฌ๋ฌ ์์ ๋ค์
์ค์ํํธ์์ ์ซ์ ๋ฆฌํฐ๋ด์ ํ๊ธฐํ๋ ๋ฐฉ๋ฒvar num: Int = 25๊ฐ ์ง๋ฒ์ ์๋ ์ง์ ์จ ๋ฃ๋๊ฒ๋ ๊ฐ๋ฅnum = 0b0011001 // 2์ง๋ฒnum = 0o31 // 8์ง๋ฒnum = 0x19 // 16์ง๋ฒ\-ํฐ ์ซ์๋ ์ฝ๊ธฐ ์ฝ๊ฒ ์ธ๋๋ฐ๋ฅผ ๋ถ์ด๋ ๊ฒ๋ ๊ฐ๋ฅnum =
์ต์ ๋ ํ์ ์ด๋ผ๋ ์๋ก์ด ํ์ ์!Int -> Int? ์ด๋ Int? ๋ ์ต์ ๋ ์ ์ํ ํ์ ์ผ๋ก Int๋ผ๋ ์ ์ํ ํ์ + nil ํํ๋ฅผ ์์๊ฐ์ผ๋ก ๋๋ฌ์ผ ํํ (Enumํ์ )\*nil์ ์ค์ ๊ฐ์ด ์๋ ๊ฒ์ด ์๋๊ณ , "๊ฐ์ด ์์์ ์๋ฏธํ๋ค"๊ณ ํ๋จ๊ณ ์์ฌ์๋ ๊ฒnil
์ปค์คํ ํ์ ์๋ ๋ฉ์๋ ํํ๋ก ์ฐ์ฐ์ (+,-,== ๋ฑ)์ ๊ตฌํ ๊ฐ๋ฅ : ์ฐ์ฐ์๋ ์ฌ์ค์ ๋ด๋ถ์ ์ผ๋ก ๋ค ๊ตฌํ์ด ๋์ด์๋ ํ์ ๋ฉ์๋์.์ฐ์ฐ์ : ํ์ . ํจ์์ด๋ฆ(ํ๋ผ๋ฏธํฐ: ํ์ ) ํํ๋ก ์คํํ์ง ์๋ ํน๋ณํ ํํ์ด ํ์ ๋ฉ์๋์struct Vector2D { var x
UI ์์ ์ ํ๋ ๋์ค, Button์ ์ง์ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํ ํ ํฌ๊ธฐ ์กฐ์ ์ ํ๊ณ ์ถ์ด ์์ฐ์ค๋ Button์ ์๋ image ๋ฅผ ๋ฃ์ด์ฃผ์๋๋์์ ๊ฐ์ด ๋ฒํผ์์ญ์ ๋์ด์ ํ๋๋๋ ๊ฒ์ ๋ณผ ์ ์์๋ค... ์ด๊ฒ ์ ๊ฒ ์๋ํด๋ณด๋ค๊ฐ ์ฐพ์ ๋ฐฉ๋ฒ์ ์ ์ด๋๋ ค๊ณ ํ๋ค.์ฒซ ๋ฒ์งธ๋ก,
์ด๊ฑฐํ : ํ์ ์์ฒด๋ฅผ ํ์ ๋ ์ฌ๋ก ์์์ ์ ์ํ ์ ์๋ ํ์ ์ ์๋ฏธํจ.ex) ๋ ์ง(์,ํ,์,๋ชฉ,๊ธ,ํ ,์ผ), ๊ฐ์๋ฐ์๋ณด(๊ฐ์,๋ฐ์,๋ณด), ๊ณ์ (๋ด,์ฌ๋ฆ,๊ฐ์,๊ฒจ์ธ)์์๊ฐ์ ์ด๊ฑฐํ case ๋ง๊ณ ๋ ๋ด๋ถ์์ ๋ ๋ฆฝ์ ์ธ ๊ฐ์ ์ ์ฅํด ๋ถ๋ฌ๋ผ ์ ์๋ ๊ฒ!๋ง์ฝ ์์๊ฐ์ ์ค์
iOS 15๋ถํฐ ์๋ก์ด Formatted API๊ฐ ๋ฑ์ฅํ๋ค๊ณ ํ๋ค. ์ซ์, ๋ ์ง, ์๊ฐ ๋ฑ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์๊ฐ ๋ณด๊ธฐ ํธ๋ฆฌํ ๋ฌธ์์ด๋ก ๋ณํํด ์ฃผ๋ ๊ธฐ๋ฅ์ผ๋ก, ๋ด๊ฐ ์ฒ์ Formatted๋ฅผ ์ ํ๊ฑด DateFormatter() ์ ์ฌ์ฉํ์ฌ ํ์ฌ ์๊ฐ์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ์
ํ๋ฉด ์ ํ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง show : push - pop modal : present - dismiss show : ๋ค์ ํ๋ฉด์ผ๋ก ์ ํํ ๋ ์ฌ์ฉ modal : ์ด๋ฒคํธ๊ฐ์ ํน์ ํ๋ฉด์ผ๋ก ๋์ด๊ฐ ๋ ์ฌ์ฉ ๊ทธ๋ฅ show๋ฅผ ๋์ฐ๋ฉด? -> ์๋์์ ์๋ก! nav
๋ค ์ค์ ์ ๋ง๊ฒ ํ๊ณ , Outlet ์ฐ๊ฒฐ๋ ๋ฌธ์ ์๋๊ฑฐ ๊ฐ๊ณ , ์ค๋ฅ๋ ์๋๋ฐ ์คํ์ด ์๋๋ค?์ด๋ ์ด๋ถ๋ถ์ ํ์ธ!Inherit Module From Target ์ค์ ํด์ฃผ์ด์ผ ํจOutletCollection vs UILabel ์ด๋ค ๊ฒ์ด ์ข์๊น?init์ ์ฌ์ค ์๋ต๋์ด์
์ด๋ ๋ฆฌ์คํฐ๋ ์ค๋ธ์ ํธ๋ UIResponder์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฅดํจ๋ค. : ex) UIView, UIViewController ๋ฑ๋ฆฌ์คํฐ๋๋ Event Raw Data๋ฅผ ๋ฐ์ ์ ์์๋ฆฌ์คํฐ๋๊ฐ ์ด๋ฒคํธ๋ฅผ ๋ฐ์๋ค๋ฉด?์ด๋ฒคํธ -> ๋ฆฌ์คํฐ๋ -> ์ง์ ์ฒ๋ฆฌํ๋ค or ๋ค์
์์ฒญ์ด ์์ด์ผ ์๋ต์ ํ๋ค์์ฒญํ ๋ ๊ตฌ์ฒด์ ์ธ ์ ๋ณด๋ฅผ ์์ฒญํด์ผ ํ๋ค.์์ ๊ฐ์ ๊ฒ์ HTTP Method๋ผ๊ณ ํจ.get : ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐpost : ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐput : ๋ฐ์ดํฐ ์์ ํ๊ธฐdelete : ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ์ธ์ฆํคApp -> Server : requestre
ํน์ ์ฉ๋๋ก ์ธ์คํด์ค๋ฅผ ํ๋๋ง ์์ฑํ์ฌ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๋์์ธ ์ ํ.ํ์ง๋ง ์ด๋ ๊ฒ ๋งํ๋ฉด ์ดํดํ๊ธฐ ์ด๋ ต๋ค. ์กฐ๊ธ ๋ ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด, ์ธ์คํด์ค๋ฅผ ์์ฑ๋ ๋ ํ๋ฒ๋ง ์์ฑํด์ ์ ์ญ์ ๋๊ณ , private๋ก ์ ๊ทผ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด instance์๋ง ์ ๊ทผ
json์ ๋ฐ๋ก ์ ๊ทผ ๊ฐ๋ฅjson"bnusNo"๋ฐฐ์ด์ ํํ์ธ jsonimage_url์ ์ ๊ทผํ๋ ค๋ฉด? json0 ๋ง์ฝ ๋ฏธ์ ์ํ์๋ธ:๊ณ ์คํธํ๋กํ ์ฝ์ด๋ผ๋ ๋ฌด๋น์ด๋ฆ์ ์ ๊ทผํ๊ณ ์ถ๋ค๋ฉด? json"dailyBoxOfficeList""movieNm".stringValue์ด๋ ๊ฒ ํด
XCode์์ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ , ๋ง๋ค ๋ ํ์์ ์ฌ์ฉํ๋ App์ผ๋ก ๋ง๋๋ ๊ฒ์ด ์๋ Framework๋ฅผ ํด๋ฆญ!Framework๋ก ๋ง๋ค์ด ์ฃผ๋ฉด ํ์์์ฒ๋ผ ๋ง๋ App๊ณผ๋ ๋ฌ๋ฆฌ ์์ ๊ฐ์ด ๋ํ๋๊ฒ ๋๋ค. ํด๋๊ฐ ๋๊ฐ๊ฐ ์๋๋ฐ, ์์ Framework ํด๋์์ s
์ง๊ธ๊น์ง๋ swiftJSON / Alamofire์ ์ฌ์ฉํ์ฌ API์์ ๋ฐ์์จ JSON ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๋ค. ํ์ง๋ง swiftyJSON์ ์ฌ์ฉํ๊ฒ ๋๋ฉด, ๋์ค์ ๋ง์ ๋ฐ์ดํฐ๋ค์ ์ฒ๋ฆฌํ ๋ ์ฒ๋ฆฌ ์๊ฐ์ด ๋์ด๋๊ฒ ๋๋ ๋จ์ ์ด ์๋ค. ์ด๋ฅผ ๊ฐ์ ํ ๋ฐฉ๋ฒ์ด Codable์ด๋ค.Cod
์ง๊ธ๊น์ง๋ API ํต์ ์ ์ํด Alamofire์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์๋ค. ํ์ง๋ง Alamofire์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฐจ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์ฌ๊ฐ๊ธฐ ์ํด์ apple์ด ์ ๊ณตํ๋ URLSession์ ์ฌ์ฉํ์ฌ API์ ํต์ ํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด