Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

말하는 감자의 성장 기록

[CS] 네트워크 본문

CS

[CS] 네트워크

말하는 감자 0호 2026. 3. 8.

2.1 네트워크의 기초

네트워크: 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합

  • 노드: 서버, 라우터, 스위치 등 네트워크 장치
  • 링크: 유선/무선

2.1.1 처리량과 지연 시간

처리량(throughput)

링크 내에서 성공적으로 전달된 데이터의 양. 보통 얼만큼의 트래픽을 처리했는지.

  • 단위: bps(bits per second) 초당 전송 또는 수신되는 비트 수
  • 처리량은 사용자들이 많이 접속할 때마다 커지는 *트래픽, 네트워크 장치 간의 *대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받음.
    *대역폭: 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
    *트래픽: 특정 시점에 링크 내에 흐르는 데이터 양

지연 시간(latency)

요청이 처리되는 시간. 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간.

  • 지연 시간은 매체 타입(무선, 유선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받음.

2.1.2 네트워크 토폴로지와 병목 현상

네트워크 토폴로지

노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태. 네트워크 구조.

 

트리 토폴로지(= 계층형 토폴로지)

트리 형태로 배치한 네트워크 구성

  • 장점
    • 노드의 추가, 삭제가 쉬움
  • 단점
    • 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있음

 

버스 토폴로지

중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성. 근거리 통신망(LAN)에서 사용.

  • 장점
    • 설치 비용이 적고 신뢰성이 우수
    • 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움
  • 단점
    • 스푸핑이 가능한 문제점
      *스푸핑: 다른사람의 컴퓨터 시스템에 접근할 목적으로 IP주소를 변조한 후 합법적인 사용자인 것처럼 위장하여 시스템에 접근함으로써 나중에 IP주소에 대한 추적을 피하는 해킹 기법의 일종

 

스타 토폴로지

중앙에 있는 노드에 모두 연결된 네트워크 구성

  • 장점
    • 노드를 추가하기 쉬움
    • 패킷의 충돌 발생 가능성이 적음
    • 어떠한 노드에 장애가 발생해도 쉽게 에러를 발견할 수 있음
  • 단점
    • 중앙 노드에 장애가 발생하면 전체 네트워크를 사용할 수 없음
    • 설치 비용이 고가

링형 토폴로지

각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성 방식.

데이터는 노드 → 노드로 이동. 각각의 노드는 고리 모양의 길을 통해 패킷 처리

  • 장점
    • 노드 수가 증가되어도 네트워크 상의 손실이 거의 없음
    • 충돌 발생 가능성 적음
    • 노드의 고장을 쉽게 찾을 수 있음
  • 단점
    • 네트워크 구성 변경이 어려움
    • 회선에 장애가 발생하면 전체 네트워크에 영향을 크게 끼침

메시 토폴로지(=망형 토폴로지)

그물망처럼 연결되어 있는 구조.

  • 장점
    • 한 단말 장치에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크를 계속 사용할 수 있음
    • 트래픽 분산 처리 가능
  • 단점
    • 노드 추가 어려움
    • 구축 비용과 운용 비용 고가

병목 현상

토폴로지는 병목 현상을 찾을 때 중요한 기준이 됨

2.1.3 네트워크 분류

LAN(Local Area Network) - 사무실/개인적으로 소유 가능한 규모

MAN(Metropolitan Area Network) - 시 정도의 규모

WAN(Wide Area Network) - 세계 규모

LAN

근거리 통신망. 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영됨.

전송 속도가 빠르고 혼잡하지 않음.

MAN

대도시 지역 네트워크. 도시 같은 넓은 지역에서 운영.

전송 속도는 평균이고 LAN보다 혼잡

WAN

광역 네트워크. 국가 또는 대륙 같은 더 넓은 지역에서 운영.

전송 속도는 낮고 MAN보다 더 혼잡.

2.1.4 네트워크 성능 분석 명령어

애플리케이션 코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황이 발생되기도 함 → 네트워크 병목 현상일 가능성.

네트워크 병목 현상의 주된 원인

  • 네트워크 대역폭
  • 네트워크 토폴로지
  • 서버 CPU, 메모리 사용량
  • 비효율적인 네트워크 구성

ping(Packet INternet Groper)

ping [IP/도메인 주소]

네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어.

해당 노드의 패킷 수신 상태와 도달하기까지 시간 등을 알 수 있음.

TCP/IP 프로토콜 중에 ICMP 프로토콜을 통해 동작.

→ ICMP 프로토콜을 지원하지 않는 기기를 대상으로는 실행할 수 없거나 네트워크 정책상 ICMP나 traceroute를 차단하는 대상의 경우 ping 테스트 불가능

netstat

접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용되며 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여줌. 주로 서비스의 포트가 열려 있는지 확인할 때 씀.

nslookup

DNS에 관련된 내용을 확인하기 위해 쓰는 명령어.

특정 도메인에 매핑된 IP를 확인하기 위해 사용.

tracert

윈도우: tracert, 리눅스 traceroute

목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어.

목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인할 수 있음.

2.1.5 네트워크 프로토콜 표준화

네트워크 프로토콜: 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스.

IEEE/IETF라는 표준화 단체가 이를 정함.

2.2 TCP/IP 4계층 모델

인터넷 프로토콜 스위트(internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜 집합.

TCP/IP 4계층 모델 or OSI 7계층 모델로 설명

2.2.1 계층 구조

이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향 받지 않도록 설계됨.

전송 게층에서 TCP → UDP로 변경했다고 해서 인터넷 웹 브라우저를 다시 설치해야 하는 것은 아님.

애플리케이션 계층

FTP, HTTP, SSH, SMTP, DNS 등 응용 프로그램이 사용되는 프로토콜 계층. 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층.

    *FTP: 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 프로토콜
    *SSH: 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
    *HTTP: World Wide Web을 위한 데이터 통신의 기초이자 웹사이트를 이용하는 데 쓰는 프로토콜
    *SMTP: 전자메일 전송을 위한 인터넷 표준 통신 프로토콜
    *DNS: 도메인 이름과 IP 주소를 매핑해 주는 서버

전송 계층

송신자와 수신자를 연결하는 통신 서비스 제공. 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공. 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때 중계 역할을 함. 대표적으로 TCP, UDP가 있음.

  • TCP: 패킷 사이의 순서를 보장하고 연결 지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인하며 '가상회선 패킷 교환 방식'을 사용
  • UDP: 순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주는 '데이터그램 패킷 교환 방식'을 사용

가상회선 패킷 교환 방식

각 패킷에는 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착하는 방식

특정 회선을 따라 순서대로 도착.

데이터그램 패킷 교환 방식

패킷이 독립적으로 이동하며 최적의 경로를 선택하여 가는데, 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 순서가 다를 수 있는 방식

TCP 연결 성립 과정

TCP는 신뢰성을 확보할 때 '3-way handshake'라는 작업을 진행.

  1. SYN 단계: 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보냅니다. ISN은 새로운 TCP 연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호를 말하며 이는 장치마다 다를 수 있습니다.
  2. SYN + ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인 번호로 클라이언트의 ISN + 1을 보냅니다.
  3. ACK 단계: 클라이언트는 서버의 ISN + 1한 값인 승인 번호를 담아 ACK를 서버에 보냅니다.

이렇게 3-way handshake 과정 이후 신뢰성이 구축되고 데이터 전송을 시작합니다. TCP는 이 과정이 있기 때문에 신뢰성이 있는 계층이라고 하며 UDP는 이 과정이 없기 때문에 신뢰성이 없는 계층이라고 합니다.

    *SYN: Synchronization의 약자, 연결 요청 플래그
    *ACK: Acknowledgement의 약자, 응답 플래그

    *ISN: Initial Sequence Numbers의 약어, 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호

 

TCP 연결 해제 과정

TCP가 연결을 해제할 때는 '4-way handshake' 과정이 발생

  1. 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보냄. 그리고 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다림.
  2. 서버는 클라이언트로 ACK라는 승인 세그먼트를 보내고 CLOSE_WAIT 상태에 들어감. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어갑니다.
  3. 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보냅니다.
  4. 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 됩니다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제됩니다.

TIME_WAIT가 있는 이유

  1. 지연 패킷이 발생할 경우를 대비하기 위해서. 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생함.
  2. 두 장치 연결이 닫혔는지 확인하기 위해서. LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 시도하려고 할때 장치가 LAST_ACK으로 되어 있어서 접속 오류가 남.
    *TIME_WAIT: 소켓이 바로 소멸되지 않고 일정 시간 유지되는 상태를 말하며 지연 패킷 등의 문제점을 해결하는 데 쓰임. OS마다 조금씩 다를 수 있음.
    *데이터 무결성(data integrity): 데이터의 정확성과 일관성을 유지하고 보증하는 것

인터넷 계층

장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층.

IP, ARP, ICMP 등이 있음. 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달. 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결형적인 특징을 가지고 있음.

링크 계층(=네트워크 계층)

전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층

물리 계층과 데이터 링크 계층으로 나누기도 함.

  • 물리 계층: 무선 LAN과 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
  • 데이터 링크 계층: '이더넷 프레임'을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층

전이중화(full duplex) 통신

양쪽 장치가 동시에 송수신할 수 있는 방식으로, 송신로와 수신로로 나눠서 데이터를 주고받음. 현대의 고속 이더넷은 이 방식을 기반으로 통신.

CSMA/CD

참고로 이전에는 유선 LAN에 '반이중화 통신' 중 하나인 CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 방식을 썼음. 이 방식은 데이터를 '보낸 이후' 충돌이 발생한다면 일정 시간 이후 재전송하는 방식을 말함. 이는 수신로와 송신로를 각각 둔 것이 아니고 한 경로를 기반으로 데이터를 보내기 때문에 데이터를 보낼 때 충돌에 대해 대비해야 했기 때문.


유선 LAN을 이루는 케이블

유선 LAN을 이루는 케이블로는 TP 케이블이라고 하는 트위스트 페어 케이블과 광섬유 케이블이 대표적.


트위스트 페어 케이블(twisted pair cable)

하나의 케이블처럼 보이지만 실제로는 여덟 개의 구리선을 두 개씩 꼬아서 묶은 케이블.

케이블: 구리선을 실드 처리하지 않고 덮은 UTP 케이블/ 실드 처리하고 덮은 STP

여기서 우리가 많이 볼 수 있는 케이블은 UTP 케이블로 흔히 LAN 케이블이라고 함.

참고로 이 LAN 케이블을 꽂을 수 있는 커넥터를 RJ-45 커넥터라고 함.


광섬유 케이블

광섬유 케이블은 광섬유로 만든 케이블. 레이저를 이용해서 통신하기 때문에 구리선과는 비교할 수 없을 만큼의 장거리 및 고속 통신이 가능함. 보통 100Gbps의 데이터를 전송하며 다음 그림처럼 광섬유 내부와 외부를 다른 밀도를 가지는 유리나 플라스틱 섬유로 제작해서 한 번 들어간 빛이 내부에서 계속적으로 반사하며 전진하여 반대편 끝까지 가는 원리를 이용.


무선 LAN(IEEE 802.11)

무선 LAN 장치는 수신과 송신에 같은 채널을 사용하기 때문에 반이중화 통신을 사용.


반이중화 통신(half duplex)

양쪽 장치는 서로 통신할 수 있지만, 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식.

일반적으로 장치가 신호를 수신하기 시작하면 응답하기 전에 전송이 완료될 때까지 기다려야 함. 또한, 둘 이상의 장치가 동시에 전송하면 충돌이 발생하여 메시지가 손실되거나 왜곡될 수 있기 때문에 충돌 방지 시스템이 필요함.


CSMA/CA

CSMA/CA는 반이중화 통신 중 하나로 장치에서 데이터를 보내기 전에 일련의 과정을 기반으로 사전에 가능한 한 충돌을 방지하는 방식을 말함.

CSMA/CA 프레임을 보낼 때 다음과 같은 과정이 일어남.

  1. 사용 중인 채널이 있다면 다른 채널을 감지하다 유휴 상태인 채널을 발견함.
  2. 프레임 간 공간 시간인 IFS(InterFrame Space) 시간만큼 기다림. IFS는 프레임의 우선순위를 정의할 때도 사용됨. IFS가 낮으면 우선순위가 높음.
  3. 프레임을 보내기 전 0~2k-1 사이에서 결정된 랜덤 상수를 기반으로 결정된 시간만큼 기다린 뒤 프레임을 보냄. 프레임을 보낸 뒤 제대로 송신이 되었고 ACK 세그먼트를 받았다면 마침. 그러나 받지 못했다면 k=k+1을 하며 이 과정을 반복함. 반복하다 k가 정해진 Kmax보다 더 커진다면 해당 프레임 전송은 버림(abort).

참고로 이와 반대되는 전이중화 통신은 양방향 통신이 가능하므로 충돌 가능성이 없기 때문에 충돌을 감지하거나 방지하는 메커니즘이 필요하지 않음.


무선 LAN(WLAN, Wireless Local Area Network)을 이루는 주파수

무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술.

비유도 매체인 공기에 주파수를 쏘아 무선 통신망을 구축하는데, 주파수 대역은 2.4GHz 대역 또는 5GHz 대역 중 하나를 써서 구축함.

  • 2.4GHz는 장애물에 강한 특성을 가지고 있지만 전자레인지, 무선 등 전파 간섭이 일어나는 경우가 많음.
  • 5GHz 대역은 사용할 수 있는 채널 수도 많고 동시에 사용할 수 있기 때문에 상대적으로 깨끗한 전파 환경을 구축할 수 있음. 그렇기 때문에 보통은 5GHz 대역을 사용하는 것이 좋음.

와이파이(wifi)

전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술로, 이를 사용하려면 무선 접속 장치(AP, Access Point)가 있어야 함. 흔히 이를 공유기라고 하며, 이를 통해 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿔주어 신호가 닿는 범위 내에서 무선 인터넷을 사용할 수 있게 됨.

cf. 무선 LAN을 이용한 기술로는 와이파이만 있는 것이 아니고 지그비, 블루투스 등이 있음.


BSS(Basic Service Set)

기본 서비스 집합을 의미하며, 단순 공유기를 통해 네트워크에 접속하는 것이 아닌 동일 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조를 말함. 근거리 무선 통신을 제공하고, 하나의 AP만을 기반으로 구축이 되어 있어 사용자가 한 곳에서 다른 곳으로 자유롭게 이동하며 네트워크에 접속하는 것은 불가능함.


ESS(Extended Service Set)

하나 이상의 연결된 BSS 그룹. 장거리 무선 통신을 제공하며 BSS보다 더 많은 가용성과 이동성을 지원함. 즉, 사용자는 한 장소에서 다른 장소로 이동하며 중단 없이 네트워크에 계속 연결할 수 있음.

이더넷 프레임

데이터링크 계층은 이더넷 프레임을 통해 전달받은 데이터의 에러를 검출하고 캡슐화하며 다음과 같은 구조를 가짐.

  • Preamble : 이더넷 프레임이 시작임을 알림.
  • SFD(Start Frame Delimiter) : 다음 바이트부터 MAC 주소 필드가 시작됨을 알림.
  • DMAC, SMAC : 수신, 송신 *MAC 주소
    *MAC 주소: 컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)를 구별하기 위한 식별번호. 6바이트(48비트)로 구성됨.
  • EtherType : 데이터 계층 위의 계층인 IP 프로토콜을 정의함. 예를 들어 IPv4 또는 IPv6가 됨.
  • Payload : 전달받은 데이터
  • CRC : 에러 확인 비트

계층 간 데이터 송수신 과정

필자가 컴퓨터를 통해 다른 컴퓨터로 HTTP를 통해 웹 서버에 있는 데이터를 요청하면 다음과 같은 일이 일어남.

애플리케이션 계층에서 전송 계층으로 필자가 보내는 요청(request) 값들이 캡슐화 과정을 거쳐 전달되고, 다시 링크 계층을 통해 해당 서버와 통신을 하고, 해당 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송됨.


캡슐화 과정

캡슐화 과정은 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정.

애플리케이션 계층의 데이터가 전송 계층으로 전달되면서 '세그먼트' 또는 '데이터그램'화 되며 TCP(L4) 헤더가 붙여지게 됨. 그리고 이후 인터넷 계층으로 가면서 IP(L3) 헤더가 붙여지게 되며 '패킷'화가 되고, 이후 링크 계층으로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 '프레임'화가 됨.

비캡슐화 과정

비캡슐화 과정은 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정을 말함.

이렇게 캡슐화된 데이터를 받게 되면 링크 계층에서부터 타고 올라오면서 프레임화된 데이터는 다시 패킷화를 거쳐 세그먼트, 데이터그램화를 거쳐 메시지화가 되는 비캡슐화 과정이 일어남. 그 이후 최종적으로 사용자에게 애플리케이션의 PDU인 메시지로 전달됨.

2.2.2 PDU(Protocol Data Unit)

네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위.

PDU는 제어 관련 정보들이 포함된 '헤더', 데이터를 의미하는 '페이로드'로 구성되어 있으며 계층마다 부르는 명칭이 다름.

  • 애플리케이션 계층: 메시지
  • 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
  • 인터넷 계층: 패킷
  • 링크 계층: 프레임(데이터링크 계층), 비트(물리 계층)

예시: 애플리케이션 계층은 '메시지'를 기반으로 데이터를 전달하는데, HTTP의 헤더가 문자열임.

cf. PDU 중 아래 계층인 비트로 송수신하는 것이 모든 PDU 중 가장 빠르고 효율성이 높음. 하지만 애플리케이션 계층에서는 문자열을 기반으로 송수신을 하는데, 그 이유는 헤더에 authorization 값 등 다른 값들을 넣는 확장이 쉽기 때문.

2.3 네트워크 기기

2.3.1 네트워크 기기의 처리 범위

네트워크 기기는 계층별로 처리 범위를 나눌 수 있음.

물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있음. 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있음. 반대는 불가능.

L7 스위치: 애플리케이션 계층 처리 가능, 그 밑 모든 계층 프로토콜 처리 가능

AP: 물리 계층만 처리 가능

  • 애플리케이션 계층 : L7 스위치
  • 인터넷 계층 : 라우터, L3 스위치
  • 데이터링크 계층 : L2 스위치, 브리지
  • 물리 계층 : NIC, 리피터, AP

2.3.2 애플리케이션 계층을 처리하는 기기

L7 스위치

여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비

L7 스위치는 서버의 부하를 분산하는 기기(로드밸런서). 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할을 하며 시스템이 처리할 수 있는 트래픽 증가를 목표로 함.

URL, 서버, 캐시, 쿠키들을 기반으로 트래픽을 분산. 바이러스, 불필요한 외부 데이터 등을 걸러내는 필터링 기능, 응용 프로그램 수준의 트래픽 모니터링도 가능.

헬스 체크(health check)를 통해 장애가 발생한 서버를 트래픽 분산 대상에서 제외.


L4 스위치와 L7 스위치 차이

로드밸런서로는 L4 스위치도 있으나 L4 스위치는 전송 계층을 처리하는 기기로 스트리밍 관련 서비스에서는 사용할 수 없으며 메시지를 기반으로 인식하지 못하고 IP와 포트를 기반으로 트래픽을 분산함. ↔ L7 스위치는 IP, 포트 외에도 URL, 서버, 캐시, 쿠키 등을 기반으로 트래픽 분산.


헬스 체크

L4 스위치 또는 L7 스위치 모두 헬스 체크를 통해 정상적인 서버 또는 비정상적인 서버를 판별. 헬스체크는 전송 주기와 재전송 횟수 등을 설정한 이후 반복적으로 서버에 요청을 보내는 것.

서버에 부하가 되지 않을 만큼 요청 횟수가 적절해야 함. TCP, HTTP 등 다양한 방법으로 요청을 보내며 요청이 정상적으로 이루어지면 정상적인 서버로 판별.


로드밸런서를 이용한 서버 이중화

서비스를 안정적으로 운용하기 위해서는 2대 이상의 서버가 필수적. 에러가 발생하여 서버 1대가 종료되더라도 서비스는 안정적으로 운용되어야 함.

로드밸런서는 2대 이상의 서버를 기반으로 가상 IP를 제공하고 이를 기반으로 안정적인 서비스를 제공.

로드밸런서가 제공한 가상 IP에 사용자들이 접근하고 뒷단에 사용 가능한 서버들을 기반으로 서빙함. 한 서버에 장애가 발생해도 다른 서버들을 기반으로 안정적인 서비스를 운용할 수 있음.

2.3.3 인터넷 계층을 처리하는 기기

라우터

라우터(router)는 여러 개의 네트워크를 연결, 분할, 구분시켜주는 역할을 하며 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화하고 경로를 최적화하여 최소 경로로 패킷을 포워딩하는 라우팅을 하는 장비

L3 스위치

L3 스위치란 L2 스위치의 기능과 라우팅 기능을 갖춘 장비. L3 스위치를 라우터라고 해도 무방.

라우터 = 소프트웨어 기반의 라우팅 + 하드웨어 기반의 라우팅

L3 스위치는 하드웨어 기반의 라우팅을 담당하는 장치.


L3 스위치와 L2 스위치 비교

구분 L2 스위치 L3 스위치

참조 테이블 MAC 주소 테이블 라우팅 테이블
참조 PDU 이더넷 프레임 IP 패킷
참조 주소 MAC 주소 IP 주소

2.3.4 데이터 링크 계층을 처리하는 기기

L2 스위치

L2 스위치는 장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리. 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당.

IP 주소를 이해하지 못해 IP 주소를 기반으로 라우팅 불가능. 단순히 패킷의 MAC 주소를 읽어 스위칭하는 역할을 함. 목적지가 MAC 주소 테이블에 없다면 전체 포트를 전달하고 MAC 주소 테이블의 주소는 일정 시간 이후에 삭제하는 기능도 있음.

브리지

브리지는 두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 통신망 연결 장치로, 포트와 포트 사이의 다리 역할을 하며 장치에서 받아온 MAC 주소를 MAC 주소 테이블로 관리.

통신망 범위를 확장하고 서로 다른 LAN 등으로 이루어진 '하나의' 통신망을 구축할 때 쓰임.

2.3.5 물리 계층을 처리하는 기기

NIC

LAN 카드라고 하는 네트워크 인터페이스 카드(NIC, Network Interface Card)는 2대 이상의 컴퓨터 네트워크를 구성하는 데 사용하며, 네트워크와 빠른 속도로 데이터를 송수신할 수 있도록 컴퓨터 내에 설치하는 확장 카드.

각 LAN 카드에는 MAC 주소가 있음

리피터(repeater)

들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치. 이를 통해 패킷이 더 멀리 갈 수 있으나 광케이블이 보급됨에 따라 현재는 잘 쓰이지 않음.

AP(Access Point)

패킷을 복사하는 기기. AP에 유선 LAN을 연결한 후 다른 장치에서 무선 LAN 기술(와이파이 등)을 사용하여 무선 네트워크 연결을 할 수 있음.

2.4 IP 주소

2.4.1 ARP(Address Resolution Protocol)

컴퓨터-컴퓨터 간의 통신은 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신.

IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜.

ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환. ↔ RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 함.

장치 A가 ARP Request 브로드캐스트를 보내서 IP 주소인 120.70.80.3에 해당하는 MAC 주소를 찾음. 해당 주소에 맞는 장치 B가 ARP Reply 유니캐스트를 통해 MAC 주소를 반환하는 과정을 거처 IP 주소에 맞는 MAC 주소를 찾게 됨.

    *브로드캐스트: 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식
    *유니캐스트: 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식

2.4.2 홉바이홉 통신

IP 주소를 통해 통신하는 과정을 홉바이홉(hop by hop) 통신이라고 함

홉(hop): 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것

서브네트워크 안에 있는 라우터의 라우팅 테이블 IP를 기반으로 패킷을 전달하고 또 전달해나가며 라우팅을 수행하며 최종 목적지까지 패킷을 전달.

통신 장치에 있는 '라우팅 테이블'의 IP를 통해 시작 주소부터 시작하여 다음 IP로 계속해서 이동하는 '라우팅' 과정을 거쳐 패킷이 최종 목적지까지 도달하는 통신.

     *라우팅: IP 주소를 찾아가는 과정

라우팅 테이블(routing table)

송신지에서 수신지까지 도달하기 위해 사용되며 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트.

라우팅 테이블에는 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 가지고 있음.

게이트웨이(gateway)

서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어

사용자는 인터넷에 접속하기 위해 수많은 톨게이트인 게이트웨이를 거쳐야 하며 게이트웨이는 서로 다른 네트워크상의 통신 프로토콜을 변환해주는 역할을 하기도 함.

2.4.3 IP 주소 체계

IP 주소는 IPv4와 IPv6로 나뉨.

IPv4

  • 32비트를 8비트 단위로 점(.)을 찍어 표기
  • 123.45.67.89와 같은 방식으로 IP 주소를 나타냄.

IPv6

  • 128비트를 16비트 단위로 콜론(:)을 찍어 표기하며
  • 2001:db8:ff00:42:8329 같은 방식으로 IP 주소를 나타냄.

추세는 IPv6로 가고 있지만 현재 가장 많이 쓰이는 주소 체계는 IPv4이며 이후 설명도 IPv4 기준.

클래스 기반 할당 방식

IP 주소 체계는 과거를 거쳐 발전해 오고 있으며 처음에는 A, B, C, D, E 다섯 개의 클래스로 구분하는 클래스 기반 할당 방식(classful network addressing)을 썼음. 앞에 있는 부분을 네트워크 주소, 그 뒤에 있는 부분을 컴퓨터에 부여하는 주소인 호스트 주소로 놓아서 사용함.

클래스 A·B·C는 일대일 통신으로 사용되고 클래스 D는 멀티캐스트 통신, 클래스 E는 앞으로 사용할 예비용으로 쓰는 방식. 예를 들어 클래스 A의 경우 0.0.0.0부터 127.255.255.255까지 범위를 갖음.

맨 왼쪽에 있는 비트를 '구분 비트'라고 함.

앞의 그림에서 클래스 A의 경우 맨 왼쪽에 있는 비트가 0, 클래스 B는 10, 클래스 C는 110. 이를 통해 클래스 간의 IP가 나눠짐. 클래스 A에서 가질 수 있는 IP 범위는 00000000.00000000.00000000.00000000 ~ 01111111.11111111.11111111.11111111. 이를 십진수로 표현하면 0.0.0.0 ~ 127.255.255.255.

네트워크의 첫 번째 주소는 네트워크 주소로 사용.

네트워크의 가장 마지막 주소는 브로드캐스트용 주소로 네트워크에 속해 있는 모든 컴퓨터에 데이터를 보낼 때 사용됩니다.

DHCP(Dynamic Host Configuration Protocol)

IP 주소 및 기타 통신 매개 변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜. 이 기술을 통해 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 자동으로 IP 주소를 할당할 수 있음. 많은 라우터와 게이트웨이 장비에 DHCP 기능이 있으며 이를 통해 대부분의 가정용 네트워크에서 IP 주소를 할당함.

NAT(Network Address Translation)

패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법.

IPv4 주소 체계만으로는 많은 주소들을 모두 감당하지 못하는 단점이 있는데, 이를 해결하기 위해 NAT로 공인 IP와 사설 IP로 나눠서 많은 주소를 처리함. NAT를 가능하게 하는 소프트웨어는 ICS, RRAS, Netfilter 등이 있음.

사설 IP를 NAT 장치를 통해 하나의 공인 IP로 외부 인터넷에 요청할 수 있음. 이를 통해 한 회사에서 하나의 IP를 기반으로 각각의 다른 IP를 가지는 것처럼 인터넷을 사용할 수 있음.

  • 사설 IP → 공인 IP 변환
  • 공인 IP → 사설 IP 변환

공유기와 NAT

NAT를 쓰는 이유는 주로 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함. 인터넷 공유기에 NAT 기능이 탑재되어 있어 인터넷 회선 하나를 개통하고 인터넷 공유기를 달아서 여러 PC를 연결하여 사용할 수 있음.

NAT를 이용한 보안

NAT를 이용하면 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 IP 주소를 다르게 유지할 수 있기 때문에 내부 네트워크에 대한 어느 정도의 보안이 가능해짐.

NAT의 단점

NAT는 여러 명이 동시에 인터넷을 접속하게 되므로 실제로 접속하는 호스트 숫자에 따라서 접속 속도가 느려질 수 있음.

2.4.4 IP 주소를 이용한 위치 정보

IP 주소는 인터넷에서 사용하는 네트워크 주소이기 때문에 이를 통해 동 또는 구까지 위치 추적이 가능함.

2.5 HTTP

기본적으로 HTTP는 앞서 설명한 전송 계층 위에 있는 애플리케이션 계층으로서 웹 서비스 통신에 사용됨.

2.5.1 HTTP/1.0

기본적으로 한 연결당 하나의 요청을 처리하도록 설계됨. 이는 RTT 증가를 불러오게 되었음.

RTT 증가

서버로부터 파일을 가져올 때마다 TCP의 3-way handshake를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있었음.

    *RTT: 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간

RTT의 증가를 해결하기 위한 방법

매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이 길어져서 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용함.

이미지 스플리팅

많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐있는 하나의 이미지를 다운로드받고, 이를 기반으로 background-image의 position을 이용하여 이미지를 표기하는 방법.

  • 예시: 하나의 이미지인 icons.png를 기반으로 background-position을 통해 2개의 이미지를 설정

코드 압축

코드를 압축해서 개행문자, 빈칸을 없애서 코드의 크기를 최소화하는 방법.

const express=require("express"),app=express0,port=3e3;app.get("/",(e,p)=Xp.send("Hello World!")}),арp.listen(3e3,0=Xconsole.log("Example app listening on port 3000")});

