답변에 포함해야 할 키워드

  • HTTP vs HTTPS: 보안이 적용된 통신 방식
  • TCP vs UDP: 신뢰성 있는 데이터 전송(TCP)과 빠른 전송(UDP)의 차이
  • 로드 밸런싱: 서버 부하를 여러 대의 서버로 분산
  • 웹소켓(WebSocket): 실시간 양방향 통신 프로토콜
  • CORS: 다른 도메인 간의 자원 요청을 관리하는 보안 정책
  1. IP 주소와 DNS의 관계를 설명해주세요
  2. NAT이란 무엇이며, 이를 사용하는 이유를 설명해 주세요
  3. HTTP Keep-Alive의 역할과 성능에 미치는 영향을 설명해주세요
  4. TLS와 SSL의 차이점을 설명해주세요
  5. 서버 부하 분산 방식 중 라운드로빈 방식과 IP 해시 방식의 차이점을 설명해주세요

IP주소와 DNS

IP 주소와 DNS의 관계를 설명해주세요

IP 주소 (Internet Protocol Address)

  • 네트워크 상에서 장치들을 식별하기 위한 고유한 숫자 주소
  • 네트워크에 연결된 각 장치를 정확하게 식별하고 통신할 수 있음
  • IPv4, IPv6 (IPv6는 보다 많은 고유 주소를 제공하기 위해 도입)

DNS (Domain Name System)

  • 사용자가 웹사이트의 도메인 이름을 입력하면 이를 해당 서버의 IP주소로 변환해주는 시스템

IP주소와 DNS의 관계

  • DNS = 도메인 이름과 IP 주소를 매핑하는 시스템
  • 사람이 읽을수 있는 도메인 이름을 컴퓨터가 이해할 수 있는 IP주소로 변환

2. NAT (Network Address Translation)

NAT이란 무엇이며, 이를 사용하는 이유를 설명해 주세요

NAT

  • 하나의 공인 IP 주소를 사용하여 내부 네트워크의 여러 장치들이 외부 네트워크와 통신할 수 있도록 하는 기술
  • 라우터나 방화벽과 같은 네트워크 장치에서 동작하며 내부 사설 IP주소를 공인 IP 주소로 변환하거나 그 반대의 변환 수행

종류

  1. 정적 NAT : 내부의 하나의 고정된 사설 아이피 주소를 공인 아이피 주소와 일대일 변환
  2. 동적 NAT : 내부의 사설 아이피 주소를 공인 아이피 주소풀에서 임시로 할당받아 변환
  3. 포트 주소 변환 (PAT) : 여러개의 내부 장치가 하나의 공인 아이피 주소를 공유하면서 각 장치에 고유한 포트번호를 할당하여 구분, 가장 흔히 사용되는 방식

NAT를 사용하는 이유

  1. IP 주소 부족 문제 해결 : IPv4는 주소가 한정적이기 때문에 NAT를 사용하면 공인 IP주소가 부족해도 여러 내부 장치들이 동일한 공인 IP 주소를 공유하여 인터넷에 접속할 수 있음
  2. 보안 강화 : 내부 네트워크를 외부로부터 숨기기 때문에 외부에서 내부 네트워크로의 직접적인 접근 차단
  3. 네트워크 관리 용이 : 내부 네트워크 IP 주소는 변경할 필요 없이 NAT 장치에서만 공인 IP 주소를 관리하면 되므로 대규모 네트워크에서 IP 주소를 효율적으로 관리할 수 있음

예시

  • 가정이나 사무실 네트워크에서는 여러대의 장치가 인터넷에 연결되지만 하나의 공인 IP 주소만을 공유하여 인터넷에 접속함
  • NAT는 이 공인 IP 주소와 각 장치의 사설 IP주소를 변환하여 각 장치가 독립적으로 통신할 수 있도록 해줌

3. HTTP Keep-Alive

HTTP Keep-Alive의 역할과 성능에 미치는 영향을 설명해주세요

  • HTTP 프로토콜의 성능을 향상시킬 수 있는 기능
  • 클라이언트와 서버 간의 연결을 여러 요청에 걸쳐 유지하여 성능을 향상시키는 역할
  • 기본적으로 HTTP는 각 요청마다 새로운 연결을 설정하고 데이터를 전송하는데 Keep-Alive를 사용하면 같은 연결을 재사용할 수 있음

역할

  1. 연결 재사용 : 한번 열린 연결을 여러 요청에 걸쳐 재사용 가능
  2. 응답 속도 향상 : 여러개의 HTTP요청을 처리할 때 매번 새로운 연결을 설정할 필요가 없어 통신 속도 향상
  3. 리소스 절약 : 연결을 반복해서 여닫는 대신 하나의 연결 재사용 자원을 효율적으로 사용 가능

