TIL123 ✨

YaR LabΒ·2023λ…„ 10μ›” 16일
0

TIL✨

λͺ©λ‘ 보기
102/135
post-thumbnail

πŸ—“οΈ23.10.11

⭐️클래슀 λ‹€μ΄μ–΄κ·Έλž¨

  • 1️⃣ νƒ€μž…λͺ…μ‹œ

    • νƒ€μž…μ˜ 이름 μœ„λ‚˜, μ˜†μ— << >>μ•ˆμ— λͺ…μ‹œ ν•΄μ€Œ
    • <<class>>, <<enum>>, <<protocol>>
  • 2️⃣ swift μ ‘κ·Όμ œν•œμž

    • 기호의미
      +public
      -private
      #internal
      밑쀄(_)static
    • internal
      • μ ‘κ·Ό μ œν•œμžλ₯Ό λͺ…μ‹œν•˜μ§€ μ•Šμ€ 경우의 κΈ°λ³Έκ°’(in swift)
      • λ™μΌν•œ λͺ¨λ“ˆ λ‚΄μ˜ λ‹€λ₯Έ μš”μ†Œλ“€μ—κ²Œ μ ‘κ·Ό κ°€λŠ₯
      • λͺ¨λ“ˆ μ™ΈλΆ€μ—μ„œλŠ” μ ‘κ·Όν•  수 μ—†κ³ , λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ μ ‘κ·Όν•˜λ €λ©΄ public으둜 μ„ μ–Έ
    • public
      • μ–΄λ–€ λͺ¨λ“ˆμ—μ„œλ“  μ ‘κ·Ό κ°€λŠ₯
      • λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œ μƒμ†ν•˜κ³  μž¬μ •μ˜(override)κ°€λŠ₯
      • public으둜 μ„ μ–Έλœ 클래슀의 멀버듀은 기본적으둜 internal이고, ν•„μš”ν•œ 경우 멀버에 λŒ€ν•΄ publicμ ‘κ·Ό μ œν•œμžλ₯Ό λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν•΄μ€˜μ•Όν•¨
    • static
      • 멀버λ₯Ό μ„ μ–Έν•˜λŠ” ν‚€μ›Œλ“œ
      • νƒ€μž… λ©”μ„œλ“œ, νƒ€μž… ν”„λ‘œνΌν‹°λ₯Ό μ •μ˜ν• λ•Œ μ‚¬μš©
      • μž¬μ •μ˜ λΆˆκ°€λŠ₯
      • class ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜ν•  수 있음
  • 3️⃣ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ 관계

κ΄€κ³„μ˜λ―ΈκΈ°ν˜Έ
Association(μ—°κ΄€ 관계)- λ‹€λ₯Έ 객체의 μ°Έμ‘°λ₯Ό κ°€μ§€λŠ” μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό 가지고 μžˆμ„ λ•Œ
Dependency(의쑴 관계)- ν•œ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀λ₯Ό μ°Έμ‘°ν•˜λŠ” 관계
- ν•œ 클래슀의 λ‚΄λΆ€ ν”„λ‘œνΌν‹°μ— μ €μž₯ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•˜λŠ” 관계 (ν•˜λ‚˜μ˜ νƒ€μž…μ΄ λ‹€λ₯Έ νƒ€μž…λ‚΄μ˜ parameter λ˜λŠ” return valueμΌλ•Œ)
Generalization(μΌλ°˜ν™” 관계)- 상속을 λ‚˜νƒ€λ‚΄λŠ” 관계
- ν•œ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀λ₯Ό ν¬ν•¨ν•˜λŠ” μƒμœ„ κ°œλ…μΌ λ•Œ
Realization(싀체화 관계)- ν”„λ‘œν† μ½œμ˜ κ΅¬ν˜„μ„ λ‚˜νƒ€λ‚΄λŠ” 관계
Aggregation(집합 관계)- 클래슀 μ‚¬μ΄μ—μ„œ 전체 λ˜λŠ” λΆ€λΆ„ 같은 관계
- ν•œ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀λ₯Ό λ‚΄λΆ€ ν”„λ‘œνΌν‹°λ‘œ 가지고 μžˆμ§€λ§Œ 라이프 νƒ€μž„μ΄ 독립적인 관계
Composition(ν•©μ„± 관계)- 클래슀 μ‚¬μ΄μ—μ„œ 전체 λ˜λŠ” λΆ€λΆ„ 같은 관계
- ν•œ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀λ₯Ό 직접 μƒμ„±ν•˜κ³  λ‚΄λΆ€ ν”„λ‘œνΌν‹°μ— ν• λ‹Ήν•˜μ—¬ 가지고 μžˆμ–΄ 라이프 νƒ€μž„μ΄ 쒅속적인 관계

πŸ”ƒAutomatic Initializer Inheritance

  • μ„œλΈŒν΄λž˜μŠ€λŠ” 기본적으둜 슈퍼클래슀의 μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό 상속받지 μ•ŠμŠ΅λ‹ˆλ‹€.
  • κ·ΈλŸ¬λ‚˜ λ‹€μŒκ³Ό 같은 쑰건 좩쑱되면 슈퍼클래슀의 μ΄λ‹ˆμ…œλΌμ΄μ €κ°€ μžλ™μœΌλ‘œ μƒμ†λ©λ‹ˆλ‹€.
    • μ„œλΈŒν΄λž˜μŠ€κ°€ 지정 μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό μ •μ˜ν•˜μ§€ μ•ŠλŠ” 경우, λͺ¨λ“  슈퍼클래슀의 지정 μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό μžλ™μœΌλ‘œ μƒμ†λ°›μŠ΅λ‹ˆλ‹€.
    • μ„œλΈŒν΄λž˜μŠ€κ°€ 슈퍼클래슀의 λͺ¨λ“  지정 μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό κ΅¬ν˜„ν•œλ‹€λ©΄ (μœ„μ˜ λ°©μ‹μœΌλ‘œ μƒμ†λ°›κ±°λ‚˜, μ‚¬μš©μžκ°€ μ •μ˜ν•œ 경우), μ„œλΈŒν΄λž˜μŠ€λŠ” 슈퍼클래슀의 λͺ¨λ“  편의 μ΄λ‹ˆμ…œλΌμ΄μ €λ„ μžλ™μœΌλ‘œ μƒμ†λ°›μŠ΅λ‹ˆλ‹€.

πŸ•’μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨

유 ν˜•μ˜ λ―Έκ·Έ λ¦Ό
객체와 생λͺ…μ„ (Lifeline)객체(ν™œλ™ 주체)λŠ” μ§μ‚¬κ°ν˜•μœΌλ‘œ ν‘œν˜„
라이프라인은 κ°μ²΄μ—μ„œ μ΄μ–΄μ§€λŠ” μ μ„ μœΌλ‘œ ν‘œν˜„
점선은 μœ„μ—μ„œ μ•„λž˜λ‘œ 갈수둝 μ‹œκ°„μ˜ κ²½κ³Όλ₯Ό 의미
ν™œμ„± λ°•μŠ€(Activation Box)aka. ν™œμ„±(Activation)
생λͺ…μ„ μƒμ—μ„œ κΈΈλ‹€λž€ μ§μ‚¬κ°ν˜•μœΌλ‘œ ν‘œν˜„
ν˜„μž¬ 객체가 μ–΄λ–€ ν™œλ™μ„ ν•˜κ³  μžˆμŒμ„ 의미
λ©”μ‹œμ§€(Message)λ©”μ‹œμ§€λŠ” μΈμŠ€ν„΄μŠ€ κ°„ μ£Όκ³  받은 λ°μ΄ν„°λ‘œ, 일반적으둜 μš”μ²­κ³Ό 응닡을 ν‘œν˜„μ•„λž˜ν‘œ μ°Έκ³ 
  • λ©”μ‹œμ§€(Message)
    • λ©”μ‹œμ§€λŠ” μΈμŠ€ν„΄μŠ€ κ°„ μ£Όκ³  받은 λ°μ΄ν„°λ‘œ, 일반적으둜 μš”μ²­κ³Ό 응닡을 ν‘œν˜„
