🔹 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 입력 시 일어나는 과정
🔸 전체 프로세스
- DNS 조회
- 목적: 도메인 이름(예: www.naver.com)을 IP 주소로 변환합니다.
- 과정: 브라우저 → 로컬 DNS 캐시 → 로컬 DNS 서버 → 상위 DNS 서버 순으로 요청.
- TCP 연결 수립 (3-Way Handshake)
- 과정:
- 클라이언트가 SYN 패킷 전송
- 서버가 SYN-ACK 응답
- 클라이언트가 ACK로 응답
- 목적: 안정적인 통신 채널을 형성합니다.
- 과정:
- HTTP/HTTPS 요청 전송
- 요청: 브라우저가 서버에 GET 요청 등으로 웹페이지 리소스(HTML, CSS, JS 등)를 요청합니다.
- 특징: HTTPS인 경우 SSL/TLS 암호화 과정을 추가하여 보안을 강화합니다.
- 서버 응답
- 응답: 서버는 요청에 맞는 데이터를 패킷 단위로 전송합니다.
- 캐싱: 정적 자원의 경우 캐싱을 통해 빠른 응답 제공 가능.
- 데이터 수신 및 렌더링
- 파싱: 브라우저는 수신한 HTML, CSS, JS를 파싱합니다.
- 렌더링: 파싱된 데이터를 바탕으로 화면에 웹페이지를 출력합니다.
🔹 꼬리 질문 & 답변
🔸 꼬리 질문: 네트워크 과정 중 발생할 수 있는 보안 취약점에는 어떤 것들이 있으며, 어떻게 대응할 수 있나요?
답변: DNS 스푸핑, 중간자 공격, 비암호화 전송에 따른 데이터 탈취 등이 있으며, HTTPS, DNSSEC, 최신 보안 패치 적용 등을 통해 대응할 수 있습니다.
🔹 3. OSI 7계층 및 네트워크 장비/스위치 차이점
🔸 OSI 7계층
- 물리 계층 (Physical Layer):
- 실제 전송 매체와 전기 신호, 광신호 등 물리적 특성 관리.
- 데이터 링크 계층 (Data Link Layer):
- 프레임 단위 전송, MAC 주소 기반의 오류 검출 및 수정.
- 네트워크 계층 (Network Layer):
- IP 주소를 기반으로 라우팅, 패킷 전달.
- 전송 계층 (Transport Layer):
- TCP, UDP 등으로 데이터 전송의 신뢰성, 흐름 제어 담당.
- 세션 계층 (Session Layer):
- 세션 관리, 연결 설정 및 종료.
- 표현 계층 (Presentation Layer):
- 데이터 인코딩, 암호화, 압축.
- 응용 계층 (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 플래그 적용과 함께 주기적인 세션 관리가 필요합니다.
'게임서버-스파르타코딩NodeJs_7기 > 모의면접' 카테고리의 다른 글
면접카타 - 기타 37~45 (0) | 2025.02.28 |
---|---|
면접카타 [OS] 25~28 (0) | 2025.02.27 |
면접카타 [DB] -23,24 : NoSQL와 트랜션 (0) | 2025.02.24 |
면접카타 [DB] - 21,22 무결성, JOIN (0) | 2025.02.21 |
면접카타 [DB]-19,20 기본키, 외래키, ER모델, 정규화 (0) | 2025.02.20 |