๐Ÿค” ๋ถˆํƒ€๋Š” ํ† ์š” ์Šคํ„ฐ๋”” C๋ฐ˜

๐Ÿค“ ์ฐธ์—ฌ์ž

๐Ÿš€ Derrickkim, ์›ก๋น™, ๋ธŒ๋ž˜๋“œ, ๋ฐฑ๊ณฐ, ํœด

๋ชฉ์ฐจ

๐Ÿค“ ๊ณตํ†ต Rule

  • ๋งค์ฃผ ํ† ์š”์ผ ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ๋ชจ์—ฌ์„œ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • ๋งค์ฃผ ์Šคํ„ฐ๋””ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์—ฌ github์— ์ •๋ฆฌํ•œ ํ›„ ๋””์Šค์ฝ”๋“œ ์ฑ„๋„์— github ๋งํฌ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์„ ์œ ์ง€ํ•˜๊ณ , ํ•™์Šต ํšจ๊ณผ๋ฅผ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋งค์ฃผ ํ† ์š”์ผ๋‚  ํ’€์ดํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿค“ ํ•™์Šต๋ชฉ๋ก

์ฃผ์ฐจ ๋ณ„ ํ•™์Šต ๋‚ด์šฉ

์ฃผ์ฐจ ๋‚ ์งœ ์ฃผ์ œ
1 2022-04-16 Optional - binding, nil-coalescing, forced-unwrapping, channing
2 2022-04-23 Type ์ •์˜, ์ ‘๊ทผ์ œ์–ด์ž ์ •์˜
3 2022-04-30 notificationCenter
4 2022-05-07 SingletonํŒจํ„ด, ViewLifeCycle, delegate ํŒจํ„ด
5 2022-05-14 UML, Unit Test, TDD
6 2022-05-21 LLDB
7 2022-05-28 ํด๋กœ์ €, ๊ณ ์ฐจํ•จ์ˆ˜
8 2022-06-04 ๋ฉ”๋ชจ๋ฆฌ, ARC, App Life Cycle
9 2022-06-18 TableView
10 2022-06-25 ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
11 2022-07-02 Protocol Oriented Programing(POP)
12 2022-07-09 Responder Chain
13 2022-07-16 CollectionView
14 2022-07-23 Cache, NSCache, URLCache
1์ฃผ์ฐจ(4/16)

๐Ÿ“š 1์ฃผ์ฐจ ์˜ค์ „ C๋ฐ˜ ์Šคํ„ฐ๋”” ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ” ์ฃผ์ œ : Optional, ํ•œ์ฃผ๋™์•ˆ ์ง„ํ–‰ํ•œ ํ•™์Šต ๋‚ด์šฉ, Error ์ฒ˜๋ฆฌ

๐Ÿ“’ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋‚˜๋ˆˆ ์ด์•ผ๊ธฐ ๋ฐ ์งˆ๋ฌธ

  • ํฌ๋ฌธ์— Array.indicises ๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด 0..<Array.count๋ฅผ ์•ˆํ•ด๋„ ๋œ๋‹ค
  • ํฌ๋ฌธ์— Array.enumerated ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด์˜ index๊ฐ’๊ณผ ๋ฐฐ์—ด์˜ value๊ฐ’์„ ๋ฝ‘์„์ˆ˜ ์žˆ๋‹ค.
2์ฃผ์ฐจ(4/23)

๐Ÿ“– 2์ฃผ์ฐจ ์˜ค์ „ C๋ฐ˜ ํ† ์š”์Šคํ„ฐ๋”” - [6๊ธฐ]

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ

์ง€๋‚œ์ฃผ ํ† ์š”์ผ์— ์ง„ํ–‰ํ•œ Optional ํ”„๋กœ์ ํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ ์ฃผ์ฒด์— ๋”ฐ๋ฅธ ํƒ€์ž…ํ™” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ, ๊ธฐ๋Šฅ์„ ๊ตฌ๋ณ„ํ•˜์—ฌ ์„œ๋กœ์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด์„œ ํ† ๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ํ†ตํ•ด ์€๋‹‰ํ™”์™€ ์บก์Šํ™”ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ํ† ๋ก ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์‹คํ—˜ ๋ชฉํ‘œ

  • ๋น„์Šทํ•œ ์š”์†Œ(์ƒ์ˆ˜, ๋ณ€์ˆ˜, ํ•จ์ˆ˜)๋“ค์„ ์ถ”์ƒํ™”ํ•ด ํƒ€์ž…์„ ์ •์˜ํ•ด๋ด…์‹œ๋‹ค.
  • ๊ฐ์ฒด์ง€ํ–ฅ์  ๊ด€์ ์—์„œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋ด…์‹œ๋‹ค

