웹서버에서 기본값으로 3000, 8000, 8080 같은 포트를 사용하는 이유

1 min read

네트워크 통신을 하려면 IP주소와 포트의 쌍이 필요한데요, 포트 번호에는 예약된 번호들이 있습니다. 0부터 1023까지가 그것인데요, 모두 사용되는 건 아닙니다. 추후에 추가될 수 있기 때문에 예약해놓았다고 생각하시면 됩니다. 이 글에서 다룰 포트 번호는 몇가지 없는데요, HTTP는 80, HTTPS는 443이라는 것만 알고계시면 됩니다.

리눅스 같은 경우 예약된 포트에 소켓을 바인딩하려면 루트 권한이 필요합니다. 이러한 이유 때문에 웹서버를 개발할 떄 80이나 443을 쓰지 않습니다. 루트 권한을 요구하는 건 보안상 매우 안 좋은 일인데, 겨우 localhost 뒤에 숫자 없애자고 루트 권한을 요구하는 건 지나친 일이기 때문입니다.

그래서 그 대신 80을 두번 반복한 8080이나 0을 두 개 붙인 8000이 널리 사용되어왔습니다. 그런데 3000 같은 경우 쓰이는 이유가 다릅니다. 주로 node.js와 관련이 깊은 라이브러리들에서 쓰이는데요, 초기 node.js 예시가 3000 포트를 사용했기 때문입니다.