๐ŸŒฑ ์ƒˆ์‹น ์˜๋“ฑํฌ iOS ์•ฑ๊ฐœ๋ฐœ์ž ๋ฐ๋ท”๊ณผ์ • 3๊ธฐ ํ›„๊ธฐ
ยท
๐ŸŒฑ SeSAC iOS 3๊ธฐ
์•ˆ๋…•ํ•˜์„ธ์š”, Callie์ž…๋‹ˆ๋‹ค. ๋ฏธ๋ฃจ๊ณ  ๋ฏธ๋ค˜๋˜ ์ƒˆ์‹น ์˜๋“ฑํฌ iOS ์•ฑ๊ฐœ๋ฐœ์ž ๋ฐ๋ท”๊ณผ์ • 3๊ธฐ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ์ œ๊ฐ€ ํ›„๊ธฐ๋ฅผ ๋ฏธ๋ฃจ๋Š” ๋™์•ˆ ๋„๋ด‰ ์บ ํผ์Šค์˜ 4๊ธฐ๋„ ์ˆ˜๋ฃŒํ•˜๊ณ , ์˜๋“ฑํฌ ์บ ํผ์Šค์˜ 5๊ธฐ ์ˆ˜๊ฐ•์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ตฌ์š”. ์•ž์œผ๋กœ ๋ช‡ ๋ฒˆ์˜ ๊ณผ์ •์ด ๋” ์—ด๋ฆด ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์ง€๋‚œ 6๊ฐœ์›” ๊ฐ„์˜ ๊ต์œก๊ธฐ๊ฐ„์ด ํ˜„์žฌ iOS ๊ฐœ๋ฐœ์ž๋กœ ํ˜„์—…์—์„œ ์ผํ•˜๊ฒŒ ๋œ ์ œ๊ฒŒ ์†Œ์ค‘ํ•œ ๊ฒฝํ—˜์ด์—ˆ๋˜ ๋งŒํผ ๊ทธ๋Ÿฐ ๋ถ„๋“ค์ด ๋” ๋งŽ์•„์ง€๊ธธ ๋ฐ”๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. iOS์˜ ์‹œ์ž‘์„ ํ•ด๋‹น ๊ณผ์ •์œผ๋กœ ํ–ˆ๋‹ค๋Š” ๊ฒŒ ์–ผ๋งˆ๋‚˜ ํฐ ํ–‰์šด์ด์—ˆ๋Š”์ง€ ํ˜„์—…์— ์ข…์‚ฌํ•˜๊ฒŒ ๋œ ์ดํ›„ ๋งค์ผ๋งค์ผ ๊นจ๋‹ซ๊ณ  ์žˆ๋Š” ์ค‘์ž…๋‹ˆ๋‹ค...ใ…Žใ…Ž            โœ”๏ธŽ ME์ผ๋‹จ, ์ €๋Š” ๋น„์ „๊ณต์ž์ž…๋‹ˆ๋‹ค. '๋น„์ „๊ณต์ž, ๋„ˆ๋‘ ํ• ์ˆ˜์žˆ์–ด!'์—์„œ ๋„ˆ๋ฅผ ๋งก๊ณ  ์žˆ์–ด์š”. ์‚ด๋ฉด์„œ ์ฝ”๋”ฉ์€ ํ•ด ๋ณธ ์ ๋„ ์—†์—ˆ๊ณ ,..
[SeSAC] iOS ๊ฐœ์ธ์•ฑ <์ง๊ด€๋กœ๊ทธ> ์ถœ์‹œ ํšŒ๊ณ 
ยท
๐ŸŒฑ SeSAC iOS 3๊ธฐ
์•ˆ๋…•ํ•˜์„ธ์š”, Callie ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•œ์ง€ 3๊ฐœ์›” ์กฐ๊ธˆ ์•ˆ ๋œ ๊ฐœ๋ฐœ ๋‰ด๋น„๋กœ์„œ ๊ฐœ์ธ์•ฑ ์ถœ์‹œ๊ฐ€ ๊ฐ€๋Šฅํ• ๊นŒ? ๋ผ๋Š” ๊ฑฑ์ •์„ ์ž์ฃผ ํ–ˆ์—ˆ๋Š”๋ฐ์š”, ์ €์˜ ๊ฒฝํ—˜์ /๊ฐœ๋ฐœ์  ๋ถ€์กฑํ•จ์€ ๋ฉ˜ํ† ๋‹˜๋“ค๊ณผ ๋™๊ธฐ๋ถ„๋“ค์˜ ๋„์›€์œผ๋กœ ์ •ํ•ด์ง„ ๊ธฐ๊ฐ„ ๋‚ด์— ์•ฑ ์ถœ์‹œ๋ผ๋Š” ๋ชฉํ‘œ๋ฅผ ๋ฌด์‚ฌํžˆ ์ด๋ฃฐ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋งฌ ๋•Œ๋งˆ๋‹ค ๊ธฐ๊ฐ€ ๋ง‰ํžˆ๊ฒŒ ์ œ ๋ˆˆ๋†’์ด์— ๋งž์ถฐ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์‹œ๋˜ ๋ฉ˜ํ† ๋‹˜๋“ค๊ณผ ๋™๊ธฐ๋ถ„๋“ค๊ป˜ ๋ƒ…๋‹ค ๊ฐ์‚ฌํ•จ๋ถ€ํ„ฐ ์ „ํ•˜๋Š” ์ €์˜ ์ฒซ ๋ฒˆ์งธ ์•ฑ ํšŒ๊ณ  ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.         0.- ๊ฐœ๋ฐœ๊ธฐ๊ฐ„: 2023๋…„ 9์›” 25์ผ ~ 2023๋…„ 10์›” 25์ผ (์•ฝ 3์ฃผ)- ๊ฐœ๋ฐœํ™˜๊ฒฝ: Xcode: 15,  iOS: 15์ด์ƒ, swift: 5.9    1. ์•ฑ ์†Œ๊ฐœ ๐Ÿ€โšพ๏ธ๐Ÿโšฝ๏ธ    ์•ฑ์Šคํ† ์–ด ๋งํฌ: https://apps.apple.com/kr/app/%..
๐ŸŒฑ 7์ฃผ์ฐจ: URLSession, Access Control, ARC
ยท
๐ŸŒฑ SeSAC iOS 3๊ธฐ
7์ฃผ์ฐจ ๊ธฐ๋ก: URLSession, Access Control, ARC ๐Ÿง ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜? - ์ฝ”๋“œ ์ชผ๊ฐœ๊ธฐ (Base ViewController, View, TableView, CollectionView) - ์—ญ์œผ๋กœ ๊ฐ’์ „๋‹ฌ - Access Control ์ ‘๊ทผ ์ œ์–ด์ž - WKWebView - URLSession - ARC - Any vs AnyObject : Any (๋ชจ๋“  ํƒ€์ž…์„ ๋ฐ›์Œ), AnyObject (ํด๋ž˜์Šค์—์„œ๋งŒ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ์•ฝ) (+) viewController Naming ํ•˜๋Š” ๋ฒ•: main, detail ๊ฐ™์€ ์ด๋ฆ„ ์ง“๊ธฐ๋Š” ์ง€์–‘ํ•˜๊ธฐ. ํ›—๋‚  ์—…๋ฐ์ดํŠธ ๊ณผ์ •์—์„œ ๊ทธ ์—ญํ• ์ด ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์ง€์„ ๊ฒƒ์„ ๊ณ ๋ คํ•ด๋ณผ ๊ฒƒ. ๐Ÿ”จ ์˜ˆ์ œ - Photogram - Media Pro..
๐ŸŒฑ 6์ฃผ์ฐจ: NotificationCenter, CLLocationManager, MKMapView, UIPageViewController
ยท
๐ŸŒฑ SeSAC iOS 3๊ธฐ
6์ฃผ์ฐจ ๊ธฐ๋ก: NotificationCenter, Map, UIPageViewController ๐Ÿง ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜? - NotificationCenter - CLLocationManager, MKMapView (์œ„์น˜ ๊ถŒํ•œ) - UIPageViewController - Storyboard ์—†์ด ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ UI๋งŒ๋“ค๊ธฐ (snapKit ์‚ฌ์šฉ) - ์นด๋ฉ”๋ผ ๊ถŒํ•œ + ๊ฐค๋Ÿฌ๋ฆฌ ๊ถŒํ•œ ( UIImagePickerController, UIFontPickerViewController, UIColorPickerViewController) - ์ œ๋„ค๋ฆญ : ํƒ€์ž…์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•œ ์š”์†Œ ๐Ÿ”จ ์˜ˆ์ œ - ํ…Œ์ด๋ธ”๋ทฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋งŒ๋“ค๊ธฐ - onboardingViewController ๋งŒ๋“ค๊ธฐ - CLLocationManager, MKMa..
๐ŸŒฑ 5์ฃผ์ฐจ: API ํ†ต์‹ , Codable, DispatchGroup, ๋ณต์Šต
ยท
๐ŸŒฑ SeSAC iOS 3๊ธฐ
5์ฃผ์ฐจ ๊ธฐ๋ก: API ํ†ต์‹ , Codable, DispatchGroup ๐Ÿง ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜? - codable (from JSON) - API ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์‹ฌํ™” - DispatchGroup (APIํ†ต์‹ ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ) - UNUserNotificationCenter (์•Œ๋ฆผ ๋„์šฐ๊ธฐ) - ์™ธ๋ถ€ ํฐํŠธ ์‚ฝ์ž… ๐Ÿ”จ ์˜ˆ์ œ - NASA sync / async๋กœ ์‚ฌ์ง„ ๋ฐ›์œผ๋ฉฐ ์ˆœ์„œ ํ™•์ธํ•ด๋ณด๊ธฐ - PosterViewController ๐Ÿ“š ๊ณผ์ œ - 4์ฃผ์ฐจ API ํ†ต์‹  (JSON -> Codable) ํ”„๋กœ์ ํŠธ ๊ฐœ์„  ex.์นด์นด์˜คAPI - Media Project ๊ฐœ์„  + ์‘์šฉ + ์‹ฌํ™” - ๋‹ค๋งˆ๊ณ ์น˜ ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง (์ˆ˜์—… ๋•Œ ๋ฐฐ์šด ์š”์†Œ๋“ค๋กœ ์ถ”๊ฐ€ ๋ฐ ๊ฐœ์„ ) ๐Ÿ’ฆ ๋ณต๊ธฐ โœ”๏ธ Concurrency Programming GCD : Gr..
๐ŸŒฑ 4์ฃผ์ฐจ: ๋„คํŠธ์›Œํฌ ํ†ต์‹ 
ยท
๐ŸŒฑ SeSAC iOS 3๊ธฐ
4์ฃผ์ฐจ ๊ธฐ๋ก : ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๐Ÿง ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜? ๋”๋ณด๊ธฐ - alamofire & swfityJSON์„ ์‚ฌ์šฉํ•ด์„œ API๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„ ์‘๋‹ต๋ฐ›๊ธฐ - key๋ฅผ .gitignore์™€ APIKey ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๋”ฐ๋กœ ์ €์žฅํ•˜๊ธฐ (๊นƒํ—™์— ์˜ฌ๋ฆด ๋•Œ ํ‚ค ๋…ธ์ถœ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ, ๊ธฐ๋ฐ€์œ ์ง€) - ๋กœ๋”ฉ๋ฐ” ํ™œ์šฉ ๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ์ฃผ๊ธฐ => ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๊ณ  ์žˆ๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ '๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์žˆ์–ด~' ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ. - ์ผ๊ธ‰๊ฐ์ฒด & ํด๋กœ์ € (๋ฌธ๋ฒ•) - ํ‰๊ฐ€๊ณผ์ œ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•; protocol, userDefaults, singleton - ๋™๊ธฐ/๋น„๋™๊ธฐ ๐Ÿ”จ ์˜ˆ์ œ ๋”๋ณด๊ธฐ - ์นด์นด์˜ค ๊ฒ€์ƒ‰ API ํ™œ์šฉ - ๋„ค์ด๋ฒ„ ํŒŒํŒŒ๊ณ  API ํ™œ์šฉ ๐Ÿ“š ๊ณผ์ œ ๋”๋ณด๊ธฐ - ๋กœ๋˜API๋ฅผ ์ด์šฉํ•ด์„œ ๋กœ๋˜ ๋‹น์ฒจ๋ฒˆํ˜ธ ์ผ๊ณฑ์ž๋ฆฌ ๋ฝ‘์•„๋‚ด๊ธฐ. (UIPic..