Insights·2026-09-09

도메인·DNS·포트란 무엇인가 — 요청이 서버를 찾아가는 법

인터넷에 연결된 컴퓨터마다 IP 주소가 있고, 컴퓨터 한 대가 여러 일을 하므로 문이 여러 개 있는데 그 문 번호가 포트다. 즉 요청은 어느 컴퓨터의 몇 번 문으로 간다. 사람이 숫자를 외울 수 없으니 이름을 붙인 것이 도메인이고, 이름과 IP를 잇는 연결표가 DNS다. 배포 후 화면이 안 뜨면 도메인이 IP를 제대로 가리키는지, 서버가 살아 있는지, 포트가 열렸는지 셋만 보면 된다.

요청은 어느 컴퓨터의 몇 번 문으로 간다 — 글의 요약 도식

IP 주소는 어느 컴퓨터인지를 정한다

인터넷에 연결된 컴퓨터에는 고유한 주소가 붙는다. 그게 IP 주소다.

생김새는 점으로 나뉜 숫자 넷이다. 192.0.2.10 같은 모양이고 각 자리에는 0부터 255까지가 들어간다. 이 범위가 정해진 이유는 한 자리가 8비트, 즉 256가지를 표현하기 때문이다.

이 주소를 알면 인터넷 위의 어느 컴퓨터인지가 정해진다. 내 노트북에도 IP가 있다. 앞 편에서 내 컴퓨터도 서버가 될 수 있다고 한 것이 이 뜻이다.

포트는 그 컴퓨터의 몇 번 문인지를 정한다

관습적으로 자리가 정해진 포트 번호 셋 — 80번은 암호화하지 않은 웹, 443번은 암호화된 웹, 3000·8000번은 개발 도구가 쓰는 번호임을 보여 준다.

그런데 컴퓨터 한 대가 하는 일은 하나가 아니다. 웹 서비스도 돌리고 데이터베이스도 돌리고 개발용 도구도 띄운다. 주소만으로는 그중 어디로 가야 할지 알 수 없다.

그래서 문이 여러 개 있다. 항구 하나에 배가 들어오는 문이 여러 개 있고 문마다 통과 절차가 다른 것과 같다. 그 문 번호가 포트다.

관습적으로 자리가 정해진 번호들이 있다. 80번은 암호화하지 않은 웹, 443번은 암호화된 웹이다. 개발 중에 3000번이나 8000번 주소를 보게 되는 것도 그 도구들이 관습적으로 쓰는 번호이기 때문이다.

정리하면 요청은 어느 컴퓨터의 몇 번 문으로 간다. 주소 하나가 아니라 둘이 필요하다.

포트쓰임언제 보게 되나
80암호화하지 않은 웹http로 시작하는 주소
443암호화된 웹https로 시작하는 주소
3000프론트엔드 개발 서버npm run dev 실행 중
8000백엔드 개발 서버FastAPI 등 실행 중
5432PostgreSQL데이터베이스 접속 설정

도메인은 숫자를 이름으로 바꾼 것이다

사람이 숫자 넷을 외울 수는 없다. 남의 집 전화번호보다 외우기 어렵고, 어디에 적어 안내할 수도 없다. 그래서 이름을 붙인다.

도메인을 사면 판매처가 전 세계의 등록 기관에 이 이름은 이 IP다를 등록해 준다. 그 연결표를 DNS라고 한다. 도메인 네임 시스템의 줄임말이고, 도메인 판매처의 설정 화면에서 이 연결을 직접 손볼 수 있다.

이름 앞에 붙는 조각을 서브도메인이라고 한다. www가 가장 흔하고 api나 blog를 붙이기도 한다. 이걸 쓰는 이유는 같은 이름 아래에서 여러 서버로 갈라 보내기 위해서다. www는 웹 서버로, api는 백엔드 서버로 보내는 식이다. 붙이지 않고 이름만 쓰는 것도 가능하다.

포트는 어떻게 되는가. 브라우저가 대신 채워 준다. http로 시작하면 80번, https로 시작하면 443번을 붙여 요청한다. 그래서 우리는 주소창에 번호를 치지 않는다.

주소 하나가 실제로 가리키는 것
사람이 치는 것        https://www.example.com/insights

브라우저가 만드는 것  프로토콜  https  → 포트 443
                     이름     www.example.com
                     DNS 조회 → 192.0.2.10
                     경로     /insights

실제 요청             192.0.2.10 의 443번 문 으로 /insights 를 요청

배포 후 화면이 안 뜰 때 볼 곳 셋

이 구조를 알면 문제가 났을 때 확인할 자리가 셋으로 좁혀진다.

첫째, 도메인이 올바른 IP를 가리키는가. DNS 설정을 바꿨다면 전 세계에 퍼지는 데 시간이 걸린다. 바꾸자마자 안 된다고 판단하기 전에 기다려야 하는 구간이 있다.

둘째, 그 IP의 서버가 살아 있는가. 도메인은 멀쩡히 IP를 가리키는데 그 컴퓨터가 꺼져 있거나 프로그램이 죽어 있을 수 있다.

셋째, 열려 있어야 할 포트가 열렸는가. 서버는 살아 있는데 방화벽이 그 문을 막고 있으면 요청이 도착하지 못한다. 클라우드 서비스를 쓰면 보안 그룹 설정에서 이 문을 열어 준다.

셋 중 어디인지 모르는 채로 검색하면 답이 안 나온다. 반대로 셋 중 하나로 좁히면 검색어가 아주 구체적으로 바뀐다.