์ถ”๊ฐ€๋กœ ๊ณต๋ถ€ ํ•ด์•ผ ํ•  ๋ถ€๋ถ„

  • ์ด๋‹ˆ์…œ๋ผ์ด์ €
  • Delegate Design Pattern
3์ฃผ์ฐจ(4/30)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 3์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • IBOutlet
  • IBAction
  • ๊ธฐ๋ณธ MVC vs Cocoa MVC ์ฐจ์ด
  • Storyboard
  • ViewController
  • Notification Center
4์ฃผ์ฐจ(5/07)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 4์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • View Life Cycle
  • Singleton Pattern
  • Singleton Pattern์˜ ์‚ฌ์šฉ
  • ์ „์ฒดํ™”๋ฉด ์ „ํ™˜
  • delegate ์‚ฌ์šฉ
  • ์Šคํ„ฐ๋”” Readme.md ์ž‘์„ฑ
5์ฃผ์ฐจ(5/14)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 5์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • TDD
  • Unit Test
  • UML
6์ฃผ์ฐจ(5/21)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 6์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • LLDB ์‚ฌ์šฉ ์ด์œ 
  • Help ์™€ Apropos ๋ฅผ ํ†ตํ•œ ๋ช…๋ น์–ด ๊ฒ€์ƒ‰
  • BreakPoint
    • BreakPoint๋งŒ๋“ค๊ธฐ :
      • ํ•จ์ˆ˜์ด๋ฆ„์„ ํ†ตํ•ด(b s -n "name"),
      • ํŒŒ์ผ์ด๋ฆ„์„ ํ†ตํ•ด(b s -f "filename" -l "line")
      • ์กฐ๊ฑด์„ ๊ฑธ์–ด์„œ( br s -n "viewWillAppear" -c animated) ์กฐ๊ฑด์ด true์ผ ๊ฒฝ์šฐ break
    • Command์‹คํ–‰๊ณผ AutoContinue:
      • (-C) ์˜ต์…˜์„ ํ†ตํ•ด break์‹œ ์›ํ•˜๋Š” command ์‹คํ–‰๊ฐ€๋Šฅ
      • (-G) ์˜ต์…˜์„ ํ†ตํ•ด break์— ๊ฑธ๋ฆฐ์ฑ„๋กœ ์žˆ์ง€ ์•Š๊ณ  ์ž๋™ ์ง„ํ–‰ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๊ธฐ
    • breakPoint List ํ™•์ธํ•˜๊ธฐ:
      • breakpoint list
    • breakPoint ์‚ญ์ œํ•˜๊ธฐ, ๋น„ํ™œ์„ฑํ™” ํ•˜๊ธฐ:
      • breakpoint delete, breakpoint disable
  • Stepping
    • Stepping Over: (n) ๋‹ค์Œ statement๋กœ ์ด๋™
    • Stepping In: (s) ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์œ„์น˜ํ•œ ์‹œ์ž‘์ง€์ ์œผ๋กœ ์ด๋™
    • Stepping Out: (finish) ํ•จ์ˆ˜ ๋ฐ˜ํ™˜๊นŒ์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ์ง„ํ–‰ ํ›„ break
  • Expression
    • po: ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ์ถœ๋ ฅ
    • Variable: ์ž๋™์œผ๋กœ $R0 ์— ์ €์žฅ๋œ๋‹ค?
      • $R0 ์„ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
      • expr var $someNumber = 10 ์ด๋Ÿฐ์‹์œผ๋กœ ์ฝ˜์†”์ฐฝ์—์„œ ์„ ์–ธ๋„ ๊ฐ€๋Šฅ