개행 문자, 띄어쓰기 등이 사라져 코드가 압축되면 코드 용량이 줄어듦.

이미지 Base64 인코딩

이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법.

장점: 서버와의 연결을 열고 이미지에 대해 서버 HTTP 요청을 할 필요가 없음.

단점: Base64 문자열로 변환할 경우 37% 정도 크기가 더 커짐.

    *인코딩: 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식

2.5.2 HTTP/1.1

HTTP/1.0 → 발전 → HTTP/1.1

매번 TCP 연결을 하는 것이 아니라 한 번 TCP 초기화를 한 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신할 수 있게 바뀜.

cf. HTTP/1.0에서도 keep-alive가 있었지만 표준화가 되어 있지 않았고 HTTP/1.1부터 표준화가 되어 기본 옵션으로 설정됨.

한 번 TCP 3-웨이 핸드셰이크가 발생하면 그 다음부터 발생하지 않음. 하지만 문서 안에 포함된 다수의 리소스(이미지, 동영상, css 파일, js 파일 등)를 처리하려면 요청할 리소스 개수에 비례해서 대기 시간이 길어짐.

HOL Blocking(Head Of Line Blocking)

네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상.

  • 예시: image.jpg, styles.css, data.xml을 다운로드받을 때 보통은 순차적으로 잘 받아지지만 image.jpg가 느리게 받아진다면 그 뒤에 있는 것들이 대기하게 되며 다운로드가 지연됨.

