용어 사전
노트에 나온 용어를 모았어요. 본문에서 점선 밑줄이 있는 말을 누르면 그 자리에서 볼 수 있어요. 노트가 올라오는 대로 늘어납니다.
A
Alt-SvcAlternative Services
서버가 "같은 서비스를 다른 프로토콜이나 주소로도 제공한다"고 알리는 HTTP 응답 헤더(RFC 7838).
예를 들어 Alt-Svc: h3=":443"을 받은 브라우저는 다음 요청부터 같은 서버에 HTTP/3로 연결을 시도한다. 그래서 첫 접속은 TCP(HTTP/1.1이나 HTTP/2)로 시작하는 경우가 많다.
관련 용어HTTP/3HTTPS DNS 레코드
나온 노트1.1URL을 입력하면 생기는 일
C
D
G
GET
서버에서 자원을 조회할 때 쓰는 HTTP 메서드.
서버 상태를 바꾸지 않아야 하고(안전), 여러 번 보내도 결과가 같아야 한다(멱등). 그래서 캐시하거나 다시 시도해도 된다. 데이터를 만들 때는 POST, 바꿀 때는 PUT·PATCH, 지울 때는 DELETE를 쓴다.
관련 용어HTTP
나온 노트1.1URL을 입력하면 생기는 일
H
Host 헤더
요청이 어느 도메인으로 가는 것인지 서버에 알리는 HTTP 요청 헤더.
한 IP 주소에서 여러 사이트를 운영할 수 있는 것(가상 호스팅)이 이 헤더 덕분이다. HTTP/1.1에서는 반드시 넣어야 한다. HTTP/2·3에서는 :authority라는 필드가 같은 역할을 한다.
나온 노트1.1URL을 입력하면 생기는 일
HTTPHyperText Transfer Protocol
클라이언트가 요청을 보내고 서버가 응답하는, 웹의 기본 통신 규칙.
요청은 메서드(GET, POST…), 경로, 헤더, 본문으로, 응답은 상태 코드(200, 404…), 헤더, 본문으로 이뤄진다. 요청끼리 서로를 기억하지 않는(stateless) 규칙이라, 로그인 같은 상태는 쿠키나 토큰으로 이어 간다.
관련 용어HTTPSHTTP/3GET쿠키Host 헤더keep-alive
나온 노트1.1URL을 입력하면 생기는 일
HTTP/3HTTP 버전 3
TCP 대신 QUIC 위에서 동작하는 HTTP의 세 번째 주요 버전(RFC 9114, 2022년).
연결과 암호화 준비를 1 RTT에 끝내고, 전에 접속한 서버라면 0-RTT로 바로 데이터를 보낼 수도 있다. HTTP/2는 한 TCP 연결에 여러 요청을 싣기 때문에 패킷 하나가 빠지면 뒤의 모든 요청이 기다리는데(head-of-line blocking), QUIC은 요청(스트림)마다 따로 처리해서 그 영향을 줄인다. 사용자의 IP가 바뀌어도(와이파이 → LTE) 연결을 이어 갈 수 있다.
관련 용어QUICHTTPAlt-SvcHTTPS DNS 레코드
나온 노트1.1URL을 입력하면 생기는 일
HTTPSHyperText Transfer Protocol Secure (HTTP over TLS)
HTTP 요청과 응답을 TLS로 암호화해서 주고받는 방식.
나온 노트1.1URL을 입력하면 생기는 일
I
K
keep-aliveHTTP 지속 연결(persistent connection)
응답이 끝나도 TCP 연결을 닫지 않고 다음 요청에 다시 쓰는 것.
새 연결마다 드는 TCP·TLS 준비 왕복을 아낀다. HTTP/1.1부터 기본 동작이고, Connection: keep-alive 헤더는 HTTP/1.0 시절에 이를 켜던 방법이다. 오래 쓰지 않으면 서버가 정한 시간 뒤 닫는다. 이름이 비슷한 TCP keepalive는 연결이 살아 있는지 확인하는 신호를 보내는 다른 기능이다.
나온 노트1.1URL을 입력하면 생기는 일
L
L4 / L7OSI 4계층(전송 계층) / 7계층(애플리케이션 계층)
로드밸런서가 무엇을 보고 요청을 나누는지에 따른 구분. L4는 IP·포트, L7은 HTTP 내용(경로, 헤더, 쿠키)을 본다.
L4는 패킷 내용을 열어 보지 않아 빠르고 단순하다. L7은 /api는 A 서버, /images는 B 서버처럼 내용에 따라 보낼 수 있지만, 그러려면 TLS를 풀어서(TLS 종료) 내용을 읽어야 한다. AWS에서는 NLB가 L4, ALB가 L7이다. NLB도 TLS를 풀 수는 있지만 HTTP 내용을 보고 나누지는 않는다.
나온 노트1.1URL을 입력하면 생기는 일
Q
R
RTTRound-Trip Time, 왕복 시간
보낸 신호가 상대에게 갔다가 응답이 돌아오기까지 걸리는 시간.
연결 준비 비용을 "몇 RTT"로 센다. TCP 연결에 1 RTT, TLS 1.3 핸드셰이크에 1 RTT가 더 들어서, 새 연결은 첫 요청 전에 2 RTT를 쓴다. 서버가 멀수록 RTT가 길어지므로, 연결을 재사용하거나 가까운 곳(CDN)에서 응답하면 빨라진다.
관련 용어3-way handshakeTLSkeep-alive
나온 노트1.1URL을 입력하면 생기는 일
S
SNIServer Name Indication
TLS 핸드셰이크의 첫 메시지에 접속하려는 도메인 이름을 적어 보내는 확장.
한 IP에서 여러 도메인을 운영할 때, 서버는 SNI를 보고 어느 인증서를 보낼지 고른다. 이 이름은 암호화 전에 보내져서 네트워크에서 보인다. 그래서 HTTPS여도 어느 사이트에 접속했는지는 드러날 수 있다. 이를 가리는 ECH(Encrypted Client Hello)가 나와 있지만 아직 모든 곳에서 쓰이지는 않는다.
나온 노트1.1URL을 입력하면 생기는 일
SYN / ACKSYN = synchronize, ACK = acknowledgment
TCP 패킷의 플래그. SYN은 "연결하자, 내 시작 번호는 이것", ACK은 "여기까지 받았다"는 표시.
SYN-ACK은 두 플래그를 함께 켠 패킷이다. 연결을 끊을 때는 FIN 플래그를 쓴다. ACK은 연결을 만들 때뿐 아니라 데이터를 주고받는 내내 쓴다.
관련 용어3-way handshakeTCP
나온 노트1.1URL을 입력하면 생기는 일
T
TCPTransmission Control Protocol
데이터가 빠짐없이, 보낸 순서대로 도착하도록 보장하는 연결형 전송 프로토콜.
데이터를 보내기 전에 3-way handshake로 연결을 만들고, 잃어버린 패킷은 다시 보내고, 받는 쪽과 네트워크 상태에 맞춰 보내는 속도를 조절한다(흐름 제어, 혼잡 제어). HTTP/1.1과 HTTP/2가 TCP 위에서 동작한다.
나온 노트1.1URL을 입력하면 생기는 일
TLDTop-Level Domain, 최상위 도메인
도메인 이름의 맨 끝 부분(.com, .kr, .dev).
나온 노트1.1URL을 입력하면 생기는 일
TLSTransport Layer Security
통신 내용을 암호화하고, 접속한 서버가 맞는 서버인지 인증서로 확인하는 보안 프로토콜.
SSL의 뒤를 이은 표준이라 지금도 SSL이라고 부르는 경우가 많다. 핸드셰이크에서 서버 인증서를 검증하고 암호화 키를 합의한다. TLS 1.3은 이 과정을 1 RTT로 줄였다(1.2는 2 RTT). HTTPS는 HTTP를 TLS 위에서 보내는 것이다.
관련 용어HTTPS인증서 체인SNITLS 종료핸드셰이크
나온 노트1.1URL을 입력하면 생기는 일
TLS 종료
암호화된 TLS 연결을 서버 대신 로드밸런서나 CDN에서 풀어 주는 것.
인증서 관리와 암호화 연산을 한곳에 모으고, L7 로드밸런서가 HTTP 내용을 보고 나눌 수 있게 된다. 그 뒤 내부 구간(로드밸런서 → 서버)을 평문으로 둘지, 다시 암호화할지는 보안 요구에 따라 정한다.
나온 노트1.1URL을 입력하면 생기는 일
U
ㄱ
ㄹ
로드밸런서load balancer, 부하 분산기
들어오는 요청을 여러 서버에 나눠 보내는 장치나 소프트웨어.
한 서버에 몰리지 않게 나누고, 헬스체크로 응답하지 않는 서버를 빼서 장애가 사용자에게 덜 닿게 한다. 클라이언트의 TCP·TLS 연결 상대가 서버가 아니라 로드밸런서인 경우가 많다. AWS의 ALB·NLB, Nginx, HAProxy가 대표적이다.
나온 노트1.1URL을 입력하면 생기는 일
ㅅ
스레드thread
프로세스 안에서 코드를 실제로 실행하는 흐름의 단위.
한 프로세스의 스레드들은 메모리(힙)를 함께 쓴다. 웹 서버는 요청마다 스레드 하나를 배정해 처리하는 방식이 많다(Spring MVC의 Tomcat 기본 방식). 함께 쓰는 메모리 때문에 동시에 같은 값을 고치면 문제가 생긴다.
관련 용어커넥션 풀
나온 노트1.1URL을 입력하면 생기는 일
ㅇ
인증서 체인certificate chain
서버 인증서 → 중간 인증기관(CA) 인증서 → 루트 CA로 이어지는 서명의 사슬.
브라우저와 OS에는 믿을 수 있는 루트 CA 목록이 미리 들어 있다. 서버 인증서의 서명을 따라 올라가 그 목록의 루트에 닿으면 믿는다. 서버가 중간 인증서를 빠뜨리고 보내면 일부 클라이언트에서만 인증서 오류가 나는 일이 생긴다.
관련 용어TLS
나온 노트1.1URL을 입력하면 생기는 일
ㅋ
캐시cache
다시 쓸 데이터를 더 가깝고 빠른 곳에 복사해 두고, 원본을 다시 찾지 않고 꺼내 쓰는 것.
DNS 응답, 웹 페이지, DB 조회 결과처럼 같은 것을 여러 번 쓰는 곳이면 어디든 쓴다. 빨라지는 대신 원본이 바뀌었을 때 옛 값을 보여 줄 수 있다. 그래서 캐시에는 언제까지 믿을지(TTL 같은 만료 시간)가 함께 붙는다.
나온 노트1.1URL을 입력하면 생기는 일
커넥션 풀connection pool
연결(DB, 다른 서버)을 미리 만들어 두고, 요청마다 빌려 쓰고 돌려주는 연결 묶음.
연결을 만드는 비용(TCP·TLS 준비, DB 인증)을 요청마다 내지 않으려고 쓴다. Spring Boot(2.0 이상)의 기본 DB 커넥션 풀은 HikariCP다. 풀이 작으면 요청이 연결을 기다리고, 너무 크면 DB가 동시에 감당할 연결이 늘어 오히려 느려진다.
관련 용어keep-alive스레드
나온 노트1.1URL을 입력하면 생기는 일
쿠키cookie
서버가 보내 브라우저가 저장해 두었다가, 조건(도메인, 경로, 속성)이 맞는 요청마다 자동으로 붙여 보내는 작은 데이터.
서버가 응답의 Set-Cookie 헤더로 주고, 브라우저는 요청의 Cookie 헤더로 돌려준다. HTTP가 요청끼리 기억하지 않기 때문에 로그인 세션 유지에 많이 쓴다. HttpOnly(스크립트에서 못 읽게), Secure(HTTPS에서만), SameSite(다른 사이트 요청에 붙일지) 속성으로 보안을 조절한다.
관련 용어HTTP
나온 노트1.1URL을 입력하면 생기는 일
크리티컬 렌더링 패스critical rendering path
브라우저가 HTML·CSS·JS를 받아 첫 화면을 그리기까지 거치는 단계.
HTML로 DOM을, CSS로 CSSOM을 만들고, 둘을 합친 렌더 트리로 위치를 계산(레이아웃)한 뒤 화면에 칠한다(페인트). CSS와 동기 JS는 이 과정을 멈추게 해서, 첫 화면 속도를 볼 때 이 파일들의 크기와 순서를 먼저 본다.
관련 용어HTTP
나온 노트1.1URL을 입력하면 생기는 일
ㅎ
핸드셰이크handshake
본 데이터를 보내기 전에 양쪽이 연결 조건(시작 번호, 암호화 방식, 키)을 맞추려고 주고받는 과정.
TCP의 3-way handshake는 연결을, TLS 핸드셰이크는 암호화를 준비한다. 둘 다 왕복이 필요해서, 연결이 새로 생길 때마다 지연이 생긴다.
나온 노트1.1URL을 입력하면 생기는 일
헬스체크health check
로드밸런서가 서버에 주기적으로 확인 요청을 보내, 응답이 없거나 실패하는 서버를 분배 대상에서 빼는 것.
보통 /health 같은 주소에 요청을 보내 정해진 횟수만큼 연달아 실패하면 뺀다. 다시 정상 응답하면 되돌린다. 확인하는 범위(서버 프로세스만인지, DB 연결까지인지)를 어떻게 잡을지가 운영에서 자주 나오는 고민이다.
관련 용어로드밸런서
나온 노트1.1URL을 입력하면 생기는 일
0–9
찾는 용어가 아직 없어요. 노트에서 다루면 여기에 추가됩니다.