Skip to content

네트워크 ​

네트워크(network)는 떨어져 있는 컴퓨터들이 약속된 규칙인 프로토콜(protocol)에 따라 데이터를 주고받는 구조다. 인터넷의 뼈대는 주소를 보고 데이터를 목적지까지 넘겨 주는 IP(Internet Protocol, 인터넷 프로토콜)와, 그 위에서 빠짐없이 순서대로 전달되게 챙기는 TCP(Transmission Control Protocol, 전송 제어 프로토콜)다. 웹 서비스의 요청 하나는 목적지 주소를 찾고, 연결을 맺고, 내용을 암호화해 보내고, 응답을 받는 과정을 거친다. 네트워크는 이 과정을 맡은 일이 저마다 정해진 여러 계층(layer)으로 나눠 처리한다. 그래서 계층마다 무엇을 책임지는지 알아야 장애와 지연의 원인을 짚을 수 있다.

학습 순서 ​

  1. 네트워크의 큰 그림 — 패킷 교환(packet switching), OSI(Open Systems Interconnection, 개방형 시스템 상호 연결) 7계층과 TCP/IP 4계층 (면접 비중: 높음)
  2. 네트워크의 큰 그림 2 — 캡슐화(encapsulation), MAC 주소(Media Access Control address, 매체 접근 제어 주소)·IP 주소·포트(port)의 역할 (면접 비중: 높음)
  3. 네트워크의 큰 그림 3 — 주소창에 URL을 입력한 뒤 응답을 받기까지 지나는 길 (면접 비중: 높음)
  4. 물리 계층과 데이터 링크 계층 — 비트를 신호로 바꾸는 물리 계층(physical layer), 이더넷(Ethernet) 프레임(같은 네트워크 안에서 주고받는 데이터 묶음), MAC 주소와 NIC(Network Interface Card, 네트워크 인터페이스 카드) (면접 비중: 중간)
  5. 물리 계층과 데이터 링크 계층 2 — 허브(hub)와 스위치(switch), 브로드캐스트 도메인(broadcast domain), ARP(Address Resolution Protocol, 주소 결정 프로토콜) (면접 비중: 중간)
  6. IP와 라우팅 — IP 주소와 서브넷(subnet), 주소를 고정 크기로 나누던 클래스 방식과 CIDR(Classless Inter-Domain Routing, 클래스 없는 도메인 간 라우팅), 사설 IP 주소(private IP address)와 NAT(Network Address Translation, 네트워크 주소 변환) (면접 비중: 높음)
  7. IP와 라우팅 2 — DHCP(Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜), 라우팅 테이블(routing table), TTL(Time To Live, 생존 시간)과 ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜), IPv6(Internet Protocol version 6, 인터넷 프로토콜 6판) (면접 비중: 높음)
  8. TCP와 UDP — 포트와 소켓(socket), 두 전송 프로토콜의 차이, 연결을 맺는 3-way 핸드셰이크(handshake) (면접 비중: 높음)
  9. TCP와 UDP 2 — 연결 해제, TIME_WAIT과 CLOSE_WAIT, 오류 검사용 체크섬(checksum) (면접 비중: 높음)
  10. TCP의 신뢰성과 혼잡 제어 — 순서 번호(sequence number)와 누적 확인 응답(cumulative acknowledgment), 재전송(retransmission), 흐름 제어(flow control) (면접 비중: 높음)
  11. TCP의 신뢰성과 혼잡 제어 2 — 혼잡 제어(congestion control)의 슬로 스타트(slow start)와 혼잡 회피(congestion avoidance), 작은 데이터를 모아 보내는 Nagle 알고리즘 (면접 비중: 높음)
  12. DNS — DNS(Domain Name System, 도메인 이름 시스템)가 쓰는 도메인 이름(domain name)의 계층, 리졸버(resolver)의 두 가지 질의 방식, 이름이 IP 주소가 되기까지의 조회 흐름 (면접 비중: 높음)
  13. DNS 2 — 레코드 종류, TTL과 캐시(cache)로 변경이 늦게 퍼지는 이유, 주로 UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)의 53번 포트를 쓰는 전송 (면접 비중: 높음)
  14. HTTP의 기초 — 요청과 응답 메시지, 메서드(method)와, 서버 상태를 바꾸지 않는 성질인 안전성(safety)과 멱등성(idempotency) (면접 비중: 높음)
  15. HTTP의 기초 2 — 상태 코드(status code), 자주 쓰는 헤더(header), 무상태(stateless), 연결 재사용 (면접 비중: 높음)
  16. HTTP의 응용 — 쿠키(cookie)와 세션(session), 로그인했다는 증표를 담은 토큰(token)과 JWT(JSON Web Token, JSON 웹 토큰), HTTP 캐시 (면접 비중: 높음)
  17. HTTP의 응용 2 — CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)와 동일 출처 정책(same-origin policy), HTTP/1.1·HTTP/2·HTTP/3 (면접 비중: 높음)
  18. HTTPS와 TLS — HTTPS(HTTP Secure, 보안 HTTP)가 필요한 이유인 평문(plaintext) HTTP의 위험, 대칭 키 암호화(symmetric-key encryption)와 공개 키 암호화(public-key encryption), 해시 함수(hash function)와 전자 서명(digital signature), 인증서(certificate)와 인증서 체인(certificate chain) (면접 비중: 높음)
  19. HTTPS와 TLS 2 — TLS(Transport Layer Security, 전송 계층 보안) 1.3 핸드셰이크, TLS 1.2와의 차이, SSL(Secure Sockets Layer, 보안 소켓 계층)이라는 이름 (면접 비중: 높음)
  20. 프록시와 로드 밸런싱 — 프록시(proxy)의 두 종류인 포워드 프록시(forward proxy)와 리버스 프록시(reverse proxy), 로드 밸런서(load balancer) (면접 비중: 중간)
  21. 프록시와 로드 밸런싱 2 — 요청을 서버들에 나누는 분산 알고리즘, 헬스 체크(health check), 스티키 세션(sticky session), 스케일 업(scale-up)과 스케일 아웃(scale-out), CDN(Content Delivery Network, 콘텐츠 전송 네트워크) (면접 비중: 중간)