무거운 헤더 구조

HTTP/1.1의 헤더에는 쿠키 등 많은 메타데이터가 들어 있고 압축이 되지 않아 무거움.

2.5.3 HTTP/2

HTTP/2는 SPDY(스피디) 프로토콜에서 파생된 HTTP/1.x보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜.

멀티플렉싱

멀티플렉싱이란 여러 개의 *스트림을 사용하여 송수신한다는 것. 이를 통해 특정 스트림의 패킷이 손실되었다고 하더라도 해당 스트림에만 영향을 미치고 나머지 스트림은 멀쩡하게 동작함.

    *스트림(stream): 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름

병렬적인 스트림(stream)들을 통해 데이터를 서빙하고 있음. 스트림 내의 데이터들도 쪼개져 있음. 애플리케이션에서 받아온 메시지를 독립된 프레임으로 조각 내어 서로 송수신한 이후 다시 조립하며 데이터를 주고받음.

이를 통해 단일 연결을 사용하여 병렬로 여러 요청을 받을 수 있고 응답을 줄 수 있음. 이렇게 되면 HTTP/1.x에서 발생하는 문제인 HOL Blocking을 해결할 수 있음.

헤더 압축

HTTP/1.x에는 헤더가 무거운 문제가 있었음. 이를 HTTP/2에서는 헤더 압축을 써서 해결하는데, 허프만 코딩 압축 알고리즘을 사용하는 HPACK 압축 형식을 가짐.

허프만 코딩(huffman coding)

문자열을 문자 단위로 쪼개 빈도수를 세어 빈도가 높은 정보는 적은 비트 수를 사용하여 표현하고, 빈도가 낮은 정보는 비트 수를 많이 사용하여 표현해서 전체 데이터의 표현에 필요한 비트 양을 줄이는 원리.

서버 푸시

HTTP/1.1에서는 클라이언트가 서버에 요청을 해야 파일을 다운로드받을 수 있었다면, HTTP/2는 클라이언트 요청 없이 서버가 바로 리소스를 푸시할 수도 있음.

html을 읽으면서 그 안에 들어 있던 css 파일을 서버에서 푸시하여 클라이언트에 먼저 줄 수 있음.

2.5.4 HTTPS

HTTP/2는 HTTPS 위에서 동작함.

HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청을 말함. 이를 통해 통신을 '암호화'함.

SSL/TLS

SSL(Secure Socket Layer)은 SSL 1.0 → SSL 2.0 → SSL 3.0 → TLS(Transport Layer Security Protocol) 1.0 → TLS 1.3 → TLS로 명칭이 변경되었으나, 보통 이를 합쳐 SSL/TLS로 많이 부름.

SSL/TLS는 전송 계층에서 보안을 제공하는 프로토콜로, 클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제3자가 메시지를 도청하거나 변조하지 못하도록 함. SSL/TLS를 통해 공격자가 서버인 척하며 사용자 정보를 가로채는 네트워크상의 '인터셉터'를 방지할 수 있음.

SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용됨.

보안 세션

보안 세션이란 보안이 시작되고 끝나는 동안 유지되는 *세션을 말하고, SSL/TLS는 핸드셰이크를 통해 보안 세션을 생성하고 이를 기반으로 상태 정보 등을 공유함.

    *세션: 운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간. 즉, 사용자는 일정 시간 동안 응용 프로그램, 자원 등을 사용할 수 있음.

  1. 클라이언트와 서버와 키를 공유하고 이를 기반으로 인증, 인증 확인 등의 작업이 일어나는 단 한 번의 1-RTT가 생긴 후 데이터를 송수신함.
  2. 클라이언트에서 사이퍼슈트(cyphersuites)를 서버에 전달하면 서버는 받은 사이퍼슈트의 암호화 알고리즘 리스트를 제공할 수 있는지 확인함.
  3. 제공할 수 있다면 서버에서 클라이언트로 인증서를 보내는 인증 메커니즘이 시작되고 이후 해싱 알고리즘 등으로 암호화된 데이터의 송수신이 시작됨.

사이퍼슈트

사이퍼슈트는 프로토콜, AEAD 사이퍼 모드, 해싱 알고리즘이 나열된 규약을 말하며, 다섯 개가 있음.

  • TLS_AES_128_GCM_SHA256
    • TLS_AES_128_GCM_SHA256에는 세 가지 규약이 들어 있는데 TLS는 프로토콜, AES_128_GCM은 AEAD 사이퍼 모드, SHA256은 해싱 알고리즘을 뜻함
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_CCM_SHA256
  • TLS_AES_128_CCM_8_SHA256

