핵심 인사이트 (3줄 요약)

  1. 본질: 성능 진단의 3대 지표인 응답 시간(Response Time), 동시 사용자 수(Concurrent User), 처리량(TPS, Transactions Per Second)은 상호 의존적이며, 하나의 최적화가 다른 지표에 영향을 준다.
  2. 가치: TPS가 낮고 응답 시간이 길면 병목(Bottleneck)의 위치를 정확히 특정하지 않은 채 서버 증설만으로는 해결되지 않는다.
  3. 판단 포인트: 목표 TPS, 최대 동시 사용자 수, 허용 응답 시간(예: 95th percentile ≤ 3초)을 사전에 정의하고 부하 테스트 결과와 비교하는 것이 감리의 핵심이다.

Ⅰ. 개요 및 필요성

성능(Performance)은 기능 정확성과 함께 소프트웨어 품질의 핵심 요소다. 특히 국민 다수가 사용하는 공공 포털, 행정 시스템은 특정 시점(수능 원서 접수, 재난지원금 신청 등)에 순간 급증하는 부하(Peak Load)에도 안정적으로 동작해야 한다. ISO/IEC 25010(소프트웨어 품질 모델)은 성능 효율성(Performance Efficiency)을 품질 특성으로 명시한다.

지표영문단위정의
응답 시간Response Time초(sec), 밀리초(ms)요청 전송부터 응답 수신까지의 시간
처리량TPS (Transactions Per Second)tps초당 처리 완료 트랜잭션 수
동시 사용자 수Concurrent User동시에 활성 요청을 하는 사용자 수
오류율Error Rate%전체 요청 중 오류 응답 비율
포화점Saturation Point-TPS가 더 이상 증가하지 않는 부하 수준
트랜잭션 유형목표 응답 시간비고
단순 조회≤ 1초95th percentile
복잡 조회/검색≤ 3초95th percentile
파일 업로드≤ 10초10MB 기준
보고서 생성≤ 30초비동기 처리 권장
┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ Problem      │──▶│ Core Idea    │──▶│ Expected Gain │
└──────────────┘    └──────────────┘    └──────────────┘
  • 📢 섹션 요약 비유: 응답 시간은 "음식 주문 후 첫 번째 요리가 나오는 시간"이고, TPS는 "주방에서 시간당 처리하는 주문 수"다. 손님(동시 사용자)이 많아질수록 두 지표 모두 악화된다.

Ⅱ. 아키텍처 및 핵심 원리

┌────────────────────────────────────────────────────────────┐
│              성능 지표 상관관계 그래프                       │
│                                                            │
│  TPS                                                       │
│   ▲                                                        │
│   │      ╭──────────╮  ← 포화점 (Saturation Point)         │
│   │    ╭─╯           ╰──────── TPS 하락 (과부하)            │
│   │  ╭─╯                                                   │
│   │ ─╯  (선형 증가 구간)                                    │
│   └────────────────────────────────── 동시 사용자 수         │
│                                                            │
│  응답시간                                                   │
│   ▲                                                        │
│   │                          ╭──────────  (급격 증가)       │
│   │                      ╭───╯                             │
│   │ ─────────────────────╯  (허용 한계 초과)                │
│   └────────────────────────────────── 동시 사용자 수         │
└────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│  총 응답 시간 = 네트워크 지연 + 서버 처리 + DB 처리           │
│                                                            │
│  클라이언트              WAS                  DB            │
│  ┌───────┐  요청(ms)  ┌───────┐  쿼리(ms) ┌───────┐        │
│  │       │ ─────────► │       │ ─────────► │       │        │
│  │       │            │       │            │       │        │
│  │       │            │       │ ◄───────── │       │        │
│  │       │ ◄───────── │       │  결과 반환  └───────┘        │
│  └───────┘  응답(ms)  └───────┘                            │
│                                                            │
│  분석 포인트:                                               │
│  ┌──────────────────────────────────┐                      │
│  │ N/W 지연:  20ms  (허용 기준 < 50ms) │                    │
│  │ WAS 처리: 150ms  (허용 기준 < 200ms) │                   │
│  │ DB 처리:  830ms  ← 병목! (목표 < 100ms) │               │
│  │ 총 응답:  1,000ms                  │                    │
│  └──────────────────────────────────┘                      │
└────────────────────────────────────────────────────────────┘

단순 평균(Average) 응답 시간은 실제 사용자 경험을 왜곡한다. 99%의 요청이 1초 이내이지만 1%가 30초라면 평균은 1.3초처럼 보이지만 실제로는 큰 문제다.

측정 방식의미감리 적용
평균 (Average)전체 응답 시간 평균참고용 (왜곡 가능)
중앙값 (P50)50%의 요청이 이 시간 이내일반 사용자 경험
P9595%의 요청이 이 시간 이내표준 감리 기준
P9999%의 요청이 이 시간 이내고품질 서비스 기준
최대값 (Max)가장 느린 요청타임아웃 설정 기준
  • 📢 섹션 요약 비유: 평균 응답 시간만 보는 것은 "가장 빠른 선수와 가장 느린 선수의 평균으로 팀 전체 수준을 판단"하는 것이다. P95가 실제 대부분 사용자의 경험을 반영한다.

Ⅲ. 비교 및 연결

