Development/기술면접 정리

기술면접 답변 정리 (네트워크)

yjym33 2023. 10. 5. 15:36
  • OSI 7계층에 대해서 설명해주세요.
    • OSI(Open Systems Interconnection) 모델은 컴퓨터 네트워크 프로토콜과 통신을 일곱 개의 계층으로 나눈 모델입니다. 이 계층은 아래에서 위로 다음과 같이 나뉩니다:
    • 물리 계층 (Physical Layer): 전기적, 기계적 특성을 다루며 비트 스트림을 전송합니다.
    • 데이터 링크 계층 (Data Link Layer): 물리 계층과 네트워크 계층 사이에서 프레임을 전송하고 오류 검사와 수정을 수행합니다.
    • 네트워크 계층 (Network Layer): 경로 선택 및 라우팅을 다루며 패킷을 목적지까지 전달합니다.
    • 전송 계층 (Transport Layer): 종단 시스템 간 연결, 흐름 제어, 오류 복구를 제공합니다.
    • 세션 계층 (Session Layer): 통신 세션 관리와 동기화를 담당합니다.
    • 표현 계층 (Presentation Layer): 데이터 형식 변환, 암호화, 압축 등 데이터 표현을 다룹니다.
    • 응용 계층 (Application Layer): 최종 사용자와 상호작용하는 응용 프로그램을 지원합니다.

 

  • TCP/IP 4계층에 대해서 설명해주세요.
    • TCP/IP 모델은 OSI 모델과 비슷한 개념으로 다음과 같이 나뉩니다:
    • 네트워크 인터페이스 계층 (Network Interface Layer): OSI의 물리 계층과 데이터 링크 계층에 대응하며, 하드웨어와 네트워크 프로토콜을 다룹니다.
    • 인터넷 계층 (Internet Layer): OSI의 네트워크 계층에 대응하며, IP 주소와 라우팅을 다룹니다.
    • 전송 계층 (Transport Layer): OSI의 전송 계층과 유사하며, TCP와 UDP 프로토콜을 사용하여 데이터 전송을 관리합니다.
    • 응용 계층 (Application Layer): OSI 세션, 표현, 응용 계층을 통합하며, 응용 프로그램과 사용자 인터페이스를 지원합니다.

 

  • DNS가 무엇인가요?
    • DNS(Domain Name System) 인터넷에서 도메인 이름(: www.example.com) IP 주소(: 192.168.1.1) 간의 매핑을 관리하는 시스템입니다. DNS 통해 사용자는 읽기 쉬운 도메인 이름을 입력하여 사이트나 네트워크 리소스에 접근할 있습니다.

 

  • 도메인 이름으로 실제 IP를 어떻게 찾을 수 있는지 흐름을 설명해 주세요.
    1. 사용자가 웹 브라우저에 도메인 이름을 입력하면, 먼저 로컬 DNS 캐시에서 해당 도메인 이름과 연결된 IP 주소를 찾습니다. 만약 캐시에 없다면, 다음 단계를 수행합니다:
    2. 클라이언트의 DNS 쿼리를 로컬 DNS 서버로 보냅니다.
    3. 로컬 DNS 서버는 자신의 캐시에서 도메인 이름을 검색하고, 없으면 루트 DNS 서버에 쿼리를 보냅니다.
    4. 루트 DNS 서버는 도메인 이름의 최상위 도메인(TLD)을 가리키는 DNS 서버의 IP 주소를 반환합니다.
    5. 로컬 DNS 서버는 TLD DNS 서버에 쿼리를 보내 해당 도메인의 권한 DNS 서버 IP 주소를 받습니다.
    6. 권한 DNS 서버에서 실제 도메인의 IP 주소를 조회하고, 이를 로컬 DNS 서버에 반환합니다.
    7. 로컬 DNS 서버는 이 IP 주소를 클라이언트에게 반환하고, 동시에 쿼리 결과를 자신의 캐시에 저장합니다.
    8. 클라이언트는 얻은 IP 주소를 사용하여 서버에 접속하여 페이지를 요청합니다.

 

 

TCP/UDP

  • TCP와 UDP의 차이에 대해서 설명해 주세요.
    • TCP(Transmission Control Protocol) 연결 지향적이며 신뢰성을 보장하는 프로토콜로, 데이터 전송 손실이나 순서 섞임이 없도록 합니다. UDP(User Datagram Protocol) 비연결 지향적이며 신뢰성을 보장하지 않는 프로토콜로, 속도와 간결성이 중요한 응용에 적합합니다.

 

  • TCP 헤더에 대해서 설명해 주세요.
    • TCP 헤더는 송신자와 수신자 통신에서 제어 정보를 담고 있습니다. 주요 필드에는 송신 수신 포트, 순서 번호, 확인 번호, 윈도우 크기, 플래그 등이 포함됩니다.

 

  • MTU가 무엇인가요?
    • MTU(Maximum Transmission Unit) 네트워크에서 전송할 있는 가장 데이터 패킷의 크기를 나타냅니다. MTU 크기를 초과하는 데이터 패킷은 분할되거나 손실될 있습니다.

 

  • 3-way hand shake, 4-way hand shake 흐름에 대해서 설명해주세요.
    • 3-way hand shake TCP 연결을 설정하는 과정으로, 클라이언트가 서버에게 연결 요청을 보내고, 서버가 수락하고 응답하는 방식입니다. 4-way hand shake 연결 종료 과정으로, 클라이언트와 서버가 연결 종료를 요청하고 응답하여 연결을 해제하는 방식입니다.

 

 