AEAD 사이퍼 모드(Authenticated Encryption with Associated Data)

데이터 암호화 알고리즘. AES_128_GCM 등이 있음.

예를 들어 AES_128_GCM이라는 것은 128비트의 키를 사용하는 표준 블록 암호화 기술과 병렬 계산에 용이한 암호화 알고리즘 GCM이 결합된 알고리즘을 뜻함.

인증 메커니즘

인증 메커니즘은 CA(Certificate Authorities)에서 발급한 인증서를 기반으로 이루어짐. CA에서 발급한 인증서는 안전한 연결을 시작하는 데 있어 필요한 '공개 키'를 클라이언트에 제공하고 사용자가 접속한 '서버가 신뢰'할 수 있는 서버임을 보장함. 인증서는 서비스 정보, 공개 키, 지문, 디지털 서명 등으로 이루어져 있음. 참고로 CA는 신뢰성이 엄격하게 공인된 기업들만 참여할 수 있으며, 대표적인 기업으로는 Comodo, GoDaddy, GlobalSign, 아마존 등이 있음.

CA 발급 과정

자신의 서비스가 CA 인증서를 발급받으려면 자신의 사이트 정보와 공개 키를 CA에 제출해야 함. 이후 CA는 공개 키를 해시한 값인 지문(fingerprint)을 사용하는 CA의 비밀 키 등을 기반으로 CA 인증서를 발급함.

    *개인 키: 비밀 키라고도 하며, 개인이 소유하고 있는 키이자 반드시 자신만이 소유해야 하는 키
    *공개 키: 공개되어 있는 키

 

암호화 알고리즘

키 교환 암호화 알고리즘으로는 대수곡선 기반의 ECDHE(Elliptic Curve Diffie-Hellman Ephemeral) 또는 모듈식 기반의 DHE(Diffie-Hellman Ephemeral)를 사용함. 둘 다 디피-헬만(Diffie-Hellman) 방식을 근간으로 만들어짐.

 

디피-헬만 키 교환 암호화 알고리즘(Diffie-Hellman key exchange)

암호 키를 교환하는 하나의 방법

y = g^x mod p

앞의 식에서 g와 x와 p를 안다면 y는 구하기 쉽지만 g와 y와 p만 안다면 x를 구하기는 어렵다는 원리에 기반한 알고리즘.

앞의 그림처럼 처음에 공개 값을 공유하고 각자의 비밀 값과 혼합한 후 혼합 값을 공유. 그 다음 각자의 비밀 값과 또 혼합. 그 이후에 공통의 암호 키인 PSK(Pre-Shared Key)가 생성됨.

악의적인 공격자가 개인 키 또는 공개 키를 가지고도 PSK가 없기 때문에 아무것도 할 수 없음. 이를 통해 키를 암호화할 수 있음.

 

해싱 알고리즘

해싱 알고리즘은 데이터를 추정하기 힘든 더 작고, 섞여 있는 조각으로 만드는 알고리즘. SSL/TLS는 해싱 알고리즘으로 SHA-256 알고리즘과 SHA-384 알고리즘을 씀.

 