성능에 미치는 영향

  • 긍정적인 영향
    1. 성능 향상 : 연결 설정에 필요한 시간과 리소스를 줄여주기 때문에 네트워크 효율을 높일 수 있음
    2. 서버 부하 감소 : 새로운 연결을 설정하고 관리하는 비용을 줄일 수 있음
    3. 네트워크 효율성 향상 : 연결을 재사용함으로써 네트워크 상에서 데이터가 이동하는 빈도를 줄일 수 있음
  • 부정적인 영향
    1. 연결 유지 한계 : 일정 시간동안 유지하기 때문에 너무 오랜 시간 연결을 유지하면 서버 자원을 낭비할 수 있음

Keep-Alive 설정

  • HTTP 요청과 응답에서 Connection : keep-alive 헤더를 통해 활성화 할 수 있음
  • 최대 유지 시간을 설정하거나 요청 최대 개수를 지정할 수 있음
Connection: keep-alive
Keep-Alive: timeout=5, max=100

4. TLS / SSL

TLS와 SSL의 차이점을 설명해주세요

  • TLS와 SSL 모두 인터넷 통신에서 데이터를 암호화하여 보안을 강화하는 프로토콜

SSL (Secure Sockets Layer)

  • 보안 소켓 계층
  • 웹 브라우저와 웹 서버 간의 통신을 암호화 하기 위해 설계
  • 시간이 지나면서 보안상의 결점이 발견됨

TLS (Transport Layer Security)

  • SSL의 후속 프로토콜
  • SSL 3.0을 기반으로 보안 강화
  • SSL의 보안 취약점을 해결하고 암호화 및 인증방법 개선

주요 차이점

  • 보안성 : TLS는 SSL에서 발견된 여러 보안 취약점들을 해결하고 암호화 알고리즘을 강력하게 적용한 강력한 프로토콜
  • 암호화 알고리즘 : TLS는 더 현대적이고 강력한 암호화 알고리즘 사용
  • 핸드셰이크 과정 : 둘 다 핸드셰이크 프로세스를 가지지만 TLS는 핸드셰이크 프로세스를 더 안전하고 효율적으로 개선하여 성능 향상
  • 버전 : SSL은 더이상 사용되지 않음

5. 라운드로빈, IP 해시 방식

서버 부하 분산 방식 중 라운드로빈 방식과 IP 해시 방식의 차이점을 설명해주세요

서버 부하 분산 (Load Balancing)

  • 클라이언트의 요청을 여러 서버에 고르게 분배하여 시스템의 성능을 최적화하고 서버에 과부하를 방지하는 역할

라운드로빈 (Round Robin)

  • 가장 간단하고 널리 사용되는 부하 분산 방식
  • 클라이언트의 요청을 서버들 사이에 순차적으로 분배
  • 각 요청이 오면 첫번째 서버에 요청을 전달하고 두번째, 세번째 서버 순으로 반복하여 요청 분배
  • 순차적으로 서버들흘 하나씩 돌며 요청 분배
  • 특징
    • 간단함 : 구현이 간단, 서버들이 동일한 성능을 가지고 있을 때 효율적
    • 공평한 분배 : 서버들의 성능에 관계 없이 각 서버에 순차적으로 요청 분재

IP 해시 방식

  • 클라이언트의 IP주소를 기반으로 해시 값을 계산하여 그 해시값에 따라 요청을 특정 서버에 전달하는 방식
  • 클라이언트의 IP 주소에 대한 해시값이 동일하면 동일한 서버에 요청을 보냄
  • 특정 클라이언트의 요청을 항상 같은 서버로 전달할 수 있음
  • 특징
    • 고정된 서버 할당 : 클라이언트가 매번 같은 서버에 요청을 보낼 수 있게 하여 세션이 유지되는 애플리케이션에서 유리 (사용자 인증이나 세션 정보가 필요한 서비스)
    • 서버 부하 불균형 가능성 : 일부 서버에 요청이 집중될 수 있음
    • 세션 지속성

차이점

구분라운드로빈 방식IP 해시 방식
요청 분배 방식요청을 서버에 순차적으로 분배클라이언트의 IP 주소를 해시하여 특정 서버로 분배
세션 지속성세션 지속성 보장하지 않음클라이언트의 IP에 따라 동일 서버에 요청을 전달하여 세션 유지 가능
부하 분산성능이 동일한 서버에서 효과적IP 분포가 고르지 않으면 부하 불균형이 발생할 수 있음
복잡성구현이 간단하고 직관적해시 함수와 같은 추가적인 처리가 필요
적합한 환경성능이 유사한 서버들에서, 요청이 균등하게 분배되어야 할 때세션 정보를 유지해야 하는 서비스에서 (예: 로그인, 쇼핑몰 등)