Skip to content

lina0322/iOS_yagom_starter_camp

Repository files navigation

โ›บ๏ธiOS_yagom_stater_camp

์ €๋Š” ์ด repository์— 2020๋…„ 11์›”๋ถ€ํ„ฐ 2021๋…„ 4์›”๊นŒ์ง€ ์ด๋ฃจ์–ด์ง„, yagom ios ์Šคํƒ€ํ„ฐ ์บ ํ”„์— 1๊ธฐ๋กœ ์ฐธ์—ฌํ•˜์—ฌ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โญ๏ธ ๋ชฉ์ฐจ - ์ฃผ์š” ํ”„๋กœ์ ํŠธ

์•„ํ™‰๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์˜คํ”ˆ ๋งˆ์ผ“

์ผ๊ณฑ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์€ํ–‰ ์ฐฝ๊ตฌ ๋งค๋‹ˆ์ €

๐Ÿ“– ๋ชฉ์ฐจ - ์ตœ์‹ ์ˆœ์œผ๋กœ ์ •๋ ฌ

์—ด๋‘๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ํ”„๋กœ์ ํŠธ ๋งค๋‹ˆ์ € ์„œ๋ฒ„

์—ดํ•œ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ํ”„๋กœ์ ํŠธ ๋งค๋‹ˆ์ € ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

์—ด๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋ฉ”๋ชจ์žฅ

์•„ํ™‰๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์˜คํ”ˆ ๋งˆ์ผ“

์—ฌ๋Ÿ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋‚ ์”จ์ •๋ณด

์ผ๊ณฑ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์€ํ–‰ ์ฐฝ๊ตฌ ๋งค๋‹ˆ์ €

์—ฌ์„ฏ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋งŒ๊ตญ๋ฐ•๋žŒํšŒ

๋‹ค์„ฏ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๊ณ„์‚ฐ๊ธฐ

๋„ค๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ํšŒ์›๊ฐ€์ž…

์„ธ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์ฃผ์Šค ๋ฉ”์ด์ปค

๋‘๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์›น ๋ธŒ๋ผ์šฐ์ €

์ฒซ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋ฌต์ฐŒ๋น 


์—ด๋‘๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ํ”„๋กœ์ ํŠธ ๋งค๋‹ˆ์ € ์„œ๋ฒ„

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2021/03/29 ~ 2021/04/18 (3w)

๐Ÿ“ ์„ค๋ช… : ํ•  ์ผ ์นธ๋ฐ˜๋ณด๋“œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ RESTfulํ•˜๊ฒŒ ๊ตฌํ˜„

์Šคํฌ๋ฆฐ์ƒท 2021-05-17 15 04 29

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™


์—ดํ•œ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ํ”„๋กœ์ ํŠธ ๋งค๋‹ˆ์ € ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2021/03/08 ~ 2021/03/28 (3w)

๐Ÿ“ ์„ค๋ช… : ํ•  ์ผ, ํ•˜๋Š” ์ผ, ์™„๋ฃŒ ๋œ ์ผ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์นธ๋ฐ˜๋ณด๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™


์—ด๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋ฉ”๋ชจ์žฅ

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2021/02/15 ~ 2021/03/07 (3w)

๐Ÿ“ ์„ค๋ช… : ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์™€ ๋™๊ธฐํ™” ๋œ, ์•„์ดํฐ๊ณผ ์•„์ดํŒจ๋“œ๋ฅด ์œ„ํ•˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™


์•„ํ™‰๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์˜คํ”ˆ ๋งˆ์ผ“

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2021/01/25 ~ 2021/02/07(2w)

๐Ÿ“ ์„ค๋ช… : ํŒ๋งคํ•  ๋ฌผ๊ฑด์„ ๋“ฑ๋กํ•˜๊ณ , ์‚ฌ๋žŒ๋“ค์˜ ๋ฌผ๊ฑด์„ ๋ฆฌ์ŠคํŠธ์™€ ๊ทธ๋ฆฌ๋“œ ๋ทฐ๋กœ ๊ตฌ๊ฒฝํ•˜๋ฉฐ, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•„๋Š” ๊ฒŒ์‹œ๋ฌผ์€ ์‚ญ์ œ๋„ ํ•  ์ˆ˜ ์žˆ๋Š” ์•ฑ ๐Ÿงบ

