localhost와 포트란?
localhost는 현재 컴퓨터의 내부 주소를 가리킵니다. 외부에서는 접근할 수 없고 자신의 컴퓨터에서만 접근할 수 있습니다. 따라서 서버 개발 시 테스트용으로 많이 사용됩니다. localhost 대신 127.0.0.1 을 주소로 사용해도 같습니다. 이러한 숫자 주소를 IP 라고 부릅니다. 포트는 서버 내에서 프로세스를 구분하는 번호입니다. 서버는 HTTP 요청을 대기하는 것 외에도 다양한 작업을 합니다. 데이터베이스와도 통신해야 하고, FTP요청을 처리하기도 합니다. 따라서 서버는 프로세스에 포트를 다르게 할당 하여 들어오는 요청을 구분합니다. 유명한 포트 번호로는 21(FTP),80(HTTP),443(HTTPS),3306(MYSQL)이 있습니다. 포트 번호는 IP 주소 뒤에 콜론(:) 과 함께 붙여 사용합니다.
하지만 https://google.com 같은 사이트들은 포트 번호를 다로 표시하지 않습니다. 바로 80번 포트 를 사용하기 때문입니다. 80번 포트를 사용하면 주소에서 포트를 생략할 수 있습니다.
보통 컴퓨터들은 80포트를 이미 다른 서비스가 사용하고 있을 확률이 큽니다. 보통 포트 하나에 서비스를 하나만 사용 할 수 있으므로 다른 서비스가 사용하고 있는 포트를 사용하려고 하면 에러가 발생합니다. 따라서 예제를 실행할 때는 다른 포트 번호들을 사용하고, 실제로 배포할 때는 80번 또는 443번 포트를 사용합니다.
한 가지 더 알아둘 점이 있습니다. 리눅스와 macOS 에서는 1024 번 이하의 포트에 연결할 때 관리자 권한이 필요합니다. 따라서 명령어 앞에 sudo를 붙여주어야 합니다. 예를 들면 node server1 대신 sudo node server1을 입력해야합니다.
Note 포트충돌 다른 서비스가 사용하고 있는 포트를 사용할 경우 ERRORL listen EADDRINUSE ::: 포트 번호 같은 에러가 발생합니다. 이런 경우 그 서비스를 종료하거나, 노드의 포트를 다른 번호롤 바꾸면 됩니ㅏㄷ.