포트
컴퓨터 분야에서 "포트"라는 용어는 세 가지 다른 의미를 가집니다. 1) 하드웨어 포트, 2) 인터넷 포트 번호, 3) 한 플랫폼에서 다른 플랫폼으로 소프트웨어 프로그램을 포팅하는 과정을 의미할 수 있습니다.
1. 하드웨어 포트
하드웨어 포트는 컴퓨터나 다른 전자 장치에 있는 물리적 연결부입니다. 최신 데스크톱 컴퓨터에서 흔히 볼 수 있는 포트로는 USB, Thunderbolt, Ethernet, DisplayPort가 있습니다. 이전 세대 컴퓨터에서는 직렬 포트, 병렬 포트, VGA 포트와 같은 다른 포트를 사용했습니다. 모바일 장치에는 포트가 하나만 있는 경우가 많습니다. 예를 들어 iPhone이나 iPad에는 Lightning 커넥터 하나만 있을 수 있습니다. Android 장치에는 USB-C 포트가 있는 경우가 많습니다.
하드웨어 포트의 목적은 장치에 연결 기능 및/또는 전력을 제공하는 것입니다. 예를 들어 컴퓨터의 USB 포트는 키보드, 마우스, 프린터 또는 기타 주변 장치를 연결하는 데 사용할 수 있습니다. 스마트폰의 USB-C 포트는 장치를 충전하고 PC와 동기화하는 데 사용할 수 있습니다.
NOTE: 하드웨어 포트는 인터페이스, 잭 또는 커넥터라고도 합니다.
2. 인터넷 포트 번호
인터넷을 통해 전송되는 모든 데이터는 특정 명령 집합을 사용해 송수신되며, 이를 프로토콜이라고도 합니다. 각 프로토콜에는 특정 포트 번호가 할당됩니다. 예를 들어 HTTP를 통해 전송되는 모든 웹 사이트 데이터는 포트 80을 사용합니다. HTTPS를 통해 전송되는 데이터는 포트 443을 사용합니다. 그 밖의 일반적인 포트는 다음과 같습니다.
- 포트 20 - FTP(파일 전송 프로토콜)
- 포트 22 - SSH 및 SFTP
- 포트 25 - SMTP(보내는 이메일)
- 포트 465 - SSL을 통한 SMTP
- 포트 143 - IMAP(받는 이메일)
- 포트 993 - SSL을 통한 IMAP
포트 번호는 서로 다른 프로토콜 간의 충돌을 방지한다는 점에서 무선 채널과 비슷합니다. 또한 특정 프로토콜을 허용하거나 차단할 수 있으므로 네트워크 보안 조치를 구현하는 간단한 방법을 제공합니다.
3. 소프트웨어 포팅
"Port"는 동사로도 사용할 수 있습니다. 소프트웨어를 포팅한다는 것은 한 플랫폼용으로 작성된 애플리케이션을 다른 플랫폼에서 작동하도록 만드는 것을 의미합니다. 예를 들어 Windows 프로그램을 macOS로 포팅할 수 있습니다. iOS 앱을 Android로 포팅할 수도 있습니다.
한 플랫폼에서 다른 플랫폼으로 프로그램을 포팅하려면 해당 하드웨어와 운영 체제에 맞게 작성해야 합니다. 범용 개발 환경을 사용해 만든 프로그램은 비교적 쉽게 포팅할 수 있지만, 운영 체제의 API에 크게 의존하는 프로그램은 완전히 다시 작성해야 할 수 있습니다.
지식 테스트하기
