네트워크
- 인바운드(Inbound)와 아웃바운드(Outbound) 트래픽
- 포트(Port)
- 도메인과 DNS
- CDN (Content Delivery Network)
- 루프백 주소
- 이메일 프로토콜 (SMTP, POP3, IMAP)
인바운드(Inbound)와 아웃바운드(Outbound) 트래픽
네트워크 트래픽은 데이터의 흐름 방향에 따라 인바운드와 아웃바운드로 나뉜다.
-
인바운드 트래픽 (Inbound Traffic)
- 외부 네트워크에서 내부 네트워크(또는 내 컴퓨터)로 들어오는 데이터 흐름.
- 방화벽 정책에서 주로 외부의 접근을 막기 위해 엄격하게 관리된다.
-
아웃바운드 트래픽 (Outbound Traffic)
- 내부 네트워크(또는 내 컴퓨터)에서 외부 네트워크로 나가는 데이터 흐름.
- 방화벽 정책에서 비교적 덜 제한적이다.
포트(Port)
- 포트는 운영체제 통신의 종단점(Endpoint)으로, 0~65535번까지 존재한다.
- 하나의 IP 주소 내에서 실행되는 여러 프로세스(애플리케이션)를 구분하기 위해 사용된다.
- 1 Server Process = 1 Port Listening: 서버 프로세스는 특정 포트를 점유하고 클라이언트의 연결을 기다린다(Listening).
- 1 Client Process ≠ Port Listening: 클라이언트는 서버에 연결할 때 운영체제로부터 임시 포트(Ephemeral Port)를 할당받아 통신하며, 별도로 리스닝하지 않는다.
- 모든 프로세스가 포트를 가지는 것은 아니다. 네트워크 통신을 수행하지 않는 프로세스(로컬 계산 작업, 파일 처리 등)는 포트를 할당받지 않는다.
- TCP/UDP 통신을 하는 프로세스만 포트를 사용한다.
- 웹 서버(80/443), DB(3306) 등은 잘 알려진 포트(Well-known port)를 주로 사용한다.
임시 포트 (Ephemeral Port):
클라이언트 프로그램(웹 브라우저 등)이 서버와 통신할 때 사용하는 동적 포트이다.
-
특징:
- 클라이언트는 서버처럼 고정된 포트(Well-known port)를 리스닝하지 않는다.
- 대신 운영체제로부터 임시 포트(보통 49152~65535 범위)를 할당받아 서버에 요청을 보낸다.
- 통신이 끝나면 해당 포트는 반환되어 재사용된다.
-
동작 과정:
- 요청 (Outbound): 브라우저가 임시 포트(예: 50000)를 열고 서버의 80번 포트로 요청을 보낸다.
- 응답 (Inbound): 서버는 요청을 보낸 클라이언트의 임시 포트(50000)로 응답 데이터를 보낸다.
도메인과 DNS
도메인 구매 -> 네임서버에 정보 저장 -> 사용자가 도메인 입력 -> DNS 서버(네임서버)에서 조회 -> IP 주소 반환 -> 해당 IP로 접속
- 일반적으로 도메인 하나를 구매하면 서브도메인은 제한 없이 생성이 가능하다.
- 즉,
example.com도메인을 구매하면sub1.example.com,sub2.example.com등을 생성할 수 있다.
- 즉,
- 서브도메인의 생성은 DNS 설정(레코드 추가)을 통해 이루어진다.
- 대부분의 도메인 등록 업체와 DNS 관리 시스템에서는 서브도메인 생성에 제한을 두지 않으며, 추가 비용 없이 무제한으로 구성할 수 있다.
- 단, 생성된 서브도메인을 실제로 운영하려면 이를 처리할 서버 리소스가 필요하다.
주요 레코드 타입:
- A 레코드: 도메인 이름을 IPv4 주소로 매핑.
- AAAA 레코드: 도메인 이름을 IPv6 주소로 매핑.
- CNAME 레코드: 도메인 이름을 다른 도메인 이름(별칭)으로 매핑. (IP 주소 직접 매핑 불가)
- CNAME 레코드를 고정 IP 주소에 직접 매핑하는 것은 DNS 규칙 위반이며 불가능하다. CNAME의 값은 반드시 도메인 이름이어야 한다.
- NS 레코드: 도메인의 네임서버를 매핑.
구성 예시:
| 도메인 이름 | DNS 레코드 타입 | 연결 대상 | TTL |
|---|---|---|---|
example.com | A | 123.45.67.89 | 300 |
api.example.com | CNAME | api-backend.com | 300 |
blog.example.com | A | 234.56.78.90 | 300 |
example.com | NS | ns1.example.com, ns2.example.com | 172800 |
TTL(Time To Live): 레코드의 유효 기간을 초 단위로 지정하며, 이 기간 동안 DNS 서버가 해당 정보를 캐시할 수 있다. TTL이 짧으면 변경 사항이 빠르게 반영되지만, DNS 조회가 자주 발생하여 부하가 증가할 수 있다. 반대로 TTL이 길면 캐시 효율이 높아지지만, 변경 사항 반영이 지연될 수 있다.
프록시 서버를 이용한 서브도메인 관리

