개발자를 위한 네트워크 필수 CS 지식
이 페이지는 개발자 취업 준비를 위한 네트워크 관련 CS 필수 지식을 정리한 문서입니다. 면접에서 자주 물어보는 개념과 질문들을 중심으로 구성되어 있습니다.
1. 네트워크 기초
네트워크는 문자 그대로 여러 기기를 연결하여 데이터를 주고받을 수 있도록 하는 시스템입니다. 웹 개발자와 백엔드 개발자는 기본적인 네트워크 지식을 반드시 알고 있어야 합니다.
1.1 OSI 7계층 모델
OSI(Open Systems Interconnection) 7계층 모델은 네트워크 통신을 7개의 계층으로 분류하여 정의한 국제 표준 모델입니다.
<aside>
📁 OSI 7계층: 물리 계층 → 데이터 링크 계층 → 네트워크 계층 → 전송 계층 → 세션 계층 → 표현 계층 → 응용 계층
</aside>
- 물리 계층(Physical Layer): 물리적 연결을 하는 계층. 케이블, 커넥터, 전송 방식 등을 정의
- 데이터 링크 계층(Data Link Layer): 물리적 네트워크 상에서 두 노드간 연결을 형성하고 유지하며 오류 검출/수정을 제공. MAC 주소 사용
- 네트워크 계층(Network Layer): 데이터 경로를 결정하고 IP 주소를 사용하여 패킷 전달. 라우팅이 이 계층에서 일어남
- 전송 계층(Transport Layer): 데이터 전송을 제어하고 신뢰성 가능한 전송을 보장. TCP(Transmission Control Protocol)나 UDP(User Datagram Protocol) 사용
- 세션 계층(Session Layer): 애플리케이션 간의 세션 연결을 관리하는 계층. 연결 수립, 유지, 종료 등을 담당
- 표현 계층(Presentation Layer): 데이터 형식을 변환하고 암호화/복호화, 압축/해제 등을 담당하는 계층
- 응용 계층(Application Layer): 사용자와 가장 가까운 계층으로, 웹 브라우저, 이메일 클라이언트 등 사용자 연계 애플리케이션을 제공
1.2 TCP/IP 모델
TCP/IP 모델은 인터넷의 기본 통신 프로토콜로, OSI 모델을 단순화하여 4계층으로 구성되어 있습니다.