ADR (Architecture Decision Record)

ADR?

  • ADR은 Architecture Decision Record의 μ•½μž

  • μ•„ν‚€ν…μ²˜ κ΄€λ ¨ 결정에 λŒ€ν•΄ κ³Όμ • 및 κ²°κ³Όλ₯Ό κΈ°λ‘ν•œ λ¬Έμ„œ

μ™œ μ‚¬μš©?

  • 보닀 합리적인 선택을 μœ„ν•΄

    • λ§Œμ•½ ADR을 μ μš©ν•˜μ§€ μ•Šκ³  μ˜μ‚¬ 결정을 λ‚΄λ¦°λ‹€λ©΄, μΌκ΄€λ˜μ§€ μ•Šμ€ μ˜μ‚¬ 결정을 ν•  수 있음

    • ADR을 μž‘μ„±ν•˜λ©° 선택 이유, κ²°κ³Ό, 이에 λŒ€ν•œ 영ν–₯ λ“± μ—¬λŸ¬ μš”μ†Œλ₯Ό μž‘μ„±ν•˜κΈ° λ•Œλ¬Έμ— λ”μš± 합리적인 선택 κ°€λŠ₯

  • 미래의 νŒ€ (λ˜λŠ” νŒ€μ›) 을 μœ„ν•΄

    • 미래의 νŒ€μ›μ—κ²Œ μ˜μ‚¬ 결정에 λŒ€ν•œ νžˆμŠ€ν† λ¦¬λ₯Ό μ œκ³΅ν•  수 있음

    • 이λ₯Ό 톡해 λ”μš± λΉ λ₯΄κ²Œ 적응할 수 있음

    • λ˜ν•œ κΈ°μ‘΄ νŒ€μ˜ μ˜μ‚¬ κ²°μ • 방식에 λŒ€ν•΄λ„ νŒŒμ•…ν•  수 μžˆμ–΄ μΆ”ν›„ λΉ„μŠ·ν•œ 결둜 μ˜μ‚¬ 결정을 내릴 수 있음

ꡬ성 μš”μ†Œ

  1. μƒνƒœ (Status)

  2. λ§₯락 (Context)

  3. κ²°μ • (Decision)

  4. κ²°κ³Ό (Consequences)

ADR μž‘μ„± μ˜ˆμ‹œ

주제: iOS μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ ˆμž„ μ›Œν¬ 선택(UIKit vs. SwiftUI)

μƒνƒœ

  • μ œμ•ˆ

λ°°κ²½

  • μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈ μ§„ν–‰ μ‹œ 선택할 ν•„μš”κ°€ 있음

  • μœ μ§€ 보수, ν™•μž₯ κ°€λŠ₯μ„± λ“± μΆ”ν›„ ν”„λ‘œμ νŠΈ 진행에 λŒ€ν•΄ λ§Žμ€ 뢀뢄을 κ³ λ €ν•˜μ—¬ 선택해야 함

κ²°μ •

UIKit 선택

  • λͺ¨λ“ˆν™”

    • SwiftUIλŠ” Viewμ—μ„œ λΌμš°νŒ… κΈ°λŠ₯을 ν•˜κ³  있음

    • UIKit은 뷰컨트둀러(λ˜λŠ” λ‚΄λΉ„κ²Œμ΄μ…˜ 컨트둀러) 에 λŒ€ν•œ 레퍼런슀만 μžˆλ‹€λ©΄ λΌμš°νŒ…μ΄ κ°€λŠ₯

    • 이λ₯Ό 톡해 μΈν„°νŽ˜μ΄μŠ€/κ΅¬ν˜„μ²΄ ꡬ쑰의 λͺ¨λ“ˆ ꡬ성이 κ°€λŠ₯

    • SwiftUI도 이둠상 κ°€λŠ₯ν•˜λ‚˜, ν˜„μž¬ 이에 λŒ€ν•œ best practiceκ°€ μ—†μŒ

  • 변경이 적음

    • UIKit의 APIλŠ” SwiftUI에 λΉ„ν•΄ 였랜 κΈ°κ°„ κ°œλ°œλ˜μ—ˆμŒ

    • λ”°λΌμ„œ UIKit은 버전에 λ”°λ₯Έ λ³€ν™”κ°€ λ§Žμ§€ μ•Šμ§€λ§Œ SwiftUIλŠ” λ³€ν™”κ°€ 있음

κ²°κ³Ό

  • (긍정) UIKit을 μ„ νƒν•˜μ—¬ μ•ˆμ „(변경이 적음)ν•˜κ³  ν™•μ •μ„± μžˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발이 κ°€λŠ₯

  • (λΆ€μ •) SwiftUI에 λΉ„ν•΄ UI μž‘μ—… μ‹œ λ§Žμ€ μ‹œκ°„μ΄ κ±Έλ¦Ό

Last updated