
DNS(Domain Name System) 가 어떻게 사람이 읽을 수 있는 도메인 주소를 컴퓨터가 이해하는 IP(Internet Protocol) 주소로 변환해주는지 알아보았습니다. 그렇다면 IP 주소를 찾아 컴퓨터에 도착한 데이터는 컴퓨터 내부의 수많은 프로그램 중 도대체 누구를 찾아가야 할까요? 이번 글에서는 하나의 IP주소에서 웹 서버, DB, SSH 등 여러 서비스를 완벽하게 구분해 주는 핵심 개념인 Port(포트)에 대해 알아보겠습니다.
자주 만나는 주소의 비밀
프로젝트를 진행하거나 서버를 구축할 때 다음과 같은 주소를 한 번쯤 만나실 겁니다.
- http://localhost:8080
- https://example.com:8443
- 192.168.0.206:5432
여기서 콜론(:) 뒤에 붙은 8080, 8443, 5432 같은 숫자들이 바로 Port 번호입니다.
Port란
Port는 하나의 컴퓨터(IP)안에서 실행 중인 여러 프로그램(프로세스)을 구분하기 위한 식별 번호입니다.
네트워크 통신을 우편 배송에 비유하면 쉽게 이해할 수 있습니다.
- IP주소 : 건물 주소(서울특별시 강남구 테헤란로 101번지)
- Port 번호 : 건물 내부의 호수(101호, 301호, 602호 등)
택배 기사님이 건물 주소(IP)만 보고 찾아오면 건물 안의 어느 회사/어느 집으로 택배를 전달해야 할지 알 수 없습니다. 따라서 101번지 301호(IP:port)처럼 정확한 호수까지 기재되어 있어야 목적지 담당자(프로그램)에게 정확히 전달할 수 있습니다.

Port가 꼭 필요한 이유
하나의 서버(192.168.0.206)안에서는 여러 프로그램이 동시에 실행될 수 있습니다.
- 웹/WAS 서버(Tomcat, Nginx 등)
- DB 서버(PostgreSQL, MySQL 등)
- 원격 접속(SSH 등)
- CI/CD (Jenkins 등)
만약 외부에서 192.168.0.206 으로만 데이터가 들어온다면 운영체제(OS)는 "이 데이터를 웹 서버에 보내야 하나? DB에 보내야 하나? " 어디로 보내야 할지 알 수 없습니다.
- 요청 192.168.0.206:80 → 80번 포트 → HTTP 웹 서버
- 요청 192.168.0.206:22 **→ 22번 포트 → SSH 원격 접속**
- 요청 192.168.0.206:5432 **→ 5432포트 → PostgreSQL DB**
이처럼 포트 번호가 존재하기 때문에 컴퓨터 한 대로도 여러 가지 네트워크 서비스를 동시에 차질 없이 운영할 수 있습니다.
Port 번호의 범위와 종류
포트 번호는 0번부터 65535번까지 총 65,536개가 존재하며 크게 3가지 영역으로 구분됩니다.
| 구분 | 포트 범위 | 설명 |
|---|---|---|
| Well-Known Ports | 0 ~ 1023 | 국제인터넷주소기구(IANA)가 예약한 주요 표준 서비스 포트 |
| Registered Ports | 1024 ~ 49151 | 특정 기업이나 소프트웨어가 등록하여 사용하는 포트 |
| Dynamic / private Ports | 49152 ~ 65535 | 임시 통신용, 클라이언트 접속용으로 자유롭게 사용하는 포트 |
왜 65,536개 일까?
포트 번호 범위 보면서 "왜 65535라는 애매한 숫자로 끝날까?" 하는 궁금증이 생겼습니다.
결론부터 말씀드리면 네트워크 표준(TCP/UDP)을 만들 때 포트 번호를 저장한느 공간을 '16비트(16-bit)로 정의했기 때문입니다.
- 16비트로 표현할 수 있는 경우의 수
2¹⁶ = 65,536
즉, 메모리에 16개의 비트 공간을 마련해 두었기 때문에 생성할 수 있는 서로 다른 포트 번호의 총개수가 65,536개가 됩니다. - 왜 마지막 번호는 65,536이 아니라 65,535일까?
컴퓨터는 숫자를 세기 시작할 때 1이 아닌 0부터 셉니다.
쉽게 이해하기 위해 숫자 10개를 0부터 세어볼까요?
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
총개수는 10개지만, 마지막 숫자는 9가 됩니다.
포트 번호도 똑같습니다. - 0부터 시작해서 총 65,536개를 세기 때문에 포트 번호의 실제 범위는 0 ~ 65535가 되는 것입니다.
당시 네트워크 표준 설계자들이 "네트워크 패킷 용량을 너무 차지하지 않으면서도, 한 컴퓨터에서 충분히 많은 프로그램을 구동할 수 있는 적절한 크기"로 16비트를 채택했고, 그것이 지금까지 이어지고 있는 것입니다.
꼭 기억해야 할 Well-Known Port
| Port | 서비스 | 설명 |
| 20 / 21 | FTP | 파일 전송 프로토콜 |
| 22 | SSH | 안전한 Shell 원격 접속 |
| 23 | Telnet | 암호화되지 않은 원격 접속 |
| 25 | SMTP | 이메일 발송 |
| 53 | DNS | 도메인-IP 변환 시스템 |
| 80 | HTTP | 암호화되지 않은 웹 서비스 |
| 443 | HTTPS | SSL/TLS 암호화가 적용된 웹 서비스 |
개발자가 자주 만나는 Port
| Port | 서비스 | Port | 서비스 |
| 3306 | MySQL | 8080 | Tomcat / Alt Web |
| 5432 | PostgreSQL | 8081 | Spring Boot |
| 6379 | Redis | 9092 | Apache Kafka |
| 27017 | MongoDB | 9090 | Prometheus |
| 9200 | Elasticsearch | 9000 | SonarQube / PHP-FPM |
마치며
하나의 서버안에 여러 서비스를 구분해 주는 Port(포트)의 개념과 왜 65,536개(16비트)의 범위가 정해졌는지 그리고 Well-Known Port까지 알아보았습니다.
도움이 되시길바랍니다!
감사합니다 :)

'DevOps > Network' 카테고리의 다른 글
| HTTP/HTTS (0) | 2026.07.06 |
|---|---|
| Well-Known Port (0) | 2026.07.02 |
| 포트포워딩 없이 Cloudflare Tunnel로 내부 Tomcat 서버 외부로 공개 (0) | 2026.06.29 |
| 가비아 도메인 구매부터 Cloudflare 네임서버 이관 (1) | 2026.06.29 |
| Name Server(네임서버) (0) | 2026.06.26 |