๐Ÿ—‚ ์„ธ๋ถ€์‚ฌํ•ญ

  • HTTP ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ ๊ตฌํ˜„(CURD) - multipart/form-data
  • mock ๋ฐ์ดํ„ฐ์™€, mockURLSession์„ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ๋„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก Unit Test ๊ตฌํ˜„
  • ์ƒํ’ˆ ๋ชฉ๋ก์„ Segmented Control์„ ํ™œ์šฉํ•ด, ํ…Œ์ด๋ธ”๋ทฐ์™€ ์ปฌ๋ Œ์…˜๋ทฐ๋กœ ๊ตฌํ˜„
  • ์Šคํ† ๋ฆฌ๋ณด๋“œ์™€ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ UI ๊ตฌํ˜„
  • completionHandler, ์ œ๋„ค๋ฆญ ์‚ฌ์šฉ ์‚ฌ์šฉ
  • CustomStringConvertible ํ”„๋กœํ† ์ฝœ ์ฑ„ํƒํ•˜์—ฌ description ๊ตฌํ˜„

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™

๐Ÿ“ Pull Request && Review


์—ฌ๋Ÿ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋‚ ์”จ ์ •๋ณด

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2021/01/18 ~ 2021/01/24 (1w)

๐Ÿ“ ์„ค๋ช… : ๋‚ ์”จ API๋ฅผ ์ด์šฉํ•ด์„œ, ๋‚ ์”จ ์ •๋ณด๋ฅผ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค~

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™


์ผ๊ณฑ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์€ํ–‰ ์ฐฝ๊ตฌ ๋งค๋‹ˆ์ €

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2021/01/04 ~ 2021/01/17(2w)

๐Ÿ“ ์„ค๋ช… : ์€ํ–‰์„ ๊ฐœ์ ํ•˜๋ฉด 10~30๋ช…์˜ ๊ณ ๊ฐ์ด ๋ฐฉ๋ฌธํ•œ๋‹ค! ๊ณ ๊ฐ ๋“ฑ๊ธ‰๊ณผ ์—…๋ฌด์— ๋”ฐ๋ผ ์€ํ–‰์›๊ณผ ๋ณธ์‚ฌ๊ฐ€ ์žฌ๋น ๋ฅด๊ฒŒ ์ผ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ์ฝ˜์†”์•ฑ ๐Ÿฆ

๐Ÿ—‚ ์„ธ๋ถ€์‚ฌํ•ญ

  • GCD ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ(Asynchronous) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ตฌํ˜„
  • global queue๋ฅผ ํ™œ์šฉํ•œ ๋™์‹œ์„ฑ(Concurrency) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ตฌํ˜„
  • DispatchGroup๊ณผ DispatchSemaphore ์‚ฌ์šฉ

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™

๐Ÿ“ Pull Request && Review

์—ฌ์„ฏ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋งŒ๊ตญ๋ฐ•๋žŒํšŒ

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2020/12/21 ~ 2021/12/27(1w)

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™


๋‹ค์„ฏ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๊ณ„์‚ฐ๊ธฐ

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2020/12/07 ~ 2020/12/20(2w)

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™


๋„ค๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ํšŒ์›๊ฐ€์ž…

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2020/11/30 ~ 2020/12/06(1w)

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™


์„ธ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์ฃผ์Šค ๋ฉ”์ด์ปค

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2020/11/16 ~ 2020/11/29(2w)

๐Ÿ“ ์„ค๋ช… : ๋ง›์žˆ๋Š” ์ฃผ์Šค๋ฅผ ๋งŒ๋“ค๊ณ , ์žฌ๊ณ  ๊ด€๋ฆฌ๊นŒ์ง€ ํ•ด์ฃผ๋Š” app

