JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

대규모 트래픽 처리를 위한 부하테스트 입문/실전

부하 테스트의 기본 개념

취준생이 대규모 트래픽 처리 경험을 쌓는 방법 ?!
현업에서 부하 테스트를 왜 할까?
처리량(Throughput), 지연 시간(Latency)
부하 테스트 툴 선정 (k6)
[실습] EC2에 간단한 API 서버 셋팅하기
[실습] EC2에 부하 테스트 툴 셋팅하기
[실습] 내가 구성한 백엔드 서버는 1초당 몇 개의 요청을 견뎌낼 수 있을까?
[실습] 사용하지 않는 EC2 종료하기

부하 테스트를 통해 ‘병목 지점’ 진단하기

병목 지점 (
부하 테스트의 전체 흐름
부하 테스트 시 주의점
[실습] 부하 테스트 할 인프라 구성을 그림으로 파악하기
[실습] AWS EC2 셋팅하기
[실습] AWS RDS 셋팅하기
[실습] AWS ELB 생성하기
[실습] EC2에 백엔드 서버(Spring Boot) 셋팅하기
[실습] 내가 구성한 인프라는 1초당 몇 개의 요청을 견뎌낼 수 있을까?
모니터링(Monitoring), 메트릭(Metric)
CPU, 메모리(Memory), 디스크(Disk)
[실습] EC2 모니터링 셋팅하기
[실습] RDS 모니터링 셋팅하기
[보충 강의] ELB의 CPU, 메모리는 왜 측정하지 않나요?
[실습] 각 서버의 CPU, 메모리를 한 눈에 볼 수 있도록 셋팅하기
[실습] 부하 테스트를 통해 병목 지점 진단하기
[보충 강의] 실시간으로 CPU와 메모리를 관측하는 방법

병목 지점을 해결해 성능 개선하기

가용성(Availability), 시스템 이중화
수평적 확장, 수직적 확장, 캐싱
트래픽 증가에 따른 시스템 설계 및 확장 방법
[실습] 병목 지점(DB) 해결하기
[실습] 병목 지점(웹 애플리케이션 서버) 해결하기
부하 테스트의 전체 흐름 다시 점검
← 블로그 목록으로 돌아가기

병목 지점 (

JSCODE 박재성
JSCODE 박재성
2026. 04. 01.
author
JSCODE 박재성
category
부하테스트
createdAt
Dec 6, 2025 03:41 AM
isPublic
isPublic
series
대규모 트래픽 처리를 위한 부하테스트 입문/실전
slug
what-is-bottleneck
type
post
updatedAt
Apr 1, 2026 09:00

✅ 병목 지점(Bottleneck Point)이란?

부하테스트에서 병목 지점(Bottleneck Point)이라는 말을 많이 사용한다. 병목 지점(Bottleneck Point)이란, 전체 시스템에서 특정 서버 자원(CPU, Memory 등)이 한계에 도달해 전체 성능이 저하되는 구간을 의미한다.
고속 도로에 비유하자면 길이 갑자기 좁아지는 구간에서 차가 확 막히는 경우가 많다. 3차선 도로가 소화할만한 차들이 갑자기 2차선으로 몰려들면서 정체가 발생한다. 그럼 이 2차선 구간에서 발생한 정체를 보고 병목 지점(Bottlenectk Point)라고 얘기한다.
notion image
전체적인 고속 도로 정체를 해결하기 위해서는 교통 정체가 일어난 곳을 해결해야 한다. 정체가 없는 3차선 도로를 아무리 더 넓혀봐야, 2차선 도로의 정체가 나아지지 않는다. 정체가 발생한 2차선 도로를 해결해야 전체적인 고속 도로 정체가 해결된다. 이와 비슷하게 시스템의 성능을 개선하려면 ‘병목 지점’을 개선해야 한다.
 
 

✅ ’병목 지점의 Throughput’이 곧 ‘전체 Throughput’이다.

notion image
A~B~C까지 1시간에 통과할 수 있는 자동차의 대수가 300대이다. 왜냐하면 A~B의 구간에서 아무리 1시간에 1,000대를 통과시킨다고 하더라도, B~C 구간에서 1시간에 300대만 통과할 수 있기 때문이다.
시스템에서도 동일하게 적용된다. 사용자 ↔ 백엔드 서버 ↔ DB의 구조에서 백엔드 서버가 1초에 1,000개의 요청을 처리할 수 있고, DB가 1초에 300개의 요청을 처리할 수 있다고 가정하자. 그러면 전체적인 시스템에서 1초당 처리할 수 있는 요청의 양은 300개이다.
위 사례를 통해 ‘병목 지점의 Throughput’이 곧 ‘전체 Throughput’이라는 걸 알 수 있다.
 
 

✅ 특정 병목 지점을 해소하면 다른 곳에서 새로운 병목 지점이 발생한다.

notion image
A~B~C 구간에서 통과할 수 있는 자동차의 대수는 시간당 300대이다. A~B~C 구간을 통과할 수 있는 자동차 대수를 늘리기 위해 병목 지점인 B~C 구간을 아래와 같이 개선해봤다.
 
notion image
이제는 A~B~C 구간에서 통과할 수 있는 자동차의 대수는 시간당 1,000대 이다. B~C 구간에서는 시간당 1,500대의 자동차가 지나갈 수 있을지라도, A~B 구간에서는 시간당 1,000대의 자동차만 지나갈 수 있기 때문이다.
위 예를 통해 특정 병목 지점을 해소하면 다른 곳에서 새로운 병목 지점이 발생한다는 점을 알 수 있다.
📎
이 글은 대규모 트래픽 처리를 위한 부하테스트 입문/실전 강의의 수업 자료 중 일부입니다.