7์ฃผ์ฐจ(5/28)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 7์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • ํด๋กœ์ €
    • ํ”„๋กœํผํ‹ฐ๋„ ๋ฉ”์†Œ๋“œ์ฒ˜๋Ÿผ ํด๋กœ์ €๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ณ ์ฐจํ•จ์ˆ˜(map, reduce, filter)๋ฅผ(์„) ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์–˜๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    • map: ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๋ณ€ํ˜•ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    • reduce: ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ์š”์†Œ๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉํ•˜๋Š” ์—ญํ™œ (์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ•˜๋‚˜๋กœ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค)
    • filter: ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๊ฐ’์„ ๊ฑธ๋Ÿฌ ์ถ”์ถœํ•˜๋Š” ์—ญํ™œ Bool ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉ
8์ฃผ์ฐจ(6/04)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 8์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ 4๊ฐœ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋‹จ๊ณ„์—์„œ ๊ฐ๊ฐ ์–ด๋–ค ๊ฒƒ๋“ค์„ ์ €์žฅ ํ•˜๋Š”์ง€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ๊ตฌ์กฐ์ฒด ๋‚ด์—์„œ ์„ ์–ธ ์‹œ ์–ด๋Š ์˜์—ญ์— ์ €์žฅ๋˜๋Š”์ง€
  • ARC ์ฐธ์กฐ ์นด์šดํŠธ๊ฐ€ ๋ญ๊ณ  ์™œ ๊ด€๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ์ด์œ 
  • App Life Cycle ์•ฑ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ์•Œ์•ผ ํ•˜๋Š” ์ด์œ 
9์ฃผ์ฐจ(6/18)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 9์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • ํ…Œ์ด๋ธ” ๋ทฐ ์Šคํ† ๋ฆฌ๋ณด๋“œ ๋Œ€์‹  ์ฝ”๋“œ๋กœ UI ์ƒ์„ฑ ๋ฐ constraints ๋งž์ถฐ์ฃผ๊ธฐ ๋ ˆ์ด๋ธ”์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐ ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ• ์ƒ๊ฐ TableView์˜ ์žฌ์‚ฌ์šฉ์„ฑ
10์ฃผ์ฐจ(6/25)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 10์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์•ผ๊ณฐ ๋‹ท๋„ท์— ์žˆ๋Š” ๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ์ž ์‹ค์Šต
11์ฃผ์ฐจ(7/2)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 11์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • POP(Protocol Oriented Programing) ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•ด ์ˆ˜ํ‰์ ์ธ ๊ธฐ๋Šฅํ™•์žฅ์„ ๊ณต๋ถ€ ํ”„๋กœํ† ์ฝœ์˜ ํ™•์žฅ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ ๋ชจ๋“ˆํ™”
12์ฃผ์ฐจ(7/9)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 12์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • Responder Chain
    • hit test๋ฅผ ํ†ตํ•ด First Responder ์ฐพ๊ธฐ
13์ฃผ์ฐจ(7/16)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 13์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

  • CollectionView
    • FlowLayout๊ณผ Custom Layout์„ ์ด์šฉํ•ด CollectionView
14์ฃผ์ฐจ(7/23)

ํ† ์š”์Šคํ„ฐ๋””

๐Ÿ“š 14์ฃผ์ฐจ [6๊ธฐ] ์˜คํ›„ C๋ฐ˜ ์Šคํ„ฐ๋””

โœ๏ธ ๊ณต๋ถ€ํ•œ๋‚ด์šฉ

- Cache, NSCache, URLCache

์ •๋ฆฌํ•œ ๋‚ด์šฉ ๋งํฌ

๐Ÿค“ ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

  • chore : ํด๋”/ํŒŒ์ผ ๊ตฌ์กฐ ๋ณ€๊ฒฝ
  • docs : ๊ณตํ†ต ๋ฌธ์„œ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€
  • feat : ๊ธฐ๋Šฅ ๊ตฌํ˜„,

๐ŸŒด branch ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. Master branch ์‚ฌ์šฉ
  2. ๋ณธ์ธ ํด๋”๋กœ ์ด๋™
  3. ์Šคํ„ฐ๋”” ์ดํ›„๋‚˜ ์•„๋ฌด๋•Œ์— main branch์— push

๐Ÿ“‘ ํด๋”๋ช… ๊ทœ์น™

- ์ฃผ์ œ / ๋ณธ์ธ์ด๋ฆ„ / ๊ณต๋ถ€๋‚ด์šฉ