๐Ÿ—‚ ์„ธ๋ถ€์‚ฌํ•ญ

  • ์ฝ๊ธฐ์ „์šฉ ํ”„๋กœํผํ‹ฐ ์‚ฌ์šฉ
  • enum์˜ ์—ฐ์‚ฐํ”„๋กœํผํ‹ฐ ์‚ฌ์šฉ
  • CustomStringConvertible ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•˜์—ฌ enum์˜ description ๊ตฌํ˜„
  • Dictionary ์‚ฌ์šฉ
  • ์˜ˆ์™ธ์ฒ˜๋ฆฌ(throws, do-catch, try) ์‚ฌ์šฉ
  • Error ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•œ enum ๊ตฌํ˜„
  • typealias ์‚ฌ์šฉ
  • ์‹ฑ๊ธ€ํ„ด ์‚ฌ์šฉ
  • stepper ์‚ฌ์šฉ

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™

๐Ÿ–‡ ํ•ด๋‹น ์ฃผ์ฐจ TIL

  • struct์™€ class, ๊ฐ’ํƒ€์ž…๊ณผ ์ฐธ์กฐํƒ€์ž…, ํ”„๋กœํผํ‹ฐ, ๋””์ž์ธํŒจํ„ด, ์†”๋ฆฌ๋“œ์›์น™ : 2020_11_16
  • Access control : 2020_11_17
  • if vs guard : 2020_11_19
  • init vs ํ”„๋กœํผํ‹ฐ ์ง์ ‘ ์ดˆ๊ธฐํ™” : 2020_11_23
  • KVO, ๋…ธํ‹ฐํ”ผ์ผ€์ด์…˜ ์„ผํ„ฐ : 2020_11_26

๐Ÿ“ Pull Request && Review


๋‘๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ์›น ๋ธŒ๋ผ์šฐ์ €

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2020/11/09 ~ 2020/11/13(5d)

๐Ÿ“ ์„ค๋ช… : WKWebView์„ ์‚ฌ์šฉํ•œ ์›น ๋ธŒ๋ผ์šฐ์ € app

๐Ÿ—‚ ์„ธ๋ถ€์‚ฌํ•ญ

  • WKWebView(goBack, goForward, reload ๋“ฑ) ์‚ฌ์šฉ
  • ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ URL์ฃผ์†Œ์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
  • alert ์‚ฌ์šฉ

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™

๐Ÿ–‡ ํ•ด๋‹น ์ฃผ์ฐจ TIL

  • H.I.G(textView์™€ textField์˜ ์ฐจ์ด), ์ „์—ญ๋ณ€์ˆ˜ ๋‹จ์  : 2020_11_09
  • ํƒ€์ž…, ์ •๊ทœํ‘œํ˜„์‹ : 2020_11_09
  • OOP์˜ ํŠน์ง• : 2020_11_09

๐Ÿ“ Pull Request && Review


์ฒซ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - ๋ฌต์ฐŒ๋น 

๐Ÿ—“ ๊ธฐ๊ฐ„ : 2020/11/03 ~ 2020/11/04(2d)

๐Ÿ“ ์„ค๋ช… : ์ปดํ“จํ„ฐ์™€ ๋ฌต์ฐŒ๋น  ๊ฒŒ์ž„(console app)

๐Ÿ—‚ ์„ธ๋ถ€์‚ฌํ•ญ

  • enum๊ณผ enum์˜ rawValue ์‚ฌ์šฉ
  • class ๊ตฌํ˜„
  • if let๊ณผ guard let์˜ ์‚ฌ์šฉ

๐Ÿ“Ž ํ•ด๋‹น ํด๋”๋กœ ์ด๋™

๐Ÿ–‡ ํ•ด๋‹น ์ฃผ์ฐจ TIL

  • git ๋ช…๋ น์–ด, git pull request : 2020_11_03

๐Ÿ“ Pull Request && Review


About

๐Ÿป yagom starter camp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages