πŸŽ«μ†Œν”„νŠΈμ›¨μ–΄ 곡학 part22~25. 도ꡬ와 μ²­μ‚¬μ§„μœΌλ‘œμ¨μ˜ UML / Grasp νŒ¨ν„΄μ •λ¦¬

vincaΒ·2023λ…„ 1μ›” 2일
0

πŸ”„ Software engineering

λͺ©λ‘ 보기
16/17

UML을 μ μš©ν•˜λŠ” 방법

  1. μŠ€μΌ€μΉ˜λ‘œμ„œμ˜ UML : 도ꡬλ₯Ό μ „ν˜€ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  2. μ²­μ‚¬μ§„μœΌλ‘œμ„œμ˜ UML : (청사진 : 섀계도) 도ꡬλ₯Ό μ‚¬μš©ν•˜κ³  ν”„λ‘œκ·Έλž˜λ°μ„ μΆ”κ°€
  3. ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œμ„œμ˜ UML : λͺ¨λ“  것을 UML둜 μ •μ˜ν•œλ‹€.
    β˜…κ°ˆμˆ˜λ‘ μ–΄λ €μ›Œμ§€λ―€λ‘œ 1. μŠ€μΌ€μΉ˜λ‘œμ„œμ˜ UML 방법을 μ‚¬μš©ν•˜λŠ” 것이 κ°€μž₯ λ‹¨μˆœν•˜κ³  μ’‹λ‹€.

μˆœκ³΅ν•™κ³Ό 역곡학

  • μˆœκ³΅ν•™ : diagram β†’ code
  • 역곡학 : code β†’ diagram
  • λΌμš΄λ“œνŠΈλ¦½ 곡학 : μˆœκ³΅ν•™κ³Ό 역곡학을 λ°˜λ³΅ν•˜λ©°, 잘λͺ»λœ 게 있으면 λ’€λ‘œ λŒμ•„κ°€ μˆ˜μ •.

μ™„λ²½ν•œ μ½”λ“œκ°€ λΆˆκ°€λŠ₯ν•œ 이유 2κ°€μ§€

  • λ„ˆλ¬΄λ‚˜ λΉ λ₯Έ 기술의 λ°œμ „, λ³€ν™”
  • ν‘œν˜„μ˜ μˆ˜μ€€μ΄ 닀름

UML λ„κ΅¬μ˜ 평가

  • ν…μŠ€νŠΈ κΈ°λ°˜μ— λΉ„ν•˜μ—¬ λ°©ν•΄κ°€ λœλ‹€. κ·Έλƒ₯ μŠ€μΌ€μΉ˜λ₯Ό 써라.
  • κ·Έλž˜λ„ β€œμ—­κ³΅ν•™β€œ ν•˜λ‚˜λŠ” μ½”λ“œ 이해에 도움이 λ˜λ―€λ‘œ μ’‹λ‹€.
  • 단, DB와 같이 λ³€ν•˜μ§€ μ•ŠλŠ” 뢀뢄은 섀계도ꡬλ₯Ό μ“°λŠ” 것이 μ’‹λ‹€.

[25μž₯] Grasp λ”λ§Žμ€ 객체에 μ±…μž„μ„ ν• λ‹Ή

λ‚˜λ¨Έμ§€ Grasp νŒ¨ν„΄μ— λŒ€ν•œ 적용 방법 (9개 μžˆμ—ˆλŠ”λ° λ‚˜λ¨Έμ§€ 4개)

  1. Polymorphism (λ‹€ν˜•μ„±)
  2. Indirection (κ°„μ ‘)
  3. Pure Fabrication (μˆœμˆ˜ν•˜κ²Œ λ§Œλ“€μ—ˆλ‹€)
  4. Protected Variation (λ³€ν™”κ°€ λ³΄ν˜Έλ˜μ—ˆλ‹€)

β–  Polymorphism λ‹€ν˜•μ„±

  • 객체의 νƒ€μž…μ— 닀라 λ‹€λ₯΄κ²Œ μž‘λ™ν•˜λ„λ‘ ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
  • 결합도 κ°œμ„ , λ‹€λ₯Έ μ½”λ“œμ— 영ν–₯을 μ£Όμ§€ μ•ŠμœΌλ―€λ‘œ ν™•μž₯에 μš©μ˜ν•¨
  • μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 상속 λ°›μ•„μ„œ μ‚¬μš©ν•œλ‹€.

β–  Pure Fabrication (μˆœμˆ˜ν•˜κ²Œ λ§Œλ“€μ—ˆλ‹€)

  • λ°μ΄ν„°λ² μ΄μŠ€μ— Sale을 μ €μž₯ν•΄μ•Ό ν•  μ±…μž„μ€ λˆ„κ°€ λ‹΄λ‹Ήν•΄μ•Ό ν•˜λŠ”κ°€?
  • Expertκ°€ μ œμ‹œν•œ 해결책이 High Cohesion, Low Coupling 등에 μœ„λ°°λ˜λŠ” 경우, 문제 도메인 κ°œλ…μ„ ν‘œν˜„ν•˜μ§€ μ•ŠλŠ” μΈμœ„μ  클래슀λ₯Ό λ§Œλ“€μ–΄ μ±…μž„μ„ ν• λ‹Ήν•œλ‹€.

β–  Indirection (κ°„μ ‘)

  • 두 μ‚¬λ¬Όκ°„μ˜ 직접적인 결합을 ν”Όν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•œλ‹€.
  • λ‹€λ₯Έ μ½€ν¬λ„ŒνŠΈλ‚˜ μ„œλΉ„μŠ€κ°€ 직접 μ—°κ²°λ˜μ§€ μ•Šλ„λ‘ 쀑간에 객체λ₯Ό λ§Œλ“€μ–΄ μ±…μž„μ„ ν• λ‹Ήν•œλ‹€.

β–  Protected Variation (λ³€ν™”κ°€ λ³΄ν˜Έλ˜μ—ˆλ‹€)

  • 객체, μ„œλΈŒμ‹œμŠ€ν…œ, μ‹œμŠ€ν…œμ˜ 변화에 따라 λ‹€λ₯Έ μš”μ†Œμ—λŠ” 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šλ„λ‘ν•  λ•Œ μ‚¬μš©
  • λ³€ν™”κ°€ κ°€λŠ₯ν•œ μš”μ†Œλ₯Ό μ‹λ³„ν•œλ‹€.
  • μ‹λ³„λœ μœ„μΉ˜μ— 객체λ₯Ό λ§Œλ“€μ–΄ μ±…μž„μ„ ν• λ‹Ήν•œλ‹€.
profile
뢉은 λ°° μ˜€μƒ‰ 딱닀ꡬ리 개발자 πŸ¦ƒCloud & DevOps

0개의 λŒ“κΈ€