*철저히 내가 개인적으로 이해한 내용을 바탕으로 작성한 글이니 100%정확하지 않을 수도 있으니 정확한 정보를 원하시는 분은 그냥 시간 떼운다 생각하고 보세여*
내가 예전에 컴퓨터활용능력 공부를 할 때, 줄줄 외우기만 했고 전혀 이해를 못했던 파트가 있었다.
그게 바로 네트워크 파트였는데… 거기서 자주보던 삼총사 URL, IP, PORT.. 다시 보니 반갑다…
이번 기회에 이 셋이 대체 뭔지 설명해보고 이해해보려 한다.
1. URL이란?
Uniform Resource Locator.
말그대로 직역하면 '정보 자원의 위치를 표현하는 규약'이다. URL은 어떤 웹 페이지의 구체적인 위치 정보 전체를 포함하고 있다.
친구들이 웃긴 짤이나 영상 링크를 보낼 때가 있는데, 그게 다 URL이라고 할 수 있는것임.
근데 여기에 또 '도메인'이라는 것이 있는데, 도메인은 URL의 하위 개념이라 할 수 있다.
URL은 도메인을 포함한 위치 경로인 것이다.
예를 들어, naver.com 은 '네이버'의 도메인이고 친구가 보내준 네이버 검색해서 나온 짤방 URL은 도메인(naver.com)을 포함한 그 짤방의 위치 경로라고 할 수 있다.
도메인에 대해서 또 얘기를 하자면, 도메인은 IP 주소를 대신한다. 비유를 하자면…
신라스테이 역삼점에 1박2일 호캉스를 위해 숙박 예약을 했다고 치자.
하지만 나는 역삼쪽에 가본일이 없어서 초행길이다. (진짜 가본적 없다)
이럴때 정확한 주소를 검색하거나 물어봐서 찾아가는 방법이 있다.
'서울특별시 강남구 언주로 517 영동전화국' 근데 이렇게나 긴 주소를 외우는건 너무 힘들다..
진짜 저렇게 주소를 길게 검색해서 가는 사람이 몇이나 있을까?
쉬운 방법은 그냥 지도앱에 '신라스테이 역삼점'을 검색하는 것이다.
아니면 택시 기사님한테 '신라스테이 역삼점이요~' 하고 말하면 알아서 데려다주신다.
(오히려 서울특별시 강남구 언주로 517 영동전화국이요 하고 말하는게 더 이상할듯)
이와 같이 지도앱에 '신라스테이 역삼점'이라고 검색해서 찾아가는 것이 우리가 웹 브라우저 창에
naver.com 인 도메인을 간단하게 쳐서 접속하는 것과 같은 것이라 할 수 있다. (이게 가능한건 DNS가 있기 때문에.. URL을 입력하면 DNS가 알아서 IP 주소로 변환해준다)
물론, 네비게이션이나 지도앱에 주소를 쳐도 나오는 것 처럼, URL창에 naver의 IP 주소를 쳐넣어도 사이트에 접속이 된다.
위 이야기에서 말했듯이, 실제 도로명 주소를 외우는건 참 귀찮은 일이다. 어렵다.
마찬가지로 IP도 외우기 어렵다. 생긴게 온통 숫자니깐.
내가 어려운건 남도 어렵다.
인터넷이 생겨나고 나서 사람들은 IP가 외우기 참 어렵다~ 생각했고 이 때문에 도메인이 생겨나고 DNS가 생겨난 것이다....
생긴건 어렵게 생겨가지고 탄생한 이유는 참 단순하네....
아이러니 한 것 같기도하고 재밌기도 하고...
우리가 지도앱에 검색하거나, 택시 기사님에게 건물 이름을 말하고 가듯이 DNS는 어떻게 우리에게 웹페이지로 안내해 주는 것일까.
우리가 URL, 즉 도메인 주소를 입력하면 우리 컴퓨터는 수많은 IP 주소의 도메인 이름이 저장되어 있는 DNS Server에 접속하며 naver.com의 IP 주소가 뭐야? 하고 물어본다.(마치 전화번호부를 뒤지는 것과 같달까)
그러면 DNS Server는 naver.com의 IP 주소를 알려주고, 우리는 naver에 접속할 수 있는 것이다.
2. IP란?
Internet Protocol.
우리나라 말로는 인터넷 통신 규약.
검색하면 IP의 정의는 '인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다.' 라고 나온다.
조금 더 쉽게 말하자면, 우리가 가진 휴대폰마다 번호가 다르고 겹치는 번호가 없듯이, 우리가 쓰는 컴퓨터 즉 인터넷마다 휴대폰번호처럼 고유 주소가 있다. (건물 주소도 마찬가지다. 중복되는 건물 주소는 없으니깐) 그게 바로 IP.
컴퓨터 한대 한대는 host라 칭하고 host끼리의 통신을 위해 태어난 것이 IP이다.
다시 한번 신라스테이에 빗대어 얘기해보면, '신라스테이 역삼점'이 도메인이라면 IP는 실제 도로 주소인 '서울특별시 강남구 언주로 517 영동전화국'이 되는 것이다.
3. Port란?
Port란 단어를 직역하자면 항구이다. 앞에 air만 붙이면 공항이 된다.
즉, 우리가 출입국 하듯이 출발지/목적지의 최종 Gate라고 볼 수 있다.
네트워크에서의 Port도 그런 비슷한 개념이라 볼 수 있다.(하드웨어 레벨에서 마우스,키보드 연결 포트 말고…)
Port의 정의를 간단하게 말하면,
'네트워크 서비스나 특정 프로세스를 식별하는 논리 단위' / '같은 IP 내에서 프로세스를 구분하는 수단'
정도가 되겠다.
무슨말인지 모르겠다.
다시 예를 들어보자. 겨우겨우 지도앱에 검색하여 호캉스를 위해 신라스테이 도착했다.
하지만 호텔은 숙박객의 목적마다 맞는 방이 있다.
스탠다드 싱글/더블, 디럭스 더블, 프리미어 디럭스 더블, 패밀리룸 등등… 참 다양하다.
거기다가 비즈니스 미팅룸, 레스토랑, 라운지 바까지 여러 목적의 방 혹은 공간들이 있다.
그런데, 나는 혼자서 여유롭게 호캉스를 즐기러 왔는데 오자마자 프론트에서 비즈니스 미팅룸으로 안내한다면?
ಠ﹏ಠ ...... (보니까 요금이 반나절에 200만원가량 하던데)
내 목적에 부합하지 않는다. 나는 혼자서 조용히 쉴 수 있는 방에 당연히 묵을 것이다. 그리고 그 방을 예약했을 것이고.
그 방은 310호다.
이렇게 내가 들어가고자 하는 호텔 방호수를 port라고 할 수 있다.
신라스테이 주소(IP)를 알고 찾아갔지만, 그 수많은 방에서 내 목적(원하는 프로그램)에 맞는 방호수(port)를 맞게 찾아가야 내가 원하는 목적을 달성하는 것이다!
포트는 이정표인 것이다.
포트는 IP 주소 뒤에 콜론(:)과 함께 숫자로 표현된다.
000.00.000:21 -> 21이 포트 번호인 것임.
생각보다 꽤 글이 길어졌다. 나름 스스로 잘 이해한 것 같다.
물론 내가 쓴 글이 정확하다고 절대 생각하진 않지만..
일단 정성들여 길게 써놓으니 뿌듯하구먼.
'땀내 품긴 개발 노-트 > Computer' 카테고리의 다른 글
[코드라이언] Git/Github에 대해서 배우다 -Day4- (5) | 2022.04.02 |
---|