컴퓨팅 파워 (Compute / CPU): 로직을 수행하고 연산을 처리하는 물리적 능력
저장 공간 (Storage Space): 데이터를 적재하는 물리적 용량 (메모리 RAM, 디스크 SSD/HDD)
저장소 계층 및 I/O 경로 (Storage Hierarchy): 데이터가 어디에 위치하며 어떤 물리적 경로를 거치는가 (RAM ➔ Local SSD ➔ Network DB). 지연 시간의 근본 원인
네트워크 (Network Bandwidth & Topology): 노드 간 데이터 이동 통로와 물리적 거리
시스템 복잡도 (Cognitive Load / Blast Radius): 미들웨어와 분산 노드가 늘어날 때 발생하는 인적 운영 제약 및 장애 전파 범위
대기 시간 (Latency): 하나의 요청이 처리되거나 응답이 돌아오는 데 걸리는 절대적 시간
처리량 (Throughput): 단위 시간당 시스템이 소화할 수 있는 일의 총량 (TPS, QPS)
정합성 (Consistency): 분산된 데이터 간의 일치 여부와 신뢰도
가용성 (Availability): 시스템이 멈추지 않고 정상 응답을 제공하는 확률
저장소 계층 ➔ 대기 시간: 데이터를 원격 네트워크 DB(느린 계층)에서 인메모리 캐시(빠른 계층)로 옮길수록 I/O 대기 시간이 사라져 Latency가 극적으로 단축
동기화 ➔ 처리량/대기 시간: 모든 노드가 완벽한 정합성을 맞출 때까지 락을 잡고 대기(Blocking)하면, Throughput은 바닥을 치고 Latency는 치솟습니다. 반대로 이벤트를 비동기 큐로 흐르게 두면 처리량은 늘어나지만 일시적 정합성이 깨짐
분산/미들웨어 ➔ 복잡도: 단일 서버의 한계를 넘어 스케일 아웃과 미들웨어를 붙일수록 처리량의 한계는 늘어나지만, 시스템 복잡도와 장애 반경이 폭발적으로 증가
공간과 복잡도를 지불하여 시간을 살 것인가? (예: 캐싱과 비동기 큐 도입 ➔ 속도 확보 vs 데이터 불일치 및 운영 복잡도 감수)
처리량을 포기하고 정합성을 지킬 것인가? (예: 엄격한 트랜잭션 락 ➔ 데이터 안전성 확보 vs 트래픽 병목 감수)
유연성을 버리고 단순성(Scale-up)을 택할 것인가? (예: 복잡한 MSA 대신 고성능 단일 서버 ➔ 구조적 깨끗함 확보 vs 물리적 확장 한계 감수)
시스템의 목적과 목표, 사용자 예상 시나리오, 실제 비용과 책임 및 감당 가능한 범위 등을 고려하여 자원 배분의 최적화 설계를 한다.