HTTP

  • HTTP 프로토콜에 대해서 아는대로 말해주세요.
    • HTTP(Hypertext Transfer Protocol) 브라우저와 서버 간의 통신을 위한 프로토콜로, 텍스트 기반의 요청과 응답을 사용하여 페이지와 리소스를 전송합니다.

 

  • HTTP와 HTTPS의 차이는 무엇인가요?
    • HTTP 보안하지 않은 프로토콜로 데이터가 암호화되지 않습니다. HTTPS HTTP 보안 버전으로 SSL/TLS 프로토콜을 사용하여 데이터를 암호화하고 보안성을 강화합니다.

 

  • HTTPS가 동작하는 방식에 대해서 설명해 주세요.
    • HTTPS SSL/TLS 프로토콜을 사용하여 통신을 암호화합니다. 클라이언트와 서버 간의 핸드셰이크 과정에서 서버의 공개키를 클라이언트에게 제공하고, 클라이언트는 공개키를 사용하여 데이터를 암호화합니다. 서버는 자신의 개인키를 사용하여 데이터를 해독합니다. 이를 통해 중간자 공격을 방지하고 보안을 강화합니다.

 

  • HTTP 1.0과 1.1의 차이는 무엇인가요?
    • HTTP 1.0 번의 요청-응답 연결을 닫는 방식이고, HTTP 1.1 여러 요청을 동일 연결로 처리하고 연결을 재사용할 있는 Keep-Alive 기능을 제공합니다.

 

  • HTTP/2와 그 특징에 대해서 설명해 주세요.
    • HTTP/2 이전 버전의 개선된 프로토콜로, 다중화, 헤더 압축, 우선순위 설정, 서버 푸시 기능을 제공하여 성능을 향상시킵니다. 다중화는 연결로 여러 요청을 처리하고, 헤더 압축은 헤더 크기를 줄이며 우선순위 설정은 리소스 다운로드 순서를 조절합니다.

 

  • HTTP 헤더의 구조에 대해서 설명해 주세요.
    • HTTP 헤더는 요청이나 응답에 대한 부가 정보를 포함합니다. 헤더는 필드 이름과 값으로 이루어져 있으며, 여러 헤더 필드는 콤마(,) 구분될 있습니다.

 

  • keep-alive 헤더에 대해서 설명해 주세요.
    • keep-alive 헤더는 HTTP 1.0에서 연결을 유지하는데 사용되며, 여러 요청과 응답을 동일한 연결에서 처리할 있도록 합니다. HTTP 1.1에서는 keep-alive 기본으로 활성화되어 있습니다.

 

  • HTTP GET과 POST의 차이는 무엇인가요?
    • HTTP GET 데이터를 요청 URL 포함시켜 보내며, 주로 데이터 조회 검색에 사용됩니다. HTTP POST 데이터를 요청 본문에 포함시켜 보내며, 데이터 전송 업로드에 사용됩니다.

 

  • 쿠키와 세션에 대해서 설명해 주세요.
    • 쿠키는 클라이언트 측에 저장되는 작은 데이터 조각으로, 사용자 정보나 상태 정보를 저장하는 사용됩니다. 세션은 서버 측에서 사용자 상태 정보를 관리하는 방법으로, 보안성이 높고 많은 데이터를 저장할 있습니다.

 

  • 웹 브라우저에서 서버로 요청했을 때, 흐름을 설명해주세요.
    • 브라우저는 URL 입력하고 서버로 요청을 보냅니다. 서버는 해당 요청을 받아서 서버 애플리케이션(WAS) 전달하고, WAS 요청을 처리하여 응답을 생성합니다. 응답은 다시 서버를 통해 브라우저로 전송되고, 브라우저는 응답을 해석하여 페이지를 렌더링합니다.

 

  • CORS란 무엇인가요?
    • CORS(Cross-Origin Resource Sharing) 브라우저에서 실행되는 스크립트에서 다른 도메인의 리소스를 요청할 보안 정책을 적용하는 메커니즘입니다. 이를 통해 애플리케이션은 다른 출처의 데이터에 접근할 있지만 보안을 유지할 있습니다.

 

  • 웹 서버와 웹 어플리케이션 서버(WAS)의 차이는 무엇인가요?
    • 서버는 정적 컨텐츠(HTML, 이미지 ) 제공하고, WAS 동적 컨텐츠를 처리하는 역할입니다. 서버는 클라이언트의 요청을 받아 정적 파일을 반환하거나 동적 요청을 WAS 전달하고, WAS 요청을 처리하여 동적 페이지를 생성한 서버에게 반환합니다.

 

  • REST API에 대해서 설명해 주세요.
    • REST(REpresentational State Transfer) 서비스 아키텍처의 형태로, 자원(리소스) URL 표현하고 HTTP 메서드(GET, POST, PUT, DELETE ) 사용하여 자원을 조작하는 방법을 제공합니다. RESTful API 원칙을 따르는 API 의미합니다.

 

  • API Gateway란 무엇인가요?
    • API Gateway 여러 마이크로서비스나 백엔드 서비스의 엔드포인트를 통합하고 관리하는 서버입니다. 클라이언트는 API Gateway 요청을 보내고, API Gateway 해당 요청을 백엔드 서비스로 라우팅하고 응답을 클라이언트에게 반환합니다.

 

  • API Gateway가 다운되면 모든 API를 사용 못할지도 모르는데, 어떤 방안을 마련해야 할까요?
    • API Gateway 신뢰성을 높이기 위해 여러 대의 API Gateway 구성하여 부하 분산 장애 복구 메커니즘을 구현할 있습니다. 또한 CDN(Content Delivery Network) 사용하여 일부 정적 리소스를 캐싱하고 클라이언트에게 서비스하는 방법을 고려할 있습니다.