IP와 Port의 개념
네트워크에서 IP 주소와 Port는 데이터를 주고받기 위해 꼭 필요한 두 가지 개념이다.
쉽게 말해, IP는 건물 주소, Port는 그 건물 안의 특정 호실 번호라고 볼 수 있다.
IP (Internet Protocol)
IP란 네트워크 상에서 장치(컴퓨터, 서버)를 식별하기 위한 주소이다.
IPv4 vs IPv6
IPv4
- 32비트 주소 체계 → 약 43억 개 주소
- 예:
192.168.0.1
- 주소 부족 문제 때문에 사설망, NAT 등으로 연명 중
IPv6
- 128비트 주소 체계 → 사실상 무한대
- 예:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 차세대 인터넷 표준으로 점차 확산 중
Public IP vs Private IP
Public IP
- 인터넷 상에서 고유하게 사용되는 IP
- ISP(통신사) 또는 클라우드 서비스에서 부여
- 외부에서 직접 접근 가능
Private IP
- 내부 네트워크(집, 회사, VPC)에서만 쓰임
- 인터넷 직접 접근 불가 (NAT, 게이트웨이 필요)
- 예:
192.168.x.x
,10.x.x.x
,172.16.x.x ~ 172.31.x.x
Static vs Dynamic IP
Static IP (고정 IP)
- 항상 같은 주소 유지
- 서버 운영, DNS 설정 등에 적합
Dynamic IP (유동 IP)
- 네트워크 연결 시마다 새로운 주소 할당
- 가정용 인터넷, 모바일 네트워크에서 주로 사용
Port
하나의 IP 주소 안에서 실행되는 여러 서비스(프로세스)를 구분하기 위한 번호이다.
- 203.0.113.10
:80
→ 웹 서버(HTTP) - 203.0.113.10
:443
→ 웹 서버(HTTPS) - 203.0.113.10
:3306
→ 데이터베이스(MySQL)
주요 포트
포트 번호 | 서비스 | 설명 |
---|---|---|
22 | SSH | 원격 접속 |
80 | HTTP | 웹 서비스 (암호화 X) |
443 | HTTPS | 웹 서비스 (암호화 O) |
3306 | MySQL | 데이터베이스 |
6379 | Redis | 캐시/데이터 저장 |
포트 번호 범위
Well-known (0~1023)
- 표준 서비스 (HTTP 80, HTTPS 443, SSH 22 등)
80
→ HTTP로 통신을 할 때 사용443
→ HTTPS로 통신을 할 때 사용22
→ SSH: 원격 접속을 위한 포트 번호- EC2 인스턴스에 연결할 때 22번 포트를 사용한다.
25
→ SMTP (메일 전송)
Registered (1024~49151)
- 특정 애플리케이션에 등록된 포트
Dynamic/Ephemeral (49152~65535)
- 임시로 자동 할당되는 포트
💡 덕분에 브라우저나 프로그램은 별도의 설정 없이도 어떤 포트로 접근할지 알 수 있다.
⚠️ 위에서 정해놓은 규약을 꼭 지키지 않아도 된다.
즉, 규약으로 정해져 있는 포트 번호와 다르게 사용해도 된다는 뜻이다.
예를 들어, 특정 서버와 HTTP 통신을 할 때 80번 포트를 쓰지 않고 3000번 포트나 8080번 포트를 써도 상관 없다.
IP와 Port의 관계
IP:Port 형태
- 예:
192.168.0.10:8080
- 같은 IP에서도 포트로 서비스 구분
한 서버 = 여러 서비스
- 웹 서버(:80), API 서버(:8080), DB(:3306) 동시 실행 가능
클라우드 환경에서의 활용
- EC2 → 보안 그룹에서 포트 열어줘야 접근 가능
- Lambda → API Gateway 통해 포트 대신 엔드포인트 URL 제공
- 컨테이너(ECS/EKS) → Pod/Task마다 포트 매핑으로 서비스 노출
브라우저 창에 포트 번호를 입력하지 않는 이유
브라우저에 단순히 https://www.example.com
만 입력해도 잘 접속되는 이유는,
브라우저가 자동으로 기본 포트(Well-Known Port)
를 붙여주기 때문이다.
- HTTP → 기본 포트
80
- HTTPS → 기본 포트
443
즉, 사용자가 https://www.example.com
을 입력하면 실제 요청은 https://www.example.com:443
으로 전송된다.
💡 그래서 일반 사용자는 포트를 직접 입력하지 않아도 된다.
다만 개발 환경에서는 기본 포트 대신 3000
, 5173
같은 포트를 쓰기 때문에 주소창에 명시적으로 입력해야 한다.
정리
💡
- IP = 집 주소, Port = 호실 번호
- IP는 어디로 보낼지, Port는 어떤 프로그램과 통신할지 지정
- 클라우드 환경에서는 보안 그룹, 로드밸런서, 게이트웨이와 연결되어 더욱 중요