개발자의 길을 걷기로 결심했다면, 개발자로서 기본적으로 알고 있어야 하는 부분들이 있습니다.
기술 면접에서도 물어볼 내용일 수도 있고, 누군가가 물어봤을 때 개발자이기에 당당하게 말해 줄 수 있는
부분을 짚고 넘어가려고 합니다.
이 글을 쓰는 저 또한 이러한 내용을 봤더라도 잊어버리거나 잘 몰랐던 내용도 있으며,
개발자라고 해서 처음부터 모든 것을 다 알 수 없기에 빈 공간을 하나씩 채워나가려고 합니다.
호스트 (Host)
통신 영역에서 호스트는 네트워크에 연결된 모든 디바이스(기기)를 호스트라고 부릅니다.
예를 들어, 컴퓨터, 무선공유기, 인터넷 모뎀, TV, 스마트폰, 태블릿, Wifi와 연결된 가전제품 등을
예로 들 수 있습니다.
IP (Internet Protocol)
프로토콜은 규칙이나 절차 등을 체계적으로 정리한 약속을 문서화한 것을 말합니다.
극단적인 예를 들어, 교통카드로 이용할 때 이용하는 수단과 이용자에 따른 금액, 대중교통 간의
환승 가능 여부, 내릴 때 찍지 않으면 요금이 부과된다는 것을 버스나 지하철을 이용할 때 볼 수 있는데,
이런 것들을 프로토콜(Protocol) 또는 규약/약속이라고 말합니다. 그리고 IP는 컴퓨터끼리 통신할 때
사용하는 약속인 통신 프로토콜을 말합니다.
인터넷에서 대표적으로 사용중인 통신 프로토콜은 다음과 같습니다.
- 통신 규격 : IP, TCP, UDP
- 웹 컨텐츠 송수신 : HTTP
- 메일 전송 : SMTP
- 파일 전송 : FTP
IP 주소 (IP Address)
네트워크에 연결된 호스트들끼리 통신할 때 통신하고 싶은 상대를 지정할 때와 통신해 온 상대를 확인할 때
IP 주소를 활용합니다. 현재 사용 중인 IP는 2종류가 있습니다.
- IPv4
- ex) 192.0.0.1
- IPv6
- ex) 2000:db7::3
어드레싱 (Addressing) & 네이밍 (Naming)
통신할 대상인 송신자나 수신자를 지정하는 것을 어드레싱이라고 하며, 통신할 상대에 해당 내용에 대하여
이름과 주소를 맵핑하는 것을 네이밍이라고 합니다. 예를 들어, 식당에서 주문할 때 테이블 번호가 지정되어 있는데,
여기서 식당은 송신자를 각각의 테이블로 그리고 수신자를 주방과 카운터로 지정하는 것을
어드레싱(Addressing)이라고 볼 수 있고, 테이블에서 주문이 들어오면 어디로 가야 할지 알 수 없기에 테이블에
번호를 지정하는 것을 네이밍(Naming)으로 볼 수 있습니다.
이 부분이 생긴 이유는 통신할 때 IP 주소를 이용하여 통신하는데 숫자로만 이루어져 있기에 입력하다 실수할 수 있고
외우기도 쉽지 않습니다. 그리고 연결될 IP주소가 변경이라도 되면 전혀 다른 주소로 연결이 되는 불상사가
일어나기도 합니다. 그렇기에 연결할 때마다 상대방의 IP 주소를 확인해야 하는데, 이러한 불편함을
해소하기 위해 외우기 쉽고 사용하기 쉬운 이름(Name)으로 상대를 지정하는 방법이 고안되어,
이름으로 지정된 상대가 사용하고 있는 IP 주소를 이름과 맵핑된 것을 연결할 때마다 확인하게 되었습니다.
댓글