์ ๋ชฉ์ด.. ๊ธธ๋ค ๐ฅฒ ๋ทฐ๋ฅผ ์๋ ๋ฐฉ๋ฒ์ด ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์๋๋ฐ push, present๋ก ๋๋ ์ ์๋ค. push๋ navigation controller๋ฅผ ๊ฐ์ธ๊ณ ์๋ ๋ทฐ์์ ๊ฐ๋ฅํ๊ณ , present๋ ๊ทธ๋ ์ง ์์ง๋ง present์์ ๋ทฐ๋ฅผ push ํ๋๊ฑด ๋ถ๊ฐ๋ฅํ๋ค. push -> navigation controller๋ก ๊ฐ์ผ ๋ทฐ ์์๋ง ๊ฐ๋ฅ present -> ๊ทธ๋ฅ ๋ทฐ ์์ ๊ฐ๋ฅ ์๋ฌดํผ ์ด๋ฐ ๊ฐ๋
์ ์ ์ ๋ก ํ๋ฉด presentํ ๋ทฐ ์์๋ push๊ฐ ๋ถ๊ฐ๋ฅํ์ง๋ง, presentํ ๋ทฐ๋ฅผ navigation controller๋ก ๊ฐ์ธ๋ฉด ๊ทธ ์์ push๊ฐ ๊ฐ๋ฅํ๋ค. ๋ด๊ฐ ๊ถ๊ธํ๋ ์ํฉ์ ๋ค์๊ณผ ๊ฐ๋ค VC1์์ VC2๋ฅผ Pushํ๋ ์ค Navigation controller๋ฅผ ๊ฐ์ผ VC3 Present๋ฅผ ํ์ฌ ..
iOS
์ฝ๋๋ก ๋ทฐ๋ฅผ ๊ตฌ์ฑํ ๊ฒฝํ์ ๋ช๋ฒ ์์ง๋ง ์คํ ๋ฆฌ ๋ณด๋๋ก ํ๋ฉด์ ๊ตฌ์ฑํ๋ ์ต์ํด์ ธ์ ๋ค์ ๊ธฐ์ต์์์ ์ฌ๋ผ์ก๋ค ใ
.ใ
์๋ฌด๋๋ ์ง๊ธ ๋ค๋๋ ํ์ฌ์์๋ ์คํ ๋ฆฌ๋ณด๋๋ก ํ๋ฉด์ ๊ตฌ์ฑํ๋ ์คํ ๋ฆฌ๋ณด๋๋ ๋ฐ๋ก ์ฐ์ตํ์ง ์์๋ ์ต์ํด์ง ์ ๋ฐ์ ์๋ ํ๊ฒฝ์ด๊ธฐ ๋๋ฌธ์ ํผ์์ ํ๋ ์ฐ์ต ์์ ๋ ํ๋ก์ ํธ๋ ์ฝ๋๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๋ด์ผ๊ฒ ๋ค! ๊ตฌ์ฑํ ํ๋ฉด์ ์๋์ ๊ฐ๋ค. UIViewController - UIView - UIView - UIButton ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ์กฐ๊ธ ๋ ์์ธํ ๋ณด์๋ฉด ... ์ด๋ฐ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. (์ด ๊ธฐ๋ฅ ๋๋ฌด ์ข๋ค ๐ซถ๐ป) ๋จผ์ ํ๋ฉด์ ๊ตฌ์ฑํ๋ ์ ์ฒด์ ์ธ ํ์ ๋ค์๊ณผ ๊ฐ๋ค. // ์๋ก์ด ๋ทฐ ์์ฑ let newView = UIView() // ๊ธฐ๋ณธ ๋ทฐ์ ์ถ๊ฐ view.addSubview(newV..
AutoLayout์ ๊ณต๋ถํ๋ฉด์ landscape์ portrait์ ๋ฐ๋ฅธ ํ๋ฉด ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ๊ณต๋ถํ๋ค. ๋ด๊ฐ ๋ค์ ๊ฐ์๊ฐ ์กฐ๊ธ ์๋ ๊ฐ์๋ผ Vary for Traits์ ์ฌ์ฉํ ํ๋ฉด๊ตฌ์ฑ๋ฐฉ์์ ์๊ฐํ๋๋ฐ, ๋ด๊ฐ ํ์ฌ ๊ณต๋ถํ๋ 23๋
3์ ์์ ์๋ ์ด ๊ธฐ๋ฅ์ด ์์๋ค. ์ฐพ์๋ณด๋ xcode 13 ์
๋ฐ์ดํธ ๋ถํฐ ์ด ๋ฒํผ์ด ์ฌ๋ผ์ ธ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผํ๋ค. ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ฐพ๋ ์ค ์ฌ๋๋ค์ด ์ถ์ฒํด์ค ๋์์์ ๋ณด๊ฒ ๋์๊ณ , ์ฌ๊ธฐ์ ํด๋ต์ ์ป์ ์ ์์๋ค. ๋๋ ์ฒซ๋ฒ์งธ ์ธ๋ก ํ๋ฉด์์๋ 2x2๋ก ๊ตฌ์ฑ๋ ๋ค๋ชจ ๋ฐ์ค๋ฅผ ๊ฐ๋ก ํ๋ฉด์ผ๋๋ 1x4๋ก ๋ํ๋๋๋ก ๊ตฌ์ฑํ๊ณ ์ถ์๋ค. (์ด์ฐ๋๊ฑด ๊ฐ๋ก ์ธ๋ก ํ๋ฉด ๊ตฌ์ฑ์ ๋ค๋ฅด๊ฒ ํ๊ณ ์ถ์๋ค!) ์์ 1. ๋จผ์ ์ธ๋ก ํ๋ฉด์ผ ๋ ๋ด๊ฐ ์ํ๋ Constraints๋ฅผ ์ถ๊ฐํ๋ค. 2. Constraint..
TableView๋ TextField์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ ๊ฐ๋ tableView.delegate = self ๋ฅผ ์ ์ด์ฃผ์ง ์์ ๋์์ด ์๋ ๋๊ฐ ์์๋ค. ๋งค๋ฒ ์ต๊ด์ ์ผ๋ก ์ด ์ฝ๋๋ฅผ ์ ์ด์ฃผ์์ง๋ง ์ ์ด๊ฑธ ์ ์ด์ผ ํ๋์ง ์์๋ณด๊ณ ์ ํ๋ค. ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด์ด๋? ์ด๋ฆ ๊ทธ๋๋ก ์์ํ๋ค ๋ผ๋ ์๋ฏธ์ด๋ค. ์ฆ ์์์๋ฅผ ๊ฐ๊ณ ์๋ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์๊ฒ ์์ ์ ์ผ์ ์์ํ๋ ํํ์ ๋์์ธ ํจํด์ผ๋ก ๊ฐ์ฒด์ ๊ฐ์ฒด๊ฐ์ ๋ํ๋ผ๊ณ ์๊ฐํ ์ ์๋ค. class ViewController: UITableViewDelegate { func tableViewFunction() { print("tableview ์ฒซ๋ฒ์งธ ํจ์ ์คํ") } // ์คํ๋ถ let tableView = UITableView() tableView.delegate ..
1. heap๋ณด๋ค๋ stack์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น class๋ณด๋จ struct๋ enum์ ์ฌ์ฉํ๋ค. class๋ heapํ ๋น, struct๋ enum์ stackํ ๋น์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ํ ๋น class: heap struct: stack enum: stack heap ⇒ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉํ์ง ์์ ์์ญ์ ์ฐพ์ ํ ๋นํ๋ ๋ฐฉ์(๋์ ํ ๋น)์ด๋ฏ๋ก ์ข ๋ณต์กํจ (์๋๊ฐ ๋๋ฆผ) stack ⇒ LIFO ๋ฐฉ์์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๊ฐ ๋จ์ํจ (์๋๊ฐ ๋น ๋ฆ, O(1)) 2. ์ ์ ๋์คํจ์น(static Dispatch)๋ฅผ ์งํฅ ์ผ๋ฐ์ ์ผ๋ก swift์์๋ dynamic dispatch๋ฅผ ์ฌ์ฉํ๋๋ก ๋์ด์์ ํด๋์ค(๋ฉ์๋, ํ๋กํผํฐ)๋ฅผ ์ ์ธํ ๋ ์์๋์ง ์๋ ํด๋์ค์ final์ ๋ถ์ด๋ฉด ์ฑ๋ฅ์ด ํฅ์๋จ ํด๋์ค๋ dynamic dispatch..
struct ๊ฐ ํ์
(๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ๊ฐ์ ๋ณต์ฌํ์ฌ ์ ๋ฌ) ์์ ๋ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์๋์ ๊ฑฐ ⇒ ํจ์ ์ข
๋ฃ(์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์), ํ๋ก๊ทธ๋จ ์ข
๋ฃ(static, ์ ์ญ๋ณ์) ์ธ์คํด์ค ์์๋ก ์ ์ธ์ ์ ์ฅ์์ฑ ์ ๋ถ ์์๋ก ์ ์ธ ๋ฉ์๋ ๋ด์์ ์์ฑ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ ์๋ฉธ์ ์์ class ์ฐธ์กฐ ํ์
(๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์น๋ฅผ ์ ๋ฌ) ์์ ๊ฐ๋ฅ ARC๋ก ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ธ์คํด์ค ์์๋ก ์ ์ธํด๋ ๊ฐ๋ฅดํค๋ let/ var ์ ์ธ์ ๋ฐ๋ฆ ๋ฉ์๋ ๋ด์์ ์์ฑ ๋ณ๊ฒฝ ๊ฐ๋ฅ ์๋ฉธ์ ์์ ๊ฐ์ฒด ๋์ ์ธ์คํด์ค๋ผ๋ ์ฉ์ด ์ฌ์ฉ enum ํ์ ๋ ์ฌ๋ก(case) ์์์ ์ ์ํ ์ ์๋ ํ์
(์์ผ, ์ฑ๋ณ ..) ์ผ์ด์ค๊ฐ ์ ํ๊ฐ๋ฅํ ๊ฐ์ง ์๋ก ์ ํด์ ธ ์์ ๋ ์ ์ ⇒ ๋ค๋ฅธ๊ฒ ๋ฃ์ผ๋ฉด ํ์
์๋ฌ ์์ ๋ถ๊ฐ๋ฅ ๊ณตํต์ ๊ฐ๋ฐ์๊ฐ ๋ง์๋๋ก ๋ง๋ค..
๊ธฐ์ด๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ๋ค์ง๋ฉด์ ํ์
์ฃผ์๊ณผ ํ์
์ถ๋ก ์ ๊ฐ๋
์ ์ ํ๊ฒ ๋์๋ค. ํ์
์ถ๋ก ์ ๊ธฐ์กด์ ์๊ณ ์์์ง๋ง ํ์
์ฃผ์์ด๋ผ๋ ๋จ์ด๋ ์ด๋ฒ์ ์ฒ์ ์ ํ๊ฒ ๋์์ผ๋ ์ด๋ฏธ ์๊ณ ์๋ ๊ฐ๋
์ด๊ธด ํ๋ค. ๋ ๊ฐ๋
์ ๋ชจ๋ ๋ณ์๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉ๋๋ ๊ฐ๋
์ด๋ค. 1. ํ์
์ฃผ์(Type Annotation) var name: String var name: String = "Lily" ํ์
์ฃผ์์ ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ณ์์ ์๋ฃํ๊น์ง ํจ๊ป ๋ช
์ํด์ฃผ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ฒซ๋ฒ์งธ ์ค ์ฒ๋ผ name์ด๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด์ String์ด๋ผ๋ ์๋ฃํ๊น์ง ํจ๊ป ์ง์ ํด์ค๋ค. ๋๋ฒ์งธ ์ค ์ฒ๋ผ ์ ์ธ๊ณผ ๋์์ ๊ฐ์ ์ง์ ํด์ค ์ ์๋ค. 2. ํ์
์ถ๋ก (Type Inference) var name = "Lily" ํ์
์ฃผ์๊ณผ ๋ฌ๋ฆฌ ๋ณ์๋ฅผ ์ ์ธํ ..
๋ณธ ๊ฒ์๋ฌผ์ OAuth๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ด ์๋ ์ ๊ฐ ์๊ฐํ ํน์ง์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. ์ด๋ฒ์ ๋ค์ด์ด๋ฆฌ ์ฑ์ ์๋ก ์
๋ฐ์ดํธํ๋ฉด์ ์์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๋์
ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๊ธฐ์กด์ CoreData๋ก ์ฑ ๋ด์ ์ ์ฅํ๋ ๋ค์ด์ด๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ค ์์ ํ๊ฒ ์ ์ฅํ๊ธฐ ์ํด firebase์ ์ ์ฅํ๊ธฐ ์ํด์์๋ค. ์ ํ ์ ์ฑ
์ ๋ฐ๋ผ Apple๋ก๊ทธ์ธ์ ๊ตฌํํ์ง ์์ผ๋ฉด ๋ฆฌ์ ์ฌ์ ๊ฐ ๋๋ค. ๐
๋ฐ๋ผ์ Apple Login์ ๋น์ฐํ ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ , ์กฐ์ฌํด๋ณด๋ ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ์์
๋ก๊ทธ์ธ์ด Kakao๋ผ๋ ๊ฒ์ ์๊ฒ๋์๋ค. ์ฌ์ฉ์์ ํธ์๋ฅผ ์ํด Kakao๋ฅผ ์ถ๊ฐํ๊ณ , ์ถ๊ฐ์ ์ผ๋ก ์ ์ ๊ตฌํํด๋ณธ ๊ฒฝํ์ด ์๋ Google๋ก๊ทธ์ธ๋ ํจ๊ป ์ ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. 1. Apple ์ ํ๋ก๊ทธ์ธ์ ๊ผญ ์ ํ ๊ฐ๋ฐ์ ๊ณ์ ์ด ์์ด์ผ ํ๋ค. 1๋
์..