📈 로드 밸런싱 알고리즘 A to Z

트래픽을 여러 서버에 분산시켜 과부하를 방지하고 응답 속도를 높여주기 위해 사용하는 장치가 로드 밸런서(Load Balancer) 인데요,


현업에서 가장 많이 사용되는 5가지 로드 밸런싱 알고리즘에 대한 장단점과 샘플 구현 코드까지 정리한 글이 있어 공유드립니다.


글에서 정리한 로드 밸런싱 알고리즘은 다음과 같습니다.


📌 라운드 로빈(Round Robin)

# 작동 원리

  • 요청이 목록의 첫 번째 서버로 전송됩니다.

  • 다음 요청은 두 번째 서버로 전송되는 식입니다.

  • 목록의 마지막 서버 다음에는 알고리즘이 첫 번째 서버로 돌아갑니다.

# 사용 시기

  • 모든 서버의 처리 능력이 비슷하고 요청 처리에 동등한 능력을 가진 경우.

  • 단순성과 부하의 고른 분산이 더 중요한 경우.

# 장점

  • 구현과 이해가 쉽습니다.

  • 트래픽의 고른 분산을 보장합니다.

# 단점

  • 서버 부하나 응답 시간을 고려하지 않습니다.

  • 서버의 처리 능력이 다를 경우 비효율성을 초래할 수 있습니다.


📌 가중 라운드 로빈(Weighted Round Robin)

# 작동 원리

  • 각 서버에는 처리 능력이나 가용 자원에 따라 가중치가 할당됩니다.

  • 높은 가중치의 서버는 들어오는 요청 중 비례적으로 더 큰 부분을 받습니다.

# 사용 시기

  • 서버의 처리 능력이나 가용 자원이 다를 때.

  • 각 서버의 용량에 따라 부하를 분산시키고 싶을 때.

# 장점

  • 서버 용량에 따라 부하를 균형 있게 조정합니다.

  • 서버 자원을 더 효율적으로 사용합니다.

# 단점

  • 단순 라운드 로빈보다 구현이 약간 더 복잡합니다.

  • 현재 서버 부하나 응답 시간을 고려하지 않습니다.


📌 최소 연결(Least Connections)

# 작동 원리

  • 각 서버의 활성 연결 수를 모니터링합니다.

  • 활성 연결 수가 가장 적은 서버에 들어오는 요청을 할당합니다.

# 사용 시기

  • 현재 활성 연결 수에 따라 부하를 분산시키고 싶을 때.

  • 서버의 처리 능력은 비슷하지만 동시 연결 수준이 다를 수 있을 때.

# 장점

  • 현재 서버 부하에 따라 더 역동적으로 부하를 균형 조정합니다.

  • 어떤 서버도 많은 수의 활성 연결로 과부하되는 것을 방지하는 데 도움이 됩니다.

# 단점

  • 서버의 처리 능력이 다를 경우 최적이 아닐 수 있습니다.

  • 각 서버의 활성 연결을 추적해야 합니다.


📌 최소 응답 시간(Least Response Time)

# 작동 원리

  • 각 서버의 응답 시간을 모니터링합니다.

  • 응답 시간이 가장 빠른 서버에 들어오는 요청을 할당합니다.

# 사용 시기

  • 응답 시간이 다양한 서버가 있고 요청을 가장 빠른 서버로 라우팅하고 싶을 때.

# 장점

  • 응답 시간이 가장 빠른 서버를 선택하여 전체 지연 시간을 최소화합니다.

  • 서버 응답 시간의 변화에 역동적으로 적응할 수 있습니다.

  • 빠른 응답을 제공하여 사용자 경험 개선에 도움이 됩니다.

# 단점

  • 분산 시스템에서 도전적일 수 있는 서버 응답 시간의 정확한 측정이 필요합니다.

  • 서버 부하나 연결 수와 같은 다른 요인을 고려하지 않을 수 있습니다.


📌 IP 해시(IP Hash)

# 작동 원리

  • 클라이언트의 IP 주소에서 해시 값을 계산하고 이를 사용하여 요청을 라우팅할 서버를 결정합니다.

# 사용 시기

  • 같은 클라이언트의 요청이 항상 같은 서버로 전달되어야 하는 세션 지속성(Session Persistence)이 필요할 때.

# 장점

  • 구현이 간단합니다.

  • Sticky Session이 필요한 애플리케이션에 유용합니다.

# 단점

  • 특정 IP 주소가 다른 주소보다 더 많은 트래픽을 생성할 경우 불균등한 부하 분산으로 이어질 수 있습니다.

  • 서버가 다운되면 해시 매핑을 재구성해야 하므로 유연성이 부족합니다.


샘플 구현 코드 등과 같은 상세한 내용은 공유드린 원문 링크를 참고해주세요.


📚 원문

  • https://maily.so/devpill/posts/67aebb20?utm_source=oneoneone

로드 밸런싱 알고리즘 A to Z: 코드와 함께 파헤치는 5가지 전략

롱라이프랩 뉴스레터

로드 밸런싱 알고리즘 A to Z: 코드와 함께 파헤치는 5가지 전략

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 6월 28일 오전 6:27

댓글 0

    함께 읽은 게시물

    6월 초, 새로운 바이브 코딩과 SW 개발의 전환의 시대

    ... 더 보기

    2025년 2분기 AI 세미나

    55check.imweb.me

    2025년 2분기 AI 세미나

    LY Corporation에서 기술 컨퍼런스 Tech-Verse가 열립니다.

    ... 더 보기

    Tech-Verse 2025

    Tech-Verse 2025

    Tech-Verse 2025

    조회 330


    경쟁력 있는 주니어 인재

    ... 더 보기

    경쟁력 있는 주니어 개발자가 되는 방법

    F-Lab : 상위 1% 개발자들의 멘토링

    경쟁력 있는 주니어 개발자가 되는 방법

     • 

    저장 6 • 조회 743


    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 160 • 조회 4,482


    요즘 실리콘밸리 스타트업들의 채용 문구 트렌드는 “우리 🐶빡쎄게 일해요” 라고 한다.

    조회 1,871


    PaperKit (feat. WWDC 2025)

    W

    ... 더 보기

    Meet PaperKit (feat. WWDC 2025)

    iOYES

    Meet PaperKit (feat. WWDC 2025)