유 ν˜•μ˜ λ―Έκ·Έ λ¦Ό
동기 λ©”μ‹œμ§€(Synchronous message)λ©”μ‹œμ§€ 전솑 객체가 κ³„μ†ν•˜κΈ° μ „κΉŒμ§€ 동기 λ©”μ‹œμ§€μ— λŒ€ν•œ 응닡을 κΈ°λ‹€λ¦Ό.
ν”„λ‘œκ·Έλž¨ λ‚΄ 일반적인 ν•¨μˆ˜ 호좜과 λ™μΌν•œ λ™μž‘ λ°©μ‹μ˜ λ©”μ‹œμ§€λ₯Ό ν‘œν˜„
μŠ€ν¬λ¦°μƒ· 2023-05-28 μ˜€μ „ 2 22 04
비동기 λ©”μ‹œμ§€(Async message)λ©”μ‹œμ§€ 전솑 객체가 κ³„μ†ν•˜κΈ° μ „κΉŒμ§€ 응닡을 μš”κ΅¬ν•˜κΈ° μ•ŠλŠ” λ©”μ‹œμ§€.
전솑 객체의 ν˜ΈμΆœλ§Œμ„ ν‘œμ‹œ.
보톡 κ°œλ³„ μ“°λ ˆλ“œ κ°„μ˜ 톡신 및 μƒˆ μ“°λ ˆλ“œμ˜ 생성에 μ‚¬μš©
μŠ€ν¬λ¦°μƒ· 2023-05-28 μ˜€μ „ 2 22 19
자체 λ©”μ‹œμ§€(Self message)μžμ‹ μ—κ²Œ 보낸 λ©”μ‹œμ§€, 결과둜 μƒμ„±λœ μ‹€ν–‰ λ°œμƒμ΄ 전솑 μ‹€ν–‰ μœ„μ— λ‚˜νƒ€λ‚¨.μŠ€ν¬λ¦°μƒ· 2023-05-28 μ˜€μ „ 2 22 30
λ°˜ν™˜ λ©”μ‹œμ§€(Reply/Return message)이전 호좜의 λ°˜ν™˜μ„ κΈ°λ‹€λ¦¬λŠ” κ°μ²΄μ—κ²Œ λ‹€μ‹œ λ°˜ν™˜λ˜λŠ” λ©”μ‹œμ§€μŠ€ν¬λ¦°μƒ· 2023-05-28 μ˜€μ „ 2 22 38
κ°€λ“œμŠ€ν¬λ¦°μƒ· 2023-05-28 μ˜€μ „ 2 22 50
  • ν”„λž˜κ·Έλ¨ΌνŠΈ(Fragment)
    • μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ—μ„œ λ²”μœ„λ₯Ό λͺ…μ‹œν•˜κΈ° μœ„ν•œ ν‘œν˜„
    • μ—¬λŸ¬ 생λͺ…μ„ κ³Ό ν™œμ„±μ„ ν¬κ΄„μ μœΌλ‘œ κ°μ‹ΈλŠ” λ°•μŠ€ν˜•νƒœλ‘œ ν‘œν˜„λ˜λ©°, λ°˜λ³΅μ΄λ‚˜ λŒ€μ•ˆ λ“± μ„€μ • κ°€λŠ₯
유 ν˜•κ·Έ λ¦Ό
μ˜΅μ…˜(Option)
반볡(Loop)
λŒ€μ•ˆ(Alternative)
병렬(Parallel)

βœ… μ°Έκ³  링크

0개의 λŒ“κΈ€