Skip to main content

Command Palette

Search for a command to run...

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

Published
1 min readView as Markdown
D
I created SWC, an open-source compiler project, and previously worked at Deno and Vercel. These days, I spend a lot of time building Labor0, along with Watchtower and The AI Platform at Zephyr Cloud IO.

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

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

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

More from this blog