--- id: P-REINFORCE-WIKI-E724CEAB category: "10_Wiki/πŸ’‘ Topics/02_Architecture_Principles" confidence_score: 0.95 tags: ['atam-(architecture-trade-offs-analysis-method)', 'architecture-decision-records-(adr)', 'iso-25010-(ν’ˆμ§ˆ-λͺ¨λΈ)', '민감도-지점-(sensitivity-points)', 'tara-(architecture-assessment)', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[ATAM (Architecture Trade-offs Analysis Method)]] ## πŸ“Œ Brief κ΅¬μš” Summary ATAM(Architecture Trade-offs Analysis Method)은 νŠΉμ • μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜κ°€ λΉ„μ¦ˆλ‹ˆμŠ€ λͺ©ν‘œλ₯Ό μ–Όλ§ˆλ‚˜ 잘 μ§€μ›ν•˜λŠ”μ§€ ν‰κ°€ν•˜κ³  μ•„ν‚€ν…μ²˜μ  μœ„ν—˜ μš”μ†Œλ₯Ό μ‹λ³„ν•˜κΈ° μœ„ν•΄ SEI(Software Engineering Institute)μ—μ„œ κ°œλ°œν•œ λ°©λ²•λ‘ μž…λ‹ˆλ‹€ [1, 2]. 이 방법둠은 'μ™„λ²½ν•œ μ•„ν‚€ν…μ²˜λŠ” μ—†λ‹€'λŠ” 인식 ν•˜μ—, μ˜μ‚¬κ²°μ • κ³Όμ •μ—μ„œ λΆˆκ°€ν”Όν•˜κ²Œ λ°œμƒν•˜λŠ” νƒ€ν˜‘μ (Compromise)을 μ²΄κ³„μ μœΌλ‘œ μ°Ύμ•„λƒ…λ‹ˆλ‹€ [1]. μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ₯Ό ν‰κ°€ν•˜λŠ” 데 μžˆμ–΄ 'ν‘œμ€€(Gold Standard)'으둜 κ°„μ£Όλ˜λ©°, μ§κ°μ΄λ‚˜ μœ ν–‰μ— λ”°λ₯Έ μ•„ν‚€ν…μ²˜ 선택을 λ°©μ§€ν•˜λŠ” 객관적인 기쀀을 μ œκ³΅ν•©λ‹ˆλ‹€ [1, 3]. ## πŸ“– Core Content * **μ‹œλ‚˜λ¦¬μ˜€ 기반 뢄석 (Scenario-based thinking):** ATAM은 'μ„±λŠ₯'κ³Ό 같이 좔상적인 ν’ˆμ§ˆ λͺ©ν‘œλ₯Ό λ…Όμ˜ν•˜λŠ” λŒ€μ‹ , ꡬ체적인 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό μ‚¬μš©ν•˜μ—¬ μ•„ν‚€ν…μ²˜λ₯Ό ν‰κ°€ν•©λ‹ˆλ‹€ [1, 2]. 예λ₯Ό λ“€μ–΄ "μ‚¬μš©μžκ°€ 10λΆ„ 내에 두 배둜 증가할 λ•Œ μ‹œμŠ€ν…œμ΄ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”κ°€?" λ˜λŠ” "λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ‹€νŒ¨ν•  λ•Œ μ•„ν‚€ν…μ²˜κ°€ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”κ°€?"와 같은 νŠΉμ •ν•œ 자극과 λ°˜μ‘μ„ 톡해 μ•„ν‚€ν…μ²˜μ˜ ν•œκ³„λ₯Ό μ‹œν—˜ν•©λ‹ˆλ‹€ [1, 2]. * **νŠΈλ ˆμ΄λ“œμ˜€ν”„ 식별 (Identification of trade-offs):** 뢄석 과정을 톡해 μ—¬λŸ¬ ν’ˆμ§ˆ 속성 κ°„μ˜ μƒν˜Έμž‘μš©κ³Ό 절좩점(Trade-off Points)을 λͺ…ν™•νžˆ λ“œλŸ¬λƒ…λ‹ˆλ‹€ [1, 2]. κ·Ήλ‹¨μ μœΌλ‘œ μ•ˆμ „ν•œ μ‹œμŠ€ν…œ(높은 μ•”ν˜Έν™”)을 κ΅¬ν˜„ν•˜λ©΄ μ„±λŠ₯(μ§€μ—° μ‹œκ°„)을 희생해야 ν•˜κ±°λ‚˜, κ°€μš©μ„±μ„ 높이기 μœ„ν•΄ 일관성을 양보해야 ν•˜λŠ” λ“±μ˜ 상좩 관계λ₯Ό μ°Ύμ•„λƒ…λ‹ˆλ‹€ [1, 2]. * **μœ„ν—˜ 및 민감도 지점 λ„μΆœ (Risks and sensitivity points):** μ•„ν‚€ν…μ²˜κ°€ μ–΄λŠ λΆ€λΆ„μ—μ„œ λ―Όκ°ν•œμ§€(sensitive)λ₯Ό νŒŒμ•…ν•©λ‹ˆλ‹€ [1]. 이λ₯Ό 톡해 μ„€κ³„μžκ°€ λ‹¨μˆœνžˆ 'μœ ν–‰ν•˜λŠ” νŒ¨ν„΄μ˜ 관점'μ—μ„œλ§Œ μƒκ°ν•˜λŠ” 것을 λ°©μ§€ν•˜κ³ , 라이브 운영(Live operation) 쀑 λ°œμƒν•  수 μžˆλŠ” μ˜ˆμƒμΉ˜ λͺ»ν•œ λ¬Έμ œλ“€λ‘œλΆ€ν„° μ‹œμŠ€ν…œμ„ λ³΄ν˜Έν•©λ‹ˆλ‹€ [1]. * **μ•„ν‚€ν…μ²˜ 비ꡐ 및 μ˜μ‚¬κ²°μ •:** ATAM은 μΈ‘μ • κ°€λŠ₯ν•œ ν’ˆμ§ˆ 기쀀을 λ°”νƒ•μœΌλ‘œ μ—¬λŸ¬ μ•„ν‚€ν…μ²˜ 접근법을 λΉ„κ΅ν•˜λŠ” 데 μ‚¬μš©λ˜λ©°, μˆœμˆ˜ν•œ 직감에 μ˜ν•œ 결정을 체계적인 μ˜μ‚¬κ²°μ • ν”„λ‘œμ„ΈμŠ€λ‘œ μ „ν™˜ν•©λ‹ˆλ‹€ [3, 4]. 이 κ³Όμ •μ˜ 핡심 μ‚°μΆœλ¬Όλ‘œλŠ” 'μœ„ν—˜ ν…Œλ§ˆ 및 νŠΈλ ˆμ΄λ“œμ˜€ν”„ λ³΄κ³ μ„œ'κ°€ μƒμ„±λ©λ‹ˆλ‹€ [5]. * **사전 뢄석을 ν†΅ν•œ μœ„ν—˜ μ™„ν™”:** μ‹œμŠ€ν…œμ΄ κ΅¬μΆ•λ˜κΈ° 전에 μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ˜ λ™μž‘μ„ 뢄석할 수 μžˆλŠ” κΈ°λ°˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€ [6]. μ‹€μ œ ꡬ좕 없이도 μ‹œμŠ€ν…œμ΄ μ΄ν•΄κ΄€κ³„μžμ˜ μš”κ΅¬λ₯Ό μΆ©μ‘±ν•˜λŠ”μ§€ κ²€μ¦ν•¨μœΌλ‘œμ¨ μ‹€μ§ˆμ μΈ λΉ„μš© 절감과 μœ„ν—˜ μ™„ν™” 효과λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€ [6]. ## βš–οΈ Trade-offs & Caveats ATAM μžμ²΄λŠ” μ‹œμŠ€ν…œμ˜ νŠΈλ ˆμ΄λ“œμ˜€ν”„λ₯Ό λ°ν˜€λ‚΄λŠ” 뢄석 λ°©λ²•λ‘ μ΄λ―€λ‘œ, 이 방법둠이 λ„μΆœν•˜λŠ” 핡심적인 μ œμ•½ 사항은 λ°”λ‘œ "λͺ¨λ“  μ•„ν‚€ν…μ²˜ 결정은 κ³§ νƒ€ν˜‘(Trade-off)"μ΄λΌλŠ” μ‚¬μ‹€μž…λ‹ˆλ‹€ [1]. * **ν’ˆμ§ˆ 속성 κ°„μ˜ 상좩:** μ„±λŠ₯, λ³΄μ•ˆ, κ°€μš©μ„±, μœ μ§€λ³΄μˆ˜μ„± λ“± λ‹€μ–‘ν•œ ν’ˆμ§ˆ 속성을 λ™μ‹œμ— μ™„λ²½ν•˜κ²Œ λ‹¬μ„±ν•˜λŠ” 것은 λΆˆκ°€λŠ₯ν•˜λ©°, ν•˜λ‚˜μ˜ ν’ˆμ§ˆ 속성을 μ΅œμ ν™”(예: 개발 속도 κ·ΉλŒ€ν™”)ν•˜λ©΄ ν•„μ—°μ μœΌλ‘œ λ‹€λ₯Έ 속성(예: ν–₯ν›„ μœ μ§€λ³΄μˆ˜μ„±)이 μ €ν•˜λ˜λŠ” λ°˜λŒ€ κΈ‰λΆ€κ°€ λ°œμƒν•¨μ„ 인정해야 ν•©λ‹ˆλ‹€ [1, 2]. * **νŒ¨ν„΄ 맹신에 λŒ€ν•œ κ²½κ³ :** νŠΉμ • μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ΄ ν˜„λŒ€μ μ΄κ³  μœ ν–‰ν•œλ‹€λŠ” 이유만으둜 μ„ νƒν•΄μ„œλŠ” μ•ˆ 되며, ꡬ체적인 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό λ°”νƒ•μœΌλ‘œ μ² μ €νžˆ ν•œκ³„λ₯Ό μ‹œν—˜ν•˜κ³  약점을 νŒŒμ•…ν•˜λŠ” 뢄석 과정을 λ°˜λ“œμ‹œ 거쳐야 ν•œλ‹€λŠ” μ œμ•½μ„ λΆ€μ—¬ν•©λ‹ˆλ‹€ [1]. ## πŸ”— Knowledge Connections ### Related Concepts #### [관계 μœ ν˜• A: μ•„ν‚€ν…μ²˜ 평가 및 기둝] - [[Architecture Decision Records (ADR)]] - μ—°κ²° 이유: ATAM 뢄석을 톡해 μ‹λ³„λœ νŠΈλ ˆμ΄λ“œμ˜€ν”„μ™€ μ•„ν‚€ν…μ²˜ κ²°μ • 사항, κ·Έ κ·Όκ±° 및 λŒ€μ•ˆλ“€μ„ λ¬Έμ„œν™”ν•˜μ—¬ κΈ°λ‘ν•˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€ [5, 7]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: ATAMμ—μ„œ λ„μΆœλœ 평가 κ²°κ³Όκ°€ μ–΄λ–»κ²Œ μ‹œμŠ€ν…œμ˜ 역사적 μžμ‚°μœΌλ‘œ 보쑴되고, μƒˆλ‘œμš΄ νŒ€μ›μ΄λ‚˜ μ΄ν•΄κ΄€κ³„μžμ—κ²Œ μ•„ν‚€ν…μ²˜μ˜ μ˜λ„λ₯Ό λͺ…ν™•νžˆ μ „λ‹¬ν•˜λŠ”μ§€ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€ [5, 8]. - [[ISO 25010 (ν’ˆμ§ˆ λͺ¨λΈ)]] - μ—°κ²° 이유: ATAMμ—μ„œ ꡬ체적인 μ‹œλ‚˜λ¦¬μ˜€λ‘œ ν‰κ°€ν•˜κ³ μž ν•˜λŠ” μ„±λŠ₯, ν™•μž₯μ„±, ν˜Έν™˜μ„± λ“± μ•„ν‚€ν…μ²˜μ˜ λΉ„κΈ°λŠ₯적 ν’ˆμ§ˆ μš”κ΅¬μ‚¬ν•­μ— λŒ€ν•œ ν‘œμ€€ν™”λœ 기쀀을 μ œκ³΅ν•©λ‹ˆλ‹€ [9, 10]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ•„ν‚€ν…μ²˜ νŠΈλ ˆμ΄λ“œμ˜€ν”„ 뢄석 μ‹œ, μ‹œμŠ€ν…œ μ„€κ³„μžκ°€ μ–΄λ–€ ꡬ체적인 ν’ˆμ§ˆ νŠΉμ„±λ“€μ„ μ„œλ‘œ λΉ„κ΅ν•˜κ³  νƒ€ν˜‘ν•΄μ•Ό ν•˜λŠ”μ§€ 객관적인 평가 척도λ₯Ό νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [5, 10]. #### [관계 μœ ν˜• B: μœ„ν—˜ 관리 λ©”μ»€λ‹ˆμ¦˜] - [[민감도 지점 (Sensitivity Points)]] - μ—°κ²° 이유: ATAM 평가λ₯Ό 톡해 λ„μΆœλ˜λŠ” 핡심 κ²°κ³Όλ¬Ό 쀑 ν•˜λ‚˜λ‘œ, μ•„ν‚€ν…μ²˜κ°€ νŠΉμ • μ‘°κ±΄μ΄λ‚˜ μ‹œλ‚˜λ¦¬μ˜€μ— μ–Όλ§ˆλ‚˜ μ·¨μ•½ν•˜κ²Œ λ°˜μ‘ν•˜λŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ§€μ μž…λ‹ˆλ‹€ [1]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ‹œμŠ€ν…œμ΄ 라이브 운영 μ‹œ 직면할 수 μžˆλŠ” 병λͺ© ν˜„μƒμ΄λ‚˜ μž₯μ•  μœ„ν—˜μ„ 사전에 μΈμ§€ν•˜μ—¬ μ‹œμŠ€ν…œμ˜ 신뒰성을 λ†’μ΄λŠ” λ°©μ•ˆμ„ ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1]. ### Deeper Research Questions - ATAM 평가 κ³Όμ •μ—μ„œ 좔상적인 ν’ˆμ§ˆ λͺ©ν‘œλ₯Ό λŒ€μ²΄ν•˜λŠ” ꡬ체적인 '자극과 λ°˜μ‘ μ‹œλ‚˜λ¦¬μ˜€'λŠ” 주둜 μ–΄λ–€ μ΄ν•΄κ΄€κ³„μžλ“€μ˜ ν•©μ˜λ₯Ό 거쳐 λ„μΆœλ˜λŠ”κ°€? - TARA λ“± λ‹€λ₯Έ μ•„ν‚€ν…μ²˜ 평가 ν”„λ ˆμž„μ›Œν¬μ™€ λΉ„κ΅ν–ˆμ„ λ•Œ, ATAM이 νŠΈλ ˆμ΄λ“œμ˜€ν”„λ₯Ό μ‹λ³„ν•˜λŠ” 방식은 μ‹€λ¬΄μ μœΌλ‘œ μ–΄λ–€ 차별점과 ν•œκ³„λ₯Ό μ§€λ‹ˆλŠ”κ°€? - μ• μžμΌ(Agile) ν™˜κ²½μ²˜λŸΌ λΉ λ₯Έ 개발과 반볡이 μ€‘μš”ν•œ μƒν™©μ—μ„œ, ATAMκ³Ό 같은 μ² μ €ν•œ μ‹œλ‚˜λ¦¬μ˜€ 기반의 μ•„ν‚€ν…μ²˜ 검증 과정을 μ–΄λ–»κ²Œ 병λͺ© 없이 μ μš©ν•  수 μžˆλŠ”κ°€? - λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€(Microservices)와 이벀트 기반(Event-Driven) μ•„ν‚€ν…μ²˜λ₯Ό ATAM으둜 비ꡐ 평가할 λ•Œ, λΆ„μ‚° μ‹œμŠ€ν…œ 특유의 λ³΅μž‘μ„±μ€ μ–΄λ–€ ꡬ체적인 νŠΈλ ˆμ΄λ“œμ˜€ν”„ 지점(Trade-off Points)으둜 λ‚˜νƒ€λ‚˜λŠ”κ°€? - ATAM의 핡심 μ‚°μΆœλ¬ΌμΈ 'μœ„ν—˜ ν…Œλ§ˆ 및 νŠΈλ ˆμ΄λ“œμ˜€ν”„ λ³΄κ³ μ„œ'λŠ” ν–₯ν›„ μ‹€μ œ μ½”λ“œ κ΅¬ν˜„μ΄λ‚˜ ν”„λ‘œν† νƒ€μ΄ν•‘(Prototyping) λ‹¨κ³„μ˜ μ „λž΅μœΌλ‘œ μ–΄λ–»κ²Œ κ΅¬μ²΄ν™”λ˜λŠ”κ°€? ### Practical Application Contexts - **Implementation:** λ°μ΄ν„°λ² μ΄μŠ€ μ‹€νŒ¨λ‚˜ 10λΆ„ λ‚΄ μ‚¬μš©μž 두 λ°° 증가와 같은 ATAM의 ꡬ체적인 ν…ŒμŠ€νŠΈ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό λ°”νƒ•μœΌλ‘œ, μ½”λ“œ λ ˆλ²¨μ—μ„œ 이λ₯Ό κ²¬λ”œ 수 μžˆλŠ” μž₯μ•  쑰치(예: μ„œν‚· 브레이컀)λ‚˜ ν™•μž₯ λ‘œμ§μ„ 직접 κ΅¬ν˜„ν•©λ‹ˆλ‹€ [1]. - **System Design:** λ‹¨μˆœνžˆ ν˜„μž¬ μœ ν–‰ν•˜λŠ” νŒ¨ν„΄(예: 무쑰건적인 MSA λ„μž…)을 λ”°λ₯΄λŠ” λŒ€μ‹ , ATAM의 μ‹œλ‚˜λ¦¬μ˜€ 기반 평가와 μ˜μ‚¬κ²°μ • 맀트릭슀λ₯Ό ν™œμš©ν•˜μ—¬ ν”„λ‘œμ νŠΈ μš”κ΅¬μ‚¬ν•­μ— κ°€μž₯ μ μ ˆν•œ μ•„ν‚€ν…μ²˜λ₯Ό μ „λž΅μ μœΌλ‘œ μ„ νƒν•©λ‹ˆλ‹€ [2, 3]. - **Operation / Maintenance:** ATAM을 톡해 λ°ν˜€μ§„ μ•„ν‚€ν…μ²˜μ˜ 민감도 지점(Sensitivity Points)을 기반으둜, μ‹œμŠ€ν…œμ˜ μ·¨μ•½ν•œ μ˜μ—­μ— λŒ€ν•œ λͺ¨λ‹ˆν„°λ§μ„ κ°•ν™”ν•˜κ³  운영 쀑 λ°œμƒν•  수 μžˆλŠ” λΆˆμΎŒν•œ 사고(unpleasant surprises)에 μ„ μ œμ μœΌλ‘œ λŒ€λΉ„ν•©λ‹ˆλ‹€ [1]. - **Learning Path:** κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό λ„˜μ–΄ μ‹œμŠ€ν…œμ˜ κ±°μ‹œμ μΈ 관점을 κ°€μ§€κΈ° μœ„ν•΄ ν•„μˆ˜μ μΈ λ‹¨κ³„λ‘œ, λ‹¨μˆœν•œ νŒ¨ν„΄μ˜ μ•”κΈ°κ°€ μ•„λ‹Œ μš”κ΅¬μ‚¬ν•­ κ°„μ˜ μΆ©λŒμ„ μΈμ§€ν•˜κ³  νƒ€ν˜‘ν•˜λŠ” μ•„ν‚€ν…μ²˜μ  사고 λŠ₯λ ₯을 λ°°μ–‘ν•©λ‹ˆλ‹€ [1]. - **My Project Relevance:** 초기 섀계 λ‹¨κ³„μ—μ„œ μ•„ν‚€ν…μ²˜ 결정이 ν–₯ν›„ λ³€κ²½ν•˜κΈ° 맀우 λΉ„μš©μ΄ 많이 λ“ λ‹€λŠ” 점을 κ³ λ €ν•  λ•Œ, μ‹œμŠ€ν…œ ꡬ좕 전에 μ„€κ³„μ˜ ν•œκ³„μ™€ μœ„ν—˜μ„±μ„ 미리 κ²€μ¦ν•˜μ—¬ λ§‰λŒ€ν•œ 기술 뢀채λ₯Ό λ°©μ§€ν•˜λŠ” 데 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [11, 12]. ### Adjacent Topics - [[TARA (Architecture Assessment)]] - ν™•μž₯ λ°©ν–₯: ATAMκ³Ό λ”λΆˆμ–΄ μ‚°μ—…κ³„μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ₯Ό ν‰κ°€ν•˜κ³  κ²€ν† ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” 또 λ‹€λ₯Έ 평가 κΈ°λ²•μœΌλ‘œ, μ•„ν‚€ν…μ²˜ 평가 λ°©λ²•λ‘ μ˜ 지식을 λ”μš± ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [13]. - [[μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 침식 (Software Architecture Erosion)]] - ν™•μž₯ λ°©ν–₯: ATAM 등을 톡해 초기 섀계 λ‹Ήμ‹œ μ˜λ„λ˜μ—ˆλ˜ μ•„ν‚€ν…μ²˜κ°€ μ‹œμŠ€ν…œμ˜ 지속적인 진화와 μœ μ§€λ³΄μˆ˜ κ³Όμ •μ—μ„œ μ–΄λ–»κ²Œ λ³€μ§ˆλ˜κ³  λΆ•κ΄΄λ˜λŠ”μ§€, 그리고 이λ₯Ό μ–΄λ–»κ²Œ 막을 것인지에 λŒ€ν•œ 운영적 κ΄€μ μ˜ μ—°κ΅¬λ‘œ λ‚˜μ•„κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€ [14]. --- *Last updated: 2026-05-02*