블로그/System Design
System Design주니어2026-06-01

로드밸런싱 알고리즘 종류와 선택 기준은?

한 줄 답변

로드밸런싱은 여러 서버에 트래픽을 분산하여 가용성을 높이는 기술입니다. 서버 성능이 동일하면 라운드 로빈, 요청 처리 시간이 가변적이라면 최소 연결(Least Connection) 방식을 선택하는 것이 핵심입니다.

핵심 개념 정리

로드밸런서는 클라이언트와 서버 풀 사이에서 트래픽을 중재하며 시스템의 고가용성과 확장성을 보장하는 핵심 컴포넌트입니다. 단순히 서버를 늘리는 것(Scale-out)만으로는 충분하지 않으며, 특정 서버에 부하가 집중되지 않도록 효율적인 알고리즘을 적용하는 것이 필수적입니다.

가장 기본적인 방식인 라운드 로빈은 각 서버에 순차적으로 요청을 전달합니다. 이는 구현이 매우 간단하고 오버헤드가 적어 서버들의 스펙이 동일하고 요청의 성격이 비슷할 때 매우 효율적입니다. 하지만 실무에서는 서버의 CPU/Memory 사양이 다르거나, 어떤 요청은 10ms가 걸리고 어떤 요청은 2s가 걸리는 등 비대칭적인 상황이 자주 발생합니다.

이런 문제를 해결하기 위해 현재 연결 수가 가장 적은 서버로 트래픽을 보내는 '최소 연결(Least Connection)' 방식이나 서버의 가중치를 고려하는 '가중치 라운드 로빈' 등이 사용됩니다. 특히 세션 상태를 유지해야 하는 서비스에서는 클라이언트의 IP를 해싱하여 특정 서버로 고정시키는 'IP 해시' 방식이 유용하지만, 서버 추가/삭제 시 해시 재계산으로 인한 캐시 미스 문제를 고려해야 합니다.

마지막으로 로드밸런싱은 네트워크 계층에 따라 L4와 L7로 나뉩니다. L4는 IP와 포트 번호를 기준으로 전송하며 속도가 빠르고 오버헤드가 적은 반면, L7은 HTTP 헤더나 쿠키 등 애플리케이션 데이터를 분석하여 세밀한 라우팅이 가능합니다. 면접에서는 이러한 계층별 특징과 알고리즘의 장단점을 비즈니스 요구사항에 연결해 설명하는 역량이 중요하게 평가됩니다.

비교 정리

항목라운드 로빈 (Round Robin)최소 연결 (Least Connection)
동작 원리모든 서버에 순차적으로 트래픽 할당현재 연결 수가 가장 적은 서버 선택
적합한 상황서버 성능이 동일하고 작업 시간이 일정할 때세션 유지 시간이 길고 요청마다 처리 시간이 다를 때
장점알고리즘이 단순하고 오버헤드가 거의 없음실시간 부하 상태를 반영하여 효율적 분산 가능
단점서버 간 부하 불균형이 발생할 수 있음서버 상태(연결 수)를 계속 모니터링하는 오버헤드

면접에서 이렇게 답하세요

단순히 종류를 나열하기보다 '상황에 따른 트레이드오프'를 강조하세요. 예를 들어, '상태가 없는(Stateless) API 서버라면 라운드 로빈이 효율적이지만, DB 커넥션이 길게 유지되는 서비스라면 최소 연결 방식이 안정적입니다'와 같이 논리를 전개하는 것이 좋습니다. 또한 L4(IP/Port)와 L7(URL/Cookie/Payload) 로드밸런싱의 차이점까지 언급한다면 훨씬 깊이 있는 인상을 줄 수 있습니다.

자주 묻는 추가 질문

Q. Sticky Session과 로드밸런싱의 관계는?

특정 사용자의 요청을 항상 같은 서버로 보내 세션을 유지하는 기술로, IP 해시나 쿠키를 통해 구현하지만 특정 서버 부하 집중 위험이 있습니다.

Q. 서버가 다운되면 로드밸런서는 어떻게 감지하나요?

Health Check 기능을 통해 주기적으로 HTTP 요청이나 TCP 연결을 시도하여 응답이 없는 서버를 가용 풀에서 자동으로 제외합니다.

Q. L4와 L7 로드밸런싱의 가장 큰 차이는?

L4는 전송 계층에서 IP/포트 기반으로 전달하며 빠르지만, L7은 응용 계층에서 URL이나 콘텐츠 내용을 보고 더 정교한 라우팅이 가능합니다.

커뮤니티 하이라이트

실무에서는 가중치 라운드 로빈을 많이 써요. 구형 서버와 신형 서버가 섞여 있을 때 성능 차이를 가장 잘 반영해주거든요.

@backend_master32

클라우드 환경(AWS ELB 등)에서는 기본적으로 최적화된 알고리즘을 제공하지만, 내부 원리를 알아야 트러블슈팅이 가능합니다.

@devops_ninja18

42명의 개발자가 이 질문에 참여했습니다

관련 면접 질문

앱에서 직접 답변해보세요

매일 3개의 면접 질문에 답변하고,
다른 개발자들의 답변을 비교해보세요.

무료로 시작하기