본문 바로가기
게임서버-스파르타코딩NodeJs_7기/모의면접

면접카타[네트워크] 29~36

by GREEN나무 2025. 2. 27.
728x90

 

🔹 1. TCP/UDP의 차이점

🔸 개념 및 역할

  • TCP (Transmission Control Protocol)
    • 연결 지향적: 통신을 시작하기 전에 연결을 확립합니다.
    • 신뢰성 보장: 데이터의 순서와 무결성을 유지하며, 전송 실패 시 재전송 기능을 수행합니다.
    • 흐름 제어: 송수신 속도를 조절하여 네트워크 혼잡을 완화합니다.
  • UDP (User Datagram Protocol)
    • 비연결 지향적: 연결 설정 없이 데이터를 바로 전송합니다.
    • 빠른 전송: 오버헤드가 적어 실시간 응용프로그램(예: 게임, 스트리밍)에 적합합니다.
    • 신뢰성 미보장: 데이터 순서나 무결성 보장이 필요 없는 경우 사용합니다.

🔸 패킷 구조 차이

  • TCP 패킷 헤더
    • 시퀀스 번호: 데이터의 순서를 관리하여 순서대로 재조합합니다.
    • 확인 응답 번호 (ACK): 데이터 수신 확인을 위해 사용됩니다.
    • 플래그: SYN, ACK, FIN 등 연결 관리에 필요한 제어 정보 포함.
    • 윈도우 크기: 수신 버퍼의 상태에 따라 데이터 전송량 조절.
  • UDP 패킷 헤더
    • 포트 번호: 출발지와 목적지 포트를 명시하여 애플리케이션 식별.
    • 길이: 헤더와 데이터의 총 길이 표시.
    • 체크섬: 데이터 무결성 검증을 위한 필드.

🔸 3-Way Handshaking

  • SYN: 클라이언트가 서버에 연결 요청 신호 전송.
  • SYN-ACK: 서버가 요청을 받아들여 응답과 동시에 자신의 연결 요청 전송.
  • ACK: 클라이언트가 서버의 응답을 확인하며 연결 확정.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: TCP와 UDP 중 어느 것을 선택해야 할지 결정하는 기준은 무엇인가요?
  답변: 신뢰성, 순서 보장, 오류 복구가 필요한 경우 TCP를 사용하고, 실시간성이나 빠른 전송이 중요한 경우 UDP를 선택합니다.


🔹 2. 브라우저에 네이버 홈페이지 URL 입력 시 일어나는 과정

🔸 전체 프로세스

  1. DNS 조회
    • 목적: 도메인 이름(예: www.naver.com)을 IP 주소로 변환합니다.
    • 과정: 브라우저 → 로컬 DNS 캐시 → 로컬 DNS 서버 → 상위 DNS 서버 순으로 요청.
  2. TCP 연결 수립 (3-Way Handshake)
    • 과정:
      • 클라이언트가 SYN 패킷 전송
      • 서버가 SYN-ACK 응답
      • 클라이언트가 ACK로 응답
    • 목적: 안정적인 통신 채널을 형성합니다.
  3. HTTP/HTTPS 요청 전송
    • 요청: 브라우저가 서버에 GET 요청 등으로 웹페이지 리소스(HTML, CSS, JS 등)를 요청합니다.
    • 특징: HTTPS인 경우 SSL/TLS 암호화 과정을 추가하여 보안을 강화합니다.
  4. 서버 응답
    • 응답: 서버는 요청에 맞는 데이터를 패킷 단위로 전송합니다.
    • 캐싱: 정적 자원의 경우 캐싱을 통해 빠른 응답 제공 가능.
  5. 데이터 수신 및 렌더링
    • 파싱: 브라우저는 수신한 HTML, CSS, JS를 파싱합니다.
    • 렌더링: 파싱된 데이터를 바탕으로 화면에 웹페이지를 출력합니다.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: 네트워크 과정 중 발생할 수 있는 보안 취약점에는 어떤 것들이 있으며, 어떻게 대응할 수 있나요?
  답변: DNS 스푸핑, 중간자 공격, 비암호화 전송에 따른 데이터 탈취 등이 있으며, HTTPS, DNSSEC, 최신 보안 패치 적용 등을 통해 대응할 수 있습니다.


🔹 3. OSI 7계층 및 네트워크 장비/스위치 차이점