- 많은 서브도메인을 하나의 IP에 연결해서 리버스 프록시 서버(Nginx, Apache 등)를 사용하여 각 각 다른 포트나 내부 서버로 요청을 분배할 수 있다.
- 하나의 공인 IP로 여러 서비스를 운영할 수 있어 비용 절감.
- SSL 인증서 관리 및 보안 설정(방화벽 등)을 프록시 서버에서 통합 관리 가능.
설정 방법:
- DNS 설정: 여러 서브도메인(
sub1.example.com,sub2.example.com)을 모두 동일한 공용 IP 주소(A 레코드)로 연결합니다. - 리버스 프록시 설정: 해당 IP의 80/443 포트를 리스닝하는 웹 서버(Nginx 등)가 요청의
Host헤더를 보고 내부의 다른 포트나 서버로 요청을 전달(Proxy Pass)합니다.
# sub1.example.com → 8081로 전달
server {
listen 80;
server_name sub1.example.com;
location / {
proxy_pass http://localhost:8081;
}
}
# sub2.example.com → 8082로 전달
server {
listen 80;
server_name sub2.example.com;
location / {
proxy_pass http://localhost:8082;
}
}
CDN (Content Delivery Network)
CDN은 지리적인 제약 없이 전 세계 사용자에게 빠르게 정적 콘텐츠(이미지, 동영상, HTML, JS 등)를 전송하는 기술이다.
콘텐츠를 전송할 때 물리적인 거리가 멀수록 지연 시간(Latency)이 길어진다. 이를 해결하기 위해 전 세계 곳곳에 엣지 서버(Edge Server, 캐싱 서버)를 두고 콘텐츠를 미리 저장(캐싱)해 둔다. 사용자가 요청을 보내면 물리적으로 가장 가까운 엣지 서버가 응답한다.

- 사용자(클라이언트)가 웹사이트에 접속하여 콘텐츠(예: 이미지)를 요청한다.
- DNS는 사용자와 가장 가까운 CDN 엣지 서버의 IP를 반환한다.
- 엣지 서버에 해당 콘텐츠가 캐싱되어 있다면 즉시 응답한다 (Cache Hit).
- 캐싱되어 있지 않다면, 엣지 서버가 원본 서버(Origin Server)에 요청하여 데이터를 받아온 뒤, 이를 캐싱하고 사용자에게 전달한다 (Cache Miss).
다국적 서비스를 운영할 때, 한국에만 원본 서버를 두고 Cloudflare, AWS CloudFront 같은 CDN을 사용하면 전 세계 어디서든 빠른 속도로 서비스를 제공할 수 있다.
루프백 주소
127.0.0.1과 ::1은 컴퓨터 네트워크에서 자기 자신(Localhost)을 가리키는 루프백 주소이다.
127.0.0.1 (IPv4):
- 정의: IPv4 프로토콜의 루프백 주소.
- 특징:
127.0.0.0/8대역 전체가 루프백으로 예약되어 있으나, 관례적으로127.0.0.1을 사용한다.- 데이터가 네트워크 카드를 거치지 않고 OS 내부 네트워크 스택에서만 맴돈다.
::1 (IPv6):
-
정의: IPv6 프로토콜의 루프백 주소.
-
특징:
- 128비트 주소 체계이며,
0:0:0:0:0:0:0:1의 축약형이다. - IPv6 환경에서 로컬 호스트를 가리킬 때 사용된다.
- 128비트 주소 체계이며,
-
차이점: 사용하는 IP 프로토콜 버전이 다르다(IPv4 vs IPv6). 최근 OS들은
localhost도메인을 조회할 때 IPv6(::1)를 우선적으로 반환하기도 한다. -
공통점: 외부 네트워크로 나가지 않고 로컬 장치 내에서 통신하며, 개발 및 테스트 목적으로 주로 사용된다.
이메일 프로토콜 (SMTP, POP3, IMAP)
- SMTP (Simple Mail Transfer Protocol): 이메일을 보낼 때 사용하는 프로토콜. 클라이언트가 서버로 메일을 보내거나, 서버 간에 메일을 전송할 때 사용됨.
- POP3 (Post Office Protocol version 3): 이메일을 받을 때 사용하는 프로토콜. 서버에 있는 메일을 클라이언트(PC 등)로 다운로드하고, 기본적으로 서버에서 메일을 삭제함(설정에 따라 남길 수도 있음). 오프라인 확인에 유리.
- IMAP (Internet Message Access Protocol): 이메일을 받을 때 사용하는 프로토콜. 서버와 클라이언트 간의 메일함을 동기화함. 여러 기기에서 동일한 메일 상태를 확인할 수 있음.