study/CS

CS 면접 예상 질문 - 네트워크(1)

으녕오리 2025. 3. 18. 16:33

www.google.com 도메인을 브라우저에 입력했을 때 일어나는 일을 순차적으로 설명해주세요.

더보기

브라우저는 DNS 요청을 통해 IP 주소를 받아오고, TCP 연결 후 HTTP 요청을 서버에 보내며, 서버가 응답을 반환합니다.

  • DNS란 무엇인가요?
    -> DNS는 도메인 이름을 IP 주소로 변환하는 시스템입니다.
  • 브라우저가 IP 주소를 찾는 과정은 어떻게 되나요?
    -> DNS를 통해 도메인 이름을 IP 주소로 변환합니다.
  • HTTP 요청에서 'GET'과 'POST'의 차이는 무엇인가요?
    -> GET은 데이터를 요청하고, POST는 데이터를 서버로 전송합니다.
  • 서버가 응답을 반환하는 과정은 무엇인가요?
    -> 서버는 클라이언트의 요청을 처리하고, HTTP 응답을 반환합니다.
  • 웹 페이지를 어떻게 렌더링하나요?
    -> HTML, CSS, JavaScript를 파싱하여 브라우저에서 화면에 표시합니다.

 

TCP와 UDP의 차이에 대해 설명해주세요.

더보기

TCP는 연결 지향적이고 신뢰성을 보장하며, UDP는 비연결형으로 빠르지만 신뢰성을 보장하지 않습니다.

  • TCP가 신뢰성을 보장하는 방법은 무엇인가요?
    -> 데이터 전송 중 손실된 패킷을 재전송합니다.
  • UDP는 어떤 경우에 사용되나요?
    -> 실시간 통신이나 빠른 데이터 전송이 필요한 경우 사용됩니다.
  • TCP와 UDP의 헤더 구조 차이점은 무엇인가요?
    -> TCP는 더 많은 제어 정보를 포함하고, UDP는 간단한 헤더 구조를 가집니다.
  • TCP에서 연결을 끊는 방법은 무엇인가요?
    -> 4-way handshaking을 통해 연결을 종료합니다.
  • UDP의 전송 속도는 어떻게 보장되나요?
    -> UDP는 빠른 전송을 위해 신뢰성보다는 속도를 우선시합니다.

 

 

포트가 무엇이고, 소켓이 무엇인지 설명해주세요.

더보기

포트는 네트워크 통신에서 각 애플리케이션을 구분하는 번호이고, 소켓은 네트워크 통신을 위한 엔드포인트입니다.

  • 소켓이란 무엇인가요?
    -> 소켓은 네트워크 상에서 데이터를 송수신하는 데 사용되는 인터페이스입니다.
  • 포트 번호는 왜 필요한가요?
    -> 하나의 IP 주소에서 여러 애플리케이션을 구분하기 위해 사용됩니다.
  • 소켓의 유형에는 어떤 것들이 있나요?
    -> 스트림 소켓(TCP)과 데이터그램 소켓(UDP)이 있습니다.
  • 포트 번호의 범위는 어떻게 되나요?
    -> 포트 번호는 0부터 65535까지 있으며, 0~1023은 잘 알려진 포트입니다.
  • 포트와 IP의 관계는 무엇인가요?
    -> IP는 네트워크 상의 위치를, 포트는 해당 장치 내의 특정 서비스를 구분합니다.

 

 

TCP Connection 시 3-way handshaking을 한다고 했는데, 이에 대해 설명해주시겠어요?

더보기

3-way handshake는 클라이언트와 서버가 서로 연결을 확립하는 과정으로, SYN, SYN-ACK, ACK 순으로 진행됩니다.

  • 3-way handshake의 첫 번째 단계는 무엇인가요?
    -> 클라이언트가 서버에 SYN 패킷을 보내 연결을 요청합니다.
  • 3-way handshake에서 SYN-ACK는 무엇인가요?
    -> 서버는 SYN 패킷에 대한 응답으로 SYN-ACK 패킷을 클라이언트에 보냅니다.
  • 3-way handshake의 마지막 단계는 무엇인가요?
    -> 클라이언트가 ACK 패킷을 보내 연결을 확립합니다.
  • 3-way handshake를 왜 해야 하나요?
    -> 연결을 안정적으로 확립하고, 양쪽이 서로 준비되었음을 확인하기 위해 필요합니다.
  • 3-way handshake에서 오류가 발생하면 어떻게 되나요?
    -> 오류가 발생하면 연결이 확립되지 않고, 재시도나 에러 처리가 필요합니다.

 

 

OSI 7 Layer의 각 계층에 대해 설명해주세요.

더보기

OSI 7 계층은 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구성됩니다.

OSI 7 Layer란?

-> OSI 7 Layer는 컴퓨터 네트워크의 통신을 7개의 계층으로 나누어 각 계층이 담당하는 역할을 정의한 모델입니다. 각 계층은 네트워크 통신의 특정 기능을 수행하며, 데이터가 네트워크를 통해 전송될 때 각 계층에서 처리됩니다. 이 모델은 네트워크의 구조를 이해하고 문제를 해결하는 데 도움을 줍니다.

 

OSI 7 Layer의 각 계층:

  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 등이 이 계층에서 작동합니다.

 

OSI 7 Layer의 중요성:

OSI 7 Layer 모델은 네트워크 통신을 구조적으로 이해할 수 있도록 돕고, 각 계층의 역할을 명확히 구분하여 문제 해결을 더 쉽게 할 수 있도록 도와줍니다. 각 계층은 독립적으로 동작하지만 상호작용하며, 네트워크 통신의 복잡한 과정을 분리하여 관리할 수 있습니다.

 

[꼬리 질문]

  • 물리 계층은 무엇을 담당하나요?
    -> 전송 매체를 통해 데이터를 비트 단위로 전달합니다.
  • 데이터 링크 계층의 주요 기능은 무엇인가요?
    -> 에러 감지와 수정, 프레임의 전송을 담당합니다.
  • 네트워크 계층의 역할은 무엇인가요?
    -> 패킷을 라우팅하고, 목적지까지 데이터를 전달합니다.
  • 전송 계층은 무엇을 담당하나요?
    -> 데이터의 신뢰성을 보장하며, 포트 번호를 통해 통신합니다.
  • 응용 계층의 역할은 무엇인가요?
    -> 사용자와 상호작용하며, 네트워크 서비스를 제공합니다.

 

HTTP method에 어떤 것들이 있는지 설명해주세요.

더보기

HTTP method는 GET, POST, PUT, DELETE, PATCH 등이 있으며, 각각 요청의 목적에 따라 다릅니다.

HTTP method란?
-> HTTP method는 클라이언트가 서버에 요청을 보낼 때 그 요청의 목적을 정의하는 방식으로, 서버가 어떻게 응답해야 할지에 대한 지침을 제공합니다. 주요 HTTP method에는 GET, POST, PUT, DELETE, PATCH 등이 있으며, 각각의 메서드는 특정 작업(데이터 조회, 생성, 수정, 삭제 등)을 수행합니다.

 

각 HTTP 메서드의 역할:

  1. GET:
    서버에서 데이터를 조회하는 요청입니다. 서버의 상태를 변경하지 않으며, 리소스를 읽기만 할 때 사용됩니다.
  2. POST:
    서버에 새로운 데이터를 제출하거나 리소스를 생성할 때 사용됩니다. 서버 상태를 변경할 수 있습니다.
  3. PUT:
    기존 리소스를 완전히 대체하는 방식으로 데이터를 수정할 때 사용됩니다.
  4. DELETE:
    지정된 리소스를 서버에서 삭제할 때 사용됩니다.
  5. PATCH:
    리소스의 일부만을 수정하는 요청으로, PUT과 달리 전체 리소스를 교체하지 않습니다.
  6. OPTIONS:
    서버가 지원하는 HTTP 메서드 및 요청에 대해 어떤 옵션을 제공하는지 확인할 때 사용됩니다.
  7. HEAD:
    GET 요청과 유사하지만, 응답 본문을 제외하고 헤더 정보만 반환합니다.

HTTP 메서드를 사용하는 이유:

HTTP method를 사용하면, 클라이언트와 서버 간에 요청을 명확히 정의하고, 의도된 작업이 무엇인지 알 수 있게 하여 서버가 적절한 응답을 할 수 있도록 돕습니다. 각 메서드는 고유의 목적을 가지고 있기 때문에, HTTP 메서드를 올바르게 사용하면 시스템의 설계가 깔끔하고 명확해집니다.

 

[꼬리 질문]

  • GET 메서드는 무엇을 의미하나요?
    -> 서버에서 데이터를 조회하는 데 사용됩니다.
  • POST 메서드는 무엇을 의미하나요?
    -> 서버에 데이터를 제출하여 리소스를 생성하는 데 사용됩니다.
  • PUT 메서드는 무엇을 의미하나요?
    -> 서버의 리소스를 업데이트하는 데 사용됩니다.
  • DELETE 메서드는 무엇을 의미하나요?
    -> 서버에서 리소스를 삭제하는 데 사용됩니다.
  • PATCH 메서드는 무엇을 의미하나요?
    -> 리소스의 일부를 수정하는 데 사용됩니다.
  • GET 요청에 본문을 포함할 수 있나요?
    -> 이론상으로는 가능하지만, GET 요청은 본문을 포함하지 않는 것이 일반적입니다.
  • HTTP 메서드 중 어떤 것이 가장 안전한가요?
    -> GET은 서버의 상태를 변경하지 않으며, 가장 안전한 HTTP 메서드로 간주됩니다.
  • RESTful API에서 HTTP 메서드는 어떤 역할을 하나요?
    -> RESTful API에서는 HTTP 메서드를 사용하여 리소스의 CRUD(생성, 조회, 수정, 삭제) 작업을 처리하며, 이를 통해 리소스를 정의하고 관리합니다.
  • HTTP 메서드 사용 시 주의해야 할 점은 무엇인가요?
    -> HTTP 메서드의 목적에 맞는 적절한 사용을 해야 하며, 특히 GET에 민감한 데이터를 포함시키지 않고, PUT과 PATCH는 데이터 변경 시 무결성을 확인해야 합니다.

'study > CS' 카테고리의 다른 글

CS 면접 예상 질문 - 네트워크(2)  (0) 2025.03.25
CS 면접 예상 질문 - Spring(3)  (0) 2025.03.12
CS 면접 예상 질문 - Spring(2)  (0) 2025.03.11
CS 면접 예상 질문 - Spring(1)  (0) 2025.03.05
CS 면접 예상 질문 - Java(3)  (0) 2025.03.04