🔸 OSI 7계층

  1. 물리 계층 (Physical Layer):
    • 실제 전송 매체와 전기 신호, 광신호 등 물리적 특성 관리.
  2. 데이터 링크 계층 (Data Link Layer):
    • 프레임 단위 전송, MAC 주소 기반의 오류 검출 및 수정.
  3. 네트워크 계층 (Network Layer):
    • IP 주소를 기반으로 라우팅, 패킷 전달.
  4. 전송 계층 (Transport Layer):
    • TCP, UDP 등으로 데이터 전송의 신뢰성, 흐름 제어 담당.
  5. 세션 계층 (Session Layer):
    • 세션 관리, 연결 설정 및 종료.
  6. 표현 계층 (Presentation Layer):
    • 데이터 인코딩, 암호화, 압축.
  7. 응용 계층 (Application Layer):
    • 최종 사용자와의 인터페이스 제공 (HTTP, FTP, SMTP 등).

🔸 네트워크 장비

  • 리피터 (Repeater):
    • 신호를 증폭하여 전송하는 장비. (물리 계층에서 동작)
  • 허브 (Hub):
    • 단순 브로드캐스트 장치로, 모든 포트에 데이터를 전송. (물리 계층)
  • 브릿지 (Bridge):
    • 네트워크 세그먼트를 연결하며, MAC 주소 기반으로 프레임 필터링 수행. (데이터 링크 계층)
  • 라우터 (Router):
    • 서로 다른 네트워크 간 패킷을 IP 기반으로 전달. (네트워크 계층)

🔸 스위치의 계층별 차이점

  • L2 스위치 (Layer 2):
    • 데이터 링크 계층에서 동작하며, MAC 주소 테이블을 활용해 프레임 전달.
  • L3 스위치 (Layer 3):
    • 네트워크 계층 기능 포함, IP 라우팅을 통해 서로 다른 서브넷 간 통신 지원.
  • L4 스위치 (Layer 4):
    • 전송 계층 정보(포트 번호 등)를 분석하여 로드 밸런싱, 패킷 필터링을 수행.
  • L7 스위치 (Layer 7):
    • 응용 계층까지 분석하여 URL, 쿠키, 세션 정보 등을 기반으로 세밀한 트래픽 제어 가능.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: 네트워크 인프라 설계 시, 장비 선택 및 스위치 계층 구분이 중요한 이유는 무엇인가요?
  답변: 트래픽 특성, 보안 요구사항, 네트워크 확장성, 관리 효율성 등을 고려하여 최적의 장비와 계층의 스위치를 선택하면, 네트워크 성능과 안정성을 크게 향상시킬 수 있습니다.


🔹 4. RESTful API란 무엇인가요?

🔸 정의 및 특징

  • REST (Representational State Transfer):
    • 분산 시스템(특히 웹)에서 자원(Resource)을 정의하고, 해당 자원에 대한 상태를 주고받기 위한 아키텍처 스타일.
  • 특징:
    • Stateless: 각 요청은 독립적이며 서버는 클라이언트 상태를 저장하지 않습니다.
    • Cacheable: 응답 결과를 캐싱하여 성능을 향상시킬 수 있습니다.
    • Client-Server 구조: 클라이언트와 서버의 역할을 분리하여 독립적 발전 가능.
    • Uniform Interface: 표준화된 인터페이스로 다양한 클라이언트와 서버 간의 상호운용성 확보.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: RESTful API와 SOAP API의 차이점은 무엇이며, 어떤 경우에 RESTful API를 선택해야 할까요?
  답변: RESTful API는 경량화되고 JSON 등 단순한 데이터 포맷을 사용하는 반면, SOAP는 XML 기반으로 복잡한 메시징과 보안, 트랜잭션 처리가 필요할 때 주로 사용됩니다. 단순하고 확장성이 요구되는 웹 서비스에는 RESTful API가 적합합니다.


🔹 5. HTTP 프로토콜에 대해 설명해주세요

