당신은 어떠한 디바이스에서도 인터넷을 연결 할 수 있습니다 : 컴퓨터, 랩탑, 태블릿, 스마트폰, 등등..
이게 가능한 이유는 이 기계들의 소프트웨어가 네트워크 프로토콜을 실행하기 때문입니다.
즉, 네트워크를 가로질러 디바이스들이 데이터를 어떻게 교환하는지 명령하는 규칙의 집합입니다.
이러한 중요한 프로토콜들 중 하나는 IP 입니다.
이번 주제는 이 프로토콜이 무엇이며, 왜 이것이 필요한지에 대한 이해를 줄 겁니다.
또한 당신은 IP versions, IP addresses 를 배우게 되며,
어떤 것이 프로그래머가 디바이스의 인터넷 스피드를 확인하게 돕는지,
어떤 것이 웹 어플리케이션의 프로그램을 테스트하도록 돕는지 배울 겁니다.
IP and IP addresses - IP와 IP 주소
우리가 아는 인터넷은 IP 덕분에 존재하고 있다고 말할 수 있습니다.
왜냐면 이는 전 세계에서 서로 다른 컴퓨터의 네트워크 사이에서 연결 링크가 되기 때문입니다.
IP (Internet Protocol) 은 네트워크를 넘어 전송되는 것이므로,
전송되는 정보의 주소 지정을 정의하며,
특정한 목적지로 이 정보가 어떠한 조직으로 전송되고 있다는 것을 보장합니다.
이는 전송되는 방식, 시간, 향할 장소를 지정합니다.
인터넷에서 이 정보가 어느 주소로 배달되어야 하는지 올바르게 결정하기 위해서,
IP address (IP 주소) 가 있습니다.
컴퓨터가 인터넷에 연결 할 때, 컴퓨터는 IP address라는 고유한 숫자를 할당받습니다.
컴퓨터만 IP address를 가지고 있는 게 아닙니다.
인터넷에 있는 모든 사이트가 이들 스스로의 IP address를 가지고 있습니다.
이는 사이트에서 서버가 호스팅하고 있는 IP address와 동등합니다.
당신이 관심 있는 사이트의 IP address를 알고 있다면,
주소창에 해당 IP address를 쳐서 해당 사이트에 방문 할 수 있습니다.
이건 참으로 불편합니다.
사람들이 IP address를 기억하는 것은 어려운데,
이는 IP address의 특정한 형태 때문입니다.
심지어 해당 사이트와 관련된 IP 주소를 기억하는 것은 더 어렵습니다.
사이트의 IP address가 hyperskill.org와 같은 도메인 이름을 할당받는 이유가 이것입니다.
여기 IP 프로토콜의 두 가지 버전이 있습니다 : IPv4, IPv6
인터넷에 있는 IP address는 이러한 두 버전의 IP 프로토콜 중, 어떠한 것이 사용되었느냐에 의존하여 표현됩니다.
IPv4 - IPv4 프로토콜
우리는 IPv4 프로토콜로 시작할 건데,
이는 인터넷에서 가장 평범한 버전의 프로토콜이기 때문입니다.
이 형태를 따르는 어떠한 주소던 0
에서 255
까지인 네 개의 숫자로 구성되며, 점.
으로 분리됩니다.
여기 IP address (IP 주소) 의 예시가 있습니다 :
132.245.4.216
위의 예시는 사람이 읽을 법한 IP 주소입니다.
컴퓨터에서는, 이러한 주소들은 4 개의 순열, 각 순열은 8 비트로 표현되어,
총 32 비트와 동일하게 표현됩니다.
하나의 시퀀스에서 8 비트의 정보는 주로 octet이라고 부릅니다.
octet
(옥텟)은 숫자 8와 관련이 있습니다. 그냥 octet 혹은 옥텟 이라고 외우세요
여기 바이너리 형태로 쓰여진 인터넷 주소의 예시가 있습니다 :
10000100 11110101 00000100 11011000
| octet | | octet | | octet | | octet |
IPv4에서의 IP 주소는 짧고 비교적 기억하기 쉽습니다.
하지만, 여기에 불편 한 점이 하나 있습니다.
IP 주소의 숫자가 매우 제한되어 있으며,
그 중 다수는 기술적 필요를 위해 예약되어 있습니다.
IPv4가 인터넷 주소들을 위해서 32-비트를 사용하는 것 처럼,
이는 프로토콜이 전체로 따졌을 때 2^32 개의 IP 주소에 대한 지원을 제공한다는 의미입니다.
그리고 이는 40억개의 다양한 주소들과 거의 동일합니다.
이러한 큰 사이즈에도 불구하고,
이 값은 가까운 미래에 있어 모든 유저들에게 제공 가능 한 주소를 제공하기에 충분하지 않습니다.
IPv6 - IPv6 프로토콜
IPv4의 간단함과 편리함에도 불구하고,
IPv4를 계속적으로 사용했을 때 방지해야 할 주요한 문제가 있습니다. - 주소 영역의 고갈.
IPv6는 이 문제를 해결하기 위해 개발되었습니다.
IP protocol 중 해당 버전은 주소를 표현하는 데 128 비트를 사용하는데,
이는 2의 128승 정도의 서로 다른 주소들을 허용합니다.
이 버전에서는,
주소가 네 개의 16진수 숫자로 이루어진 8개의 그룹으로 구성되어 있으며, 컬럼(:
)에 의해 분리됩니다.
여기 IPv6 주소에 대한 예제가 있습니다:
0de2:041a:7d43:65ab:9a63:a63e:aa78:34c2
우리는 0 을 읽을 때 생략하여 IPv6 주소를 짧게 만들 수 있습니다.
예를 들어,
IPv6 주소 0000:0000:0000:0000:0000:0000:0000:0001
이라는 주소는
0:0:0:0:0:0:0:1
로 단순화 될 수 있습니다.
이 절차 후도 당신은 주소를 더 짧게 만들 수 있습니다.
이를 수행하기 위해서,
연속적으로 16진수 0 이 나오는 가장 긴 줄을 선택하고, 이를 두 개의 컬럼(::
)으로 교체하세요.
따라서, 0:0:0:0:0:0:0:1
은 ::1
로 변환됩니다.
새로운 형태 IPv6가 주소에 있어 엄청난 숫자를 저장할 수 있게 해 준다는 사실에도 불구하고,
여기에 상당한 하나의 약점을 가지고 있습니다 : IPv6는 IPv4로 호환이 불가능합니다.
IPv6를 사용하기 시작하는 것이 여전히 가능함에도 불구하고,
만약 당신이 네트쿼으 내에서 이 프로토콜을 사용하기로 결정했다면,
당신의 infrastructure (인프라 구조) 와 모든 당신의 기기가 IPv6가 지원되는 것으로 업그레이드 해야 합니다.
Loopback addresses - 루프백 주소
로컬 컴퓨터로 향하는 지점을 의미하는 특별한 IP 주소가 있습니다.
이는, 당신이 사용하고 있는 지금의 컴퓨터를 의미합니다.
이 주소를 loopback addresses (루프백 주소) 라고 부릅니다.
이 주소는 당신의 컴퓨터에 서버를 연결하고 싶을 때 유용합니다.
루프백 주소는 평범하게 테스팅 목적으로 사용됩니다.
루프백 주소는 기기의 스피드 테스팅으로 사용되거나,
네트워크 리소스를 로딩하는 것을 줄이기 위해 사용됩니다.
당신은 루프백 주소를 프로그램이나 웹 어플리케이션을 테스트 하기 위해 사용 할 수 있습니다.
이러한 행동의 목적은 당신이 해당 프로그램을 인터넷에 출판하기 전에 모든 것이 완벽하게 작동하는 지 확인하기 위함입니다.
당신의 로컬 컴퓨터를 서버에 연결하기 위해 가장 평범하게 사용되는 IP 주소는
IPv4에서는 127.0.0.1
이며, IPv6에서는 ::1
입니다.
흥미롭게도, 인터넷에 있는 어떠한 웹사이트도 IP 주소로 127
로 시작하는 주소를 가지지 않았습니다.
이는 주소의 첫 번째인 127
이 오로지 당신 스스로의 컴퓨터에 연결하고 싶을때를 위해 예약되어 있기 때문입니다.
127
로 시작하는 주소는, 자신의 컴퓨터 리소스에 접근하기 위해 예약되어 있는 번호라고 생각하면 됩니다.
루프백 주소에 대한 추가적인 정보로,
알면 유용한 예약된 루프백 주소들이 있습니다.
예를 들어, 192.168
로 시작하는 주소는 로컬 네트워크를 위해 예약되어 있습니다.
주로, 당신의 라우터의 IP 주소는 192.168.1.1
입니다.
이는 라우터의 세팅을 조종하기 위해 사용됩니다.
Conclusion - 결론
따라서, 당신이 알고 있듯이, IP는 네트워크를 넘어 전송되는 정보의 주소를 정의하는 프로토콜입니다.
이 목적지에 대한 정보의 전송을 나열하기도 합니다.
이번 주제에서는, IP 프로토콜에 대한 두 개의 버전을 배웠습니다.
이 두 버전의 주소는 IP 주소의 표현 형태에 의존합니다.
또한 당신은 loopback (루프백) 주소에 대해 배웠는데,
이는 당신 스스로의 컴퓨터와 서버에 연결 할 때 사용됩니다.
words to remember
dictate : 명령, 구술하다, 지령하다, 명령하다, ==: dictator : 독재자
equivalent : 동등한, 같은, 상당하는, 대가
relatively : 비교적
reserved : 에약된, 제한된, 보류된, 삼가하는
Despite : ~에도 불구하고, 무례, 또는
depletion : 고갈
procedure : 절차, 순서, 진행상의 순서
consecutive : 연이은, 연속적인, 결과를 나타내는, 병행의
immense : 엄청난, 광대한
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Git' 카테고리의 다른 글
Editing the commit - 커밋 내용 수정하기 (0) | 2024.06.12 |
---|---|
SSH - SSH (Secure Shell) 기초 (1) | 2024.06.11 |
Cherry picking and checkout options - Cherry pick 명령어와 checkout 옵션 명령어의 기초 (1) | 2024.06.09 |
Conventional Commits and commitlint - 관례적인 커밋 메세지와 이를 돕는 commitlint (1) | 2024.06.07 |
Git diff - Git diff 명령어 및 사용법 (1) | 2024.06.05 |