SHA-256 알고리즘

SHA-256 알고리즘은 해시 함수의 결괏값이 256비트인 알고리즘이며 비트코인을 비롯한 많은 블록체인 시스템에서도 씀. SHA-256 알고리즘은 해싱을 해야 할 메시지에 1을 추가하는 등 전처리를 하고 전처리된 메시지를 기반으로 해시를 반환함.

  • 해시: 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값
  • 해싱: 임의의 데이터를 해시로 바꿔주는 일이며 해시 함수가 이를 담당
  • 해시 함수: 임의의 데이터를 입력으로 받아 일정한 길이의 데이터로 바꿔주는 함수

"나는 반드시 이번 면접에 합격하고 강원도 고성에 수영하러 간다!" → 08cc3029b838d4beed53ffe3bab5be2c2d44526218d365bfdfd15673e27838f

cf. 0-RTT: TLS 1.3은 사용자가 이전에 방문한 사이트로 다시 방문한다면 SSL/TLS에서 보안 세션을 만들 때 걸리는 통신을 하지 않아도 됨.

SEO에도 도움이 되는 HTTPS

구글(Google)은 SSL 인증서를 강조해왔고 사이트 내 모든 요소가 동일하다면 HTTPS 서비스를 하는 사이트가 그렇지 않은 사이트보다 SEO 순위가 높을 것이라고 공식적으로 밝혔음.

SEO(Search Engine Optimization) = 검색엔진 최적화. 사용자들이 구글, 네이버 같은 검색엔진으로 웹 사이트를 검색했을 때 그 결과를 페이지 상단에 노출시켜 많은 사람이 볼 수 있도록 최적화하는 방법.

 

캐노니컬 설정

<link rel="canonical" target="_blank" href="https://example.com/page2.php" />

사이트 link에 캐노니컬을 설정해야 함.

 

메타 설정
html 파일의 가장 윗부분인 메타를 잘 설정해야 함.

 

페이지 속도 개선
사이트의 속도가 빨라야 함.

 

사이트맵 관리

사이트맵(sitemap.xml)을 정기적으로 관리하는 것은 필수. 사이트맵 제너레이터를 사용하거나 직접 코드를 만들어 구축해도 됨.

HTTPS 구축 방법

  • 직접 CA에서 구매한 인증 키를 기반으로 HTTPS 서비스를 구축
  • 서버 앞단의 HTTPS를 제공하는 로드밸런서를 둠
  • 서버 앞단에 HTTPS를 제공하는 CDN을 둬서 구축

2.5.5 HTTP/3

HTTP/3은 World Wide Web에서 정보를 교환하는 데 사용되는 HTTP의 세 번째 버전.

TCP 위에서 돌아가는 HTTP/2와는 달리 HTTP/3은 QUIC이라는 계층 위에서 돌아가며, TCP 기반이 아닌 UDP 기반으로 돌아감. 또한, HTTP/2에서 장점이었던 멀티플렉싱을 가지고 있으며 초기 연결 설정 시 지연 시간 감소라는 장점이 있음.

초기 연결 설정 시 지연 시간 감소

QUIC은 TCP를 사용하지 않기 때문에 통신을 시작할 때 번거로운 3-way handshake 과정을 거치지 않아도 됨.

 

출처: 면접을 위한 CS 전공지식 노트 https://product.kyobobook.co.kr/detail/S000001834833

'CS' 카테고리의 다른 글

[CS] 데이터베이스  (0) 2026.03.30
[CS] 운영체제  (0) 2026.03.11
[CS] 디자인 패턴  (1) 2026.03.03