본문 바로가기
개발

병목

by 바코94 2023. 7. 28.

wiki)
병목(영어: bottleneck) 현상은 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상을 말한다. "병목"이라는 용어는 물이 병 밖으로 빠져나갈 때 병의 몸통보다 병의 목부분의 내부 지름이 좁아서 물이 상대적으로 천천히 쏟아지는 것에 비유한 것이다.

서비스 이용시 응답 시간이 11초 가 걸렸다(로딩이 너무 길다). 무엇을 해야할까?

가장 먼저 병목을 파악해야한다.

다음과 같은 예시를 보자.
유저가 요청을 하면 응답이 되기까지 a과정과 b과정과 c과정이 있다. a는 0.1초, b는 0.9초 c는 10초가 걸린다. 각 과정은 순차적이어서 모든 과정의 소요 시간을 더하면 응답 시간이 된다고 하자.(0.1 + 0.9 + 10 = 11초) 

우리의 목표가 2초 이내 응답 시간 준수라고 하면 무엇을 개선해야 할까? 
a 과정을 0.01초로 만드는 것? c를 0.9초 이내로 만드는것?

우리가 고속도로에서 정체가 발생했다고 하자. 그렇다면 어디서 어느 정도 막히는지 부터 본다. 사고가 나서 해당 부분에 극심한 정체가 일어난다면 그 부분을 해소부터 해야한다. 이 때는 사고 발생 지역이 병목이다. 사고가 난 지역이 병목인데, 원활한 도로를 더 원활하게 한다고 해서 정체가 해소되지는 않는다.

가장 먼저 해야할 것은 목표를 달성하기 위해 시급한 것이 무엇인가에 대한 판단이다. 응답 과정에서의 병목을 찾고 개선하는 것이 필요하다.

'개발' 카테고리의 다른 글

4년차가 되고 나서 회고  (0) 2023.09.27
성능이 세일즈에 미치는 영향(빅테크 레퍼런스)  (0) 2023.07.31
평균의 함정  (0) 2023.07.28
단일 장애점  (0) 2023.07.28
스크럼가이드 2020 요약  (0) 2023.05.25