🔸 기본 개념

  • 정의:
    • HyperText Transfer Protocol은 클라이언트(웹 브라우저)와 서버 간의 요청/응답 모델로 웹 리소스를 전송하는 프로토콜입니다.
  • 특징:
    • 요청/응답 모델: 클라이언트가 서버에 요청을 보내고, 서버는 해당 요청에 따른 응답을 제공합니다.
    • Stateless: 각 요청은 독립적으로 처리되어, 서버는 이전 요청 상태를 유지하지 않습니다.
    • 유연성: 다양한 미디어 타입과 확장 가능한 헤더 구조를 통해 폭넓은 서비스 지원.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: HTTP 프로토콜이 갖는 한계점은 무엇이며, 이를 보완하기 위한 기술적 방법은 어떤 것이 있을까요?
  답변: HTTP는 상태 정보가 유지되지 않아 사용자 인증이나 세션 관리에 한계가 있습니다. 이러한 문제는 HTTPS, 쿠키, 세션, 토큰 기반 인증 등으로 보완할 수 있습니다.


🔹 6. HTTP와 HTTPS의 차이 (SSL/TLS 포함)

🔸 기본 개념

  • HTTP:
    • 데이터를 암호화하지 않고 평문으로 전송하는 프로토콜입니다.
  • HTTPS:
    • HTTP 위에 SSL/TLS 계층을 추가하여 데이터 전송 시 암호화, 무결성 및 인증을 제공합니다.

🔸 SSL/TLS 역할

  • 암호화:
    • 전송 데이터를 암호화하여 외부 공격자가 데이터를 읽지 못하도록 방지합니다.
  • 무결성:
    • 데이터 전송 중 변조를 감지하여, 수신된 데이터의 일관성을 보장합니다.
  • 인증:
    • 서버(및 경우에 따라 클라이언트)의 신원을 확인하여, 신뢰할 수 있는 통신 환경을 제공합니다.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: HTTPS를 사용하면서 인증서 관리가 중요한 이유와, 인증서 갱신 주기는 어떻게 결정해야 하나요?
  답변: 만료된 인증서는 보안 취약점과 신뢰도 저하를 초래하므로, 주기적으로 인증서를 갱신하며 최신 암호화 기술을 적용하는 것이 중요합니다.


🔹 7. HTTP Method 및 GET과 POST의 차이

🔸 HTTP Method 개요

  • GET:
    • 용도: 리소스 조회
    • 특징:
      • URL에 파라미터를 포함하여 데이터를 전송
      • 데이터 노출 위험이 있으나, 캐싱 및 즐겨찾기가 가능
      • 데이터 길이 제한 존재
  • POST:
    • 용도: 데이터 제출 및 리소스 생성/수정
    • 특징:
      • 요청 본문(body)에 데이터를 포함하여 전송
      • 캐싱되지 않으며, 대용량 데이터 전송에 유리
      • 보안상의 이유로 민감한 데이터 전송에 적합
  • 기타 메소드:
    • PUT, DELETE, PATCH 등은 RESTful API 설계 시 리소스의 상태 관리에 활용됩니다.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: GET과 POST 이외의 HTTP 메소드들은 각각 어떤 상황에서 주로 사용되나요?
  답변: PUT은 전체 리소스 업데이트, PATCH는 부분 업데이트, DELETE는 리소스 삭제 시 사용되며, 각 메소드는 명확한 역할에 따라 RESTful 설계의 가독성과 유지보수를 용이하게 합니다.


🔹 8. Session과 Cookie의 차이

🔸 Session

  • 저장 위치:
    • 서버 측에 저장되며, 클라이언트에는 식별자인 Session ID만 전달됩니다.
  • 용도:
    • 사용자 인증, 로그인 상태 유지, 보안성이 중요한 정보 관리.
  • 특징:
    • 서버에서 관리하므로 데이터 변경 및 만료 시간을 세밀하게 조정할 수 있습니다.

🔸 Cookie

  • 저장 위치:
    • 클라이언트(웹 브라우저)에 저장됩니다.
  • 용도:
    • 간단한 사용자 정보, 환경설정, 방문 기록 등의 저장.
  • 특징:
    • 저장 용량이 제한적이며, 클라이언트 측에서 직접 접근할 수 있어 민감한 정보 저장은 부적합합니다.

🔹 꼬리 질문 & 답변

🔸 꼬리 질문: 세션과 쿠키를 함께 사용할 때, 보안상 고려해야 할 점은 무엇인가요?
  답변: 세션 ID 탈취, 쿠키 조작 등의 위험이 있으므로 HTTPS, HttpOnly, Secure 플래그 적용과 함께 주기적인 세션 관리가 필요합니다.