테스트 유형목적부하 패턴주요 측정 지표
부하 테스트 (Load Test)목표 부하 성능 검증점진적 증가TPS, 응답 시간
스트레스 테스트 (Stress Test)한계점(Break Point) 탐색한계 초과 부하포화점, 오류율
내구성 테스트 (Soak Test)장시간 운영 안정성지속 부하메모리 누수, TPS 변화
스파이크 테스트 (Spike Test)순간 급증 대응급격한 피크복구 시간
볼륨 테스트 (Volume Test)대용량 데이터 처리대용량 데이터응답 시간 변화
도구프로토콜 지원특징사용 환경
JMeterHTTP, JDBC, JMS, FTP오픈소스, GUI범용
GatlingHTTP, WebSocket코드 기반, 고성능개발자 친화
nGrinderHTTPNAVER 개발, 분산 테스트국내 공공 다수 사용
LocustHTTPPython 기반MSA 환경
k6HTTP, WebSocketJS 기반, CI/CD 연동DevOps 환경
  • 📢 섹션 요약 비유: 부하 테스트는 "실제 개업 전 친구들을 초대해 식당을 가득 채워보는 리허설"이다. 예상치 못한 병목(주방 동선)을 미리 발견하고 개선할 수 있다.

Ⅳ. 실무 적용 및 기술사 판단

감리인은 성능 목표가 명확히 문서화되었는지 먼저 확인한다.

┌─────────────────────────────────────────────────────────────┐
│           성능 목표 정의 체크리스트                           │
│                                                             │
│  □ 최대 동시 사용자 수: ____명                               │
│  □ 목표 TPS: ____tps                                        │
│  □ 허용 응답 시간 (P95): ____초                              │
│  □ 목표 가용성: ____% (예: 99.9%)                            │
│  □ 피크 부하 배수: ____배 (예: 평균의 3배)                   │
│  □ 오류율 허용 기준: ____% 미만                              │
│                                                             │
│  ★ 목표 미정의 시: 감리 지적 사항 (성능 목표 부재)            │
└─────────────────────────────────────────────────────────────┘
상황판단조치
성능 목표 문서 없음심각한 지적성능 요건 정의서 작성 요구
부하 테스트 미수행주요 지적테스트 수행 후 재감리
P95 응답 시간 목표 초과보완 필요병목 원인 분석 및 튜닝
오류율 1% 초과주요 지적오류 원인 분석 필수
포화점이 목표 부하 이하심각한 지적아키텍처 개선 또는 증설

판단 체크리스트

  1. 위험 시나리오와 점검 범위가 문서로 합의되었는가?
  2. 지표·증적·로그가 재현 가능하게 수집되는가?
  3. 예외 상황과 오탐·미탐 처리 절차가 있는가?
  4. 재시험 또는 후속 조치 기준이 수치로 정의되었는가?
  • 📢 섹션 요약 비유: 성능 목표 없이 시스템을 납품하는 것은 "달리기 경기에서 목표 기록 없이 출발"하는 것이다. 어디까지 빨라야 합격인지 기준이 없으면 검증 자체가 불가능하다.

Ⅴ. 기대효과 및 결론

명확한 성능 지표(TPS, 응답 시간, 동시 사용자)를 기반으로 한 체계적 감리는 오픈 직후 발생하는 서비스 지연·장애를 사전 예방한다. 2021년 재난지원금 신청 시스템 마비, 2023년 수능 원서 접수 장애 등의 사례는 성능 감리 부재가 실제 국민 불편으로 직결됨을 보여준다. P95 기반 응답 시간 목표 관리와 사전 부하 테스트 수행은 공공정보화 성능 감리의 기본 요건이다.

확장 방향은 ① Policy as Code, ② Continuous Audit, ③ 인공지능(AI, Artificial Intelligence) 기반 이상 탐지와 결합하는 것이다.

  • 📢 섹션 요약 비유: 성능 감리는 "고속도로 개통 전 차량 통행 테스트"다. 실제 차가 다니기 전에 얼마나 많은 차를 동시에 처리할 수 있는지, 어디서 막히는지를 반드시 사전에 확인해야 한다.

📌 관련 개념 맵

관계개념설명
상위 개념ISO/IEC 25010 성능 효율성소프트웨어 품질 모델 성능 특성
상위 개념비기능 요건 (Non-Functional Requirements)성능 목표의 상위 분류
하위 개념TPS (Transactions Per Second)초당 처리 트랜잭션 수
하위 개념P95 응답 시간95백분위 응답 시간 기준
하위 개념포화점 (Saturation Point)성능 한계 지점
연관 개념리틀의 법칙 (Little's Law)TPS-사용자-응답시간 관계 공식
연관 개념APM (Application Performance Management)실시간 성능 모니터링 도구

📈 관련 키워드 및 발전 흐름도

성능 목표 → 성능 진단 지표 TPS/응답시간 → SLO·APM 지표

👶 어린이를 위한 3줄 비유 설명

  1. TPS는 "피자 가게에서 한 시간에 몇 판을 만들 수 있는지"이고, 응답 시간은 "주문하고 피자를 받을 때까지 얼마나 기다리는지"야.
  2. 손님이 너무 많아지면(동시 사용자 증가) 피자 굽는 속도는 그대로인데 기다리는 줄이 길어지면서 응답 시간이 급격히 늘어.
  3. P95는 "100명 중 95명이 이 시간 안에 피자를 받았다"는 뜻이야. 단 5명이 30분 기다려도 평균은 괜찮아 보일 수 있어서 P95가 더 정직한 기준이야.