개발자 기술면접 꼬리물기 질문
  • Welcome
  • 01 Java
    • 01-01. Generic
    • Garbage Collection
    • 자료형과 객체 비교
    • 힙(Heap)과 메모리(Memory)
    • JDK 버전과 JRE
    • 스레드(Thread)
    • 예외(Throwable)
    • Call By Value와 Call By Reference
    • String, equals, StringBuffer
    • Thread와 비동기
  • 02 Spring
    • 02-01. Spring 동작 방식
    • @Autowired, @RequiredArgsConstructor
    • 인증(Authentication)과 인가(Authorization)
    • 트랜잭션(Transaction)
    • QueryDSL과 SQL Injection
    • SecurityContextHolder
    • @EqualsAndHashCode
  • 알고리즘과 자료구조
    • Set 자료구조
    • 정렬 알고리즘
    • 우선순위 큐 (Priority Queue)
    • DFS와 BFS
    • 힙(Heap) 자료구조
    • 스택(Stack)과 큐(Queue)
    • 암호화 알고리즘
    • LinkedList
    • 자료구조 - 해시 테이블(HashTable)
    • 자료구조 - ConcurrentHashMap
  • 데이터베이스
    • 기본
    • 인덱스 (Index)
    • 정규화 (Normalization)
    • 파티셔닝과 샤딩(Partitioning & Sharding)
    • 트랜잭션(Transaction)과 락(Lock)
    • 덤프(Dump)
    • Redis
    • 격리 수준(MySQL)
  • 네트워크
    • 전송 계층 (Transport Layer)
    • 네트워크 계층 (Network Layer)
    • Http와 Https
    • IP(Internet Protocol)
    • 프록시 서버
    • Http Protocol
    • 소켓(Socket)
    • 로드 밸런싱(Load Balancing)
  • 디자인 패턴
    • 전략 패턴 (Strategy Pattern)
    • 싱글톤 패턴 (Singleton Pattern)
    • 템플릿 메서드 패턴과 전략 패턴
    • 데코레이터 패턴 (Decorator pattern)
  • 웹
    • CORS 정책
    • 동시성 제어
    • N+1 문제
    • 웹 브라우저 동작원리
    • URI, URL, URN
    • 채팅 아키텍처 설계
  • 개발자
    • 개발 방법론 TDD
  • 운영체제
    • JIT & AOT 컴파일
    • 컨텍스트 스위칭(Context Switching)
    • 프로세스와 스레드
    • 싱글 스레드와 멀티 스레드
  • 코딩테스트
    • Stack / Queue (스택 / 큐)
    • Heap(우선 순위 큐)
    • DP(동적 계획법)
    • DFS(깊이 우선 탐색)
    • BFS(너비 우선 탐색)
    • Greedy(그리디 알고리즘)
    • 해시(Hash)
    • 투 포인터 알고리즘
    • Shortest path
    • 수학적 사고
Powered by GitBook
On this page
  • Q. 로드 밸런싱에 대해 설명해주세요.
  • Q. L4와 L7 로드 밸런싱의 차이는 무엇인가요?
  • Q. 로드 밸런서의 장애 대비는 어떻게 하나요?
  1. 네트워크

로드 밸런싱(Load Balancing)

Q. 로드 밸런싱에 대해 설명해주세요.

로드밸런싱은 서버에 가해지는 부하를 분산시키는 기술입니다. 예를 들어, 식당에서 손님들을 여러 테이블에 적절히 분배하는 것처럼, 사용자가 웹사이트에 접속할 때, 현재 가장 여유있는 서버로 해당 요청을 전달하여 들어오는 트래픽을 여러 서버에 고르게 분산시켜주는 것입니다. 로드 밸런싱의 주요 알고리즘은 다음과 같습니다.

  1. 라운드 로빈(Round Robin): 요청을 순차적으로 각 서버에 균등하게 분배합니다.

  2. 가중치 기반(Weighted): 서버의 처리 능력에 따라 가중치를 두어 분배합니다.

  3. 최소 연결(Least Connection): 현재 연결이 가장 적은 서버에 새로운 요청을 분배합니다.

  4. IP 해시(IP Hash): 사용자의 IP 주소를 기반으로 특정 서버에 요청을 분배합니다.

Q. L4와 L7 로드 밸런싱의 차이는 무엇인가요?

L4 로드밸런서는 마치 우체부가 주소만 보고 편지를 배달하는 것 처럼 IP와 포트 정보만을 보고 부하를 분산합니다. 반면 L7 로드밸런서는 우체부가 편지의 내용까지 보고 더 적절한 수신자에게 전달하는 것 처럼HTTP 헤더, URL 등 더 상세한 정보를 보고 분산합니다. 예를 들어, 쇼핑몰 서비스에서 L7 로드밸러서를 사용하면 이미지 처리가 필요한 요청은 이지미 처리에 특화된 서버로, 결제 관련 요청은 보안이 강화된 서버로 보낼 수 있습니다. L4는 이런 섬세한 분배는 어렵지만 더 빠른 처리가 가능합니다. L4 로드밸런서는 네트워크 계층에서 동작하기 때문에 TCP/UDP 프로토콜의 정보를 기반으로 로드밸런싱을 수행합니다. 여기서 중요한 부분은 패킷이 로드밸러서를 통과할 때 IP 주소를 변환해주는 기술인 NAT(Network Address Translation)을 사용하는 것입니다.

Q. 로드 밸런서의 장애 대비는 어떻게 하나요?

로드밸러서 자체가 장애가 나면 전체 서비스가 중단 될 수 있습니다. 이를 대비하기 위해 보통 로드밸런서를 이중화하여 구성합니다. Active-Standby 방식으로 구성하면, 주 로드밸러서에 문제가 생겼을 때 대기 중이던 보조 로드밸런서가 즉시 그 역할을 대신하게 됩니다. 더 안전한 구성을 원한다면 Active-Active 방식을 사용할 수 있습니다. 두 로드밸러서가 동시에 작동하면서 서로를 감시하고, 한쪽에 문제가 생기면 나머지 하나가 모든 부하를 처리하는 방식입니다. 이런 구성은 비용이 더 들지만, 중요한 서비스에서는 필수적인 구성이라고 할 수 있습니다.

Previous소켓(Socket)Next전략 패턴 (Strategy Pattern)

Last updated 6 months ago