핵심 인사이트 (3줄 요약)
- 품질 속성의 실체화: 아키텍처 전술(Tactics)은 가용성, 성능, 보안성 등 추상적인 품질 속성(Quality Attributes)을 시스템에 구체적으로 구현하기 위한 설계 결정들의 집합입니다.
- 디자인 패턴의 기반: 아키텍처 패턴이나 디자인 패턴은 여러 개의 전술이 복합적으로 패키징된 형태입니다. 전술은 패턴을 구성하는 가장 기초적인 아키텍처 설계의 '원자 단위'입니다.
- 상충점 조율 (Trade-off): 특정 전술을 채택하면 하나의 품질 속성은 향상되지만 다른 품질 속성이 희생될 수 있으므로(예: 보안 전술 도입 시 성능 저하), 전술 간의 균형을 맞추는 것이 아키텍처 설계의 핵심입니다.
Ⅰ. 개요 (Context & Background)
소프트웨어 아키텍처에서 요구사항은 크게 기능적 요구사항과 비기능적 요구사항(품질 속성)으로 나뉩니다. 품질 속성(성능, 가용성, 보안성, 수정 용이성 등)은 단일 기능으로 달성되는 것이 아니라, 시스템 전반의 구조적 설계를 통해 확보해야 합니다. **아키텍처 전술(Tactics)**은 이러한 품질 요구사항 목표에 도달하기 위해 아키텍트가 선택할 수 있는 검증된 설계 기법이자 전략적 통제 수단입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
전술은 품질 속성별로 세분화되어 있으며, 특정 '자극(Stimulus)'에 대해 시스템의 '응답(Response)'을 제어하는 매커니즘으로 동작합니다.
+-------------------------------------------------------------+
| Architecture Tactics by Quality Attribute |
+-------------------------------------------------------------+
| [ Availability (가용성 전술) ] |
| - 결함 탐지 (Fault Detection) : Ping/Echo, Heartbeat |
| - 결함 복구 (Fault Recovery) : Redundancy(이중화/Active-Passive) |
| - 결함 예방 (Fault Prevention): 트랜잭션 보장, 예외 처리 |
+-------------------------------------------------------------+
| [ Performance (성능 전술) ] |
| - 자원 요구 통제 : 샘플링 축소, 이벤트 큐(Queue) 속도 조절 |
| - 자원 관리 : Concurrency(다중 스레드), Caching(캐시) |
| : Resource Pool(DB 커넥션 풀 등) |
+-------------------------------------------------------------+
| [ Security (보안성 전술) ] |
| - 공격 저항 : Authentication(인증), Authorization(인가) |
| : Data Encryption(암호화) |
| - 공격 탐지 : IDS/IPS 침입 탐지, Audit Trail(감사 로그) |
+-------------------------------------------------------------+
| [ Modifiability (수정 용이성 전술) ] |
| - 결합도 감소 (Reduce Coupling) : 인터페이스 추상화, 다형성 |
| - 응집도 증가 (Increase Cohesion): 단일 책임 원칙(SRP) 적용 |
| - 의존성 지연 (Defer Binding) : 런타임 의존성 주입(DI) |
+-------------------------------------------------------------+
전술은 단독으로 쓰이기보다, 목적에 맞춰 조합되어 하나의 거대한 아키텍처 패턴을 형성합니다. (예: Active-Passive 이중화 전술 + Heartbeat 전술 = 고가용성 클러스터 패턴)
Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)
| 개념 분류 | 아키텍처 전술 (Architecture Tactics) | 디자인 패턴 (Design Patterns) |
|---|---|---|
| 정의 | 단일 품질 속성을 달성하기 위한 구체적인 설계 기법 | 여러 전술이 결합되어 특정 설계 문제를 해결하는 템플릿 |
| 추상화 수준 | 낮음 (원자적, 개별적 기법) | 중간 ~ 높음 (구조적 뼈대) |
| 주요 목적 | 비기능적 요구사항(품질 속성) 제어 | 클래스/객체 간의 구조화 및 재사용성 향상 |
| 예시 | 폴링(Polling), 캐싱(Caching), 암호화 | 퍼사드(Facade), 팩토리(Factory), 옵저버(Observer) |
Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)
- 아키텍처 평가 (ATAM): ATAM 방법론에서 민감도점(Sensitivity Point)과 상충점(Trade-off Point)을 찾을 때, 아키텍트가 어떤 '전술'을 사용했는지를 역추적합니다. "성능 저하의 원인은 보안 전술(암호화) 도입에 따른 상충점이다"와 같이 논리적 분석이 가능해집니다.
- 감리 관점: 시스템 구조 감리 시, 제안서에 명시된 목표(예: 99.99% 가용성)를 달성하기 위해 어떠한 '가용성 전술(이중화, 서킷 브레이커 등)'이 아키텍처 모델(물리 배포 뷰, 프로세스 뷰)에 실체화되어 반영되었는지를 추적(Traceability) 검증합니다.
Ⅴ. 기대효과 및 결론 (Future & Standard)
아키텍처 전술은 막연하게 느껴지는 "성능을 높여라", "보안을 강화하라"는 요구사항을 엔지니어가 구현할 수 있는 구체적인 설계 행위의 목록으로 매핑해 줍니다. 클라우드 네이티브 환경에서도 Auto-Scaling(성능/자원 관리 전술), 서킷 브레이커(가용성/결함 복구 전술)와 같이 전술의 본질은 변하지 않으며, 더욱 정교한 프레임워크로 구현되고 있습니다.
📌 관련 개념 맵 (Knowledge Graph)
- 상위 개념: 소프트웨어 아키텍처, 품질 속성 (Quality Attributes)
- 연관/하위 개념: ATAM (Architecture Trade-off Analysis Method), 아키텍처 패턴, 상충점 (Trade-off)
- 주요 전술 분류: 성능 전술, 가용성 전술, 수정 용이성 전술, 보안 전술
👶 어린이를 위한 3줄 비유 설명
- 축구팀이 "우승(품질 속성)"이라는 목표를 이루려면 막연히 열심히 뛰는 것만으론 안 돼요.
- 수비수를 늘리거나(보안 전술), 빠른 공격수를 교체 투입하는(성능 전술) 아주 구체적인 '전술'이 필요하죠.
- 아키텍처 전술은 소프트웨어라는 팀이 무너지지 않고 빠르고 안전하게 동작하도록 감독이 지시하는 구체적인 작전 지시랍니다!