IP주소

IP 주소란?

인터넷을 사용하면서 한 번쯤은 들어본 'IP 주소'라는 용어. 우리가 매일 사용하는 인터넷의 핵심 개념이지만, 정확히 무엇인지 이해하기 어려울 수 있습니다. 오늘은 IP 주소의 개념부터 확인 방법까지 쉽게 알아보겠습니다.

 

1. IP 주소란? 알기 쉽게 해설

IP 주소(Internet Protocol Address)는 인터넷에 연결된 모든 기기를 식별하는 고유한 번호입니다. 마치 우리 집에 우편물을 배달하기 위한 주소처럼, 인터넷 상에서 데이터가 어디로 가야 할지 알려주는 '디지털 주소'라고 생각하면 됩니다.

실생활에 비유하자면, IP 주소는 전화번호와 비슷합니다. 친구에게 전화하려면 그 친구의 전화번호를 알아야 하듯이, 컴퓨터가 다른 컴퓨터와 통신하려면 그 컴퓨터의 IP 주소를 알아야 합니다.

일반적으로 IP 주소는 192.168.1.1과 같은 형태로 표현되며, 이를 IPv4(Internet Protocol version 4)라고 합니다. 최근에는 IPv6(2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같은 형식)도 널리 사용되고 있습니다.

 

2. IP 주소 규칙 ①: 중복되지 않음

IP 주소의 가장 중요한 특징은 중복되지 않는다는 점입니다. 전 세계 어디에서도 완전히 동일한 공인 IP 주소를 가진 두 대의 컴퓨터는 존재할 수 없습니다. 만약 그렇다면 인터넷은 어떤 컴퓨터에 데이터를 보내야 할지 혼란스러워할 것입니다.

이것은 마치 국가 내에서 주민등록번호가 중복되지 않는 것과 비슷합니다. 각 사람을 고유하게 식별하기 위해서는 고유한 식별자가 필요하기 때문입니다.

하지만 인터넷에 연결된 기기의 수가 급증하면서 IPv4 주소는 부족해졌고, 이 문제를 해결하기 위해 사설 IP와 공인 IP 개념이 등장했습니다. 가정이나 사무실 내부에서는 같은 사설 IP가 다른 네트워크에서 중복해서 사용될 수 있지만, 인터넷으로 나갈 때는 공유기(라우터)를 통해 하나의 공인 IP로 변환됩니다.

 

3. IP 주소 규칙 ②: 표기 방법

IPv4 주소는 32비트로 구성되어 있으며, 8비트씩 4부분으로 나누어 각 부분을 점(.)으로 구분하여 표기합니다. 각 8비트는 0부터 255까지의 숫자로 표현할 수 있어, IP 주소는 0.0.0.0부터 255.255.255.255까지의 범위를 가집니다.

예를 들어, 192.168.1.1이라는 IP 주소는 다음과 같이 이해할 수 있습니다:

  • 첫 번째 부분: 192 (이진수로 11000000)
  • 두 번째 부분: 168 (이진수로 10101000)
  • 세 번째 부분: 1 (이진수로 00000001)
  • 네 번째 부분: 1 (이진수로 00000001)

이렇게 점으로 구분된 십진수 표기법을 '점-십진 표기법(Dotted Decimal Notation)'이라고 합니다.

IPv6는 128비트로 구성되어 있으며, 16비트씩 8부분으로 나누어 각 부분을 콜론(:)으로 구분하여 16진수로 표기합니다. 예를 들어, 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같이 표현합니다.

 

4. IP 주소 규칙 ③: 네트워크부와 호스트부

IP 주소는 '네트워크부'와 '호스트부'로 나눌 수 있습니다. 네트워크부는 기기가 속한 네트워크를 식별하고, 호스트부는 해당 네트워크 내에서의 특정 기기를 식별합니다.

이것은 마치 우편 주소에서 도시명(네트워크부)과 상세주소(호스트부)로 나누는 것과 비슷합니다. 도시명은 큰 지역을, 상세주소는 그 지역 내 특정 건물을 식별하죠.

 

4-1. IP 주소: 클래스 전체 주소

전통적으로 IP 주소는 A, B, C, D, E의 5개 클래스로 나누어졌습니다. 각 클래스마다 네트워크부와 호스트부의 비율이 다릅니다.

  • 클래스 A: 첫 번째 부분이 네트워크부, 나머지가 호스트부 (1.0.0.0 ~ 126.255.255.255)
    • 첫 번째 비트는 항상 0
    • 대규모 네트워크용 (16,777,214개의 호스트)
  • 클래스 B: 처음 두 부분이 네트워크부, 나머지가 호스트부 (128.0.0.0 ~ 191.255.255.255)
    • 첫 두 비트는 항상 10
    • 중간 규모 네트워크용 (65,534개의 호스트)
  • 클래스 C: 처음 세 부분이 네트워크부, 마지막 부분이 호스트부 (192.0.0.0 ~ 223.255.255.255)
    • 첫 세 비트는 항상 110
    • 소규모 네트워크용 (254개의 호스트)
  • 클래스 D: 멀티캐스트 주소 (224.0.0.0 ~ 239.255.255.255)
  • 클래스 E: 연구용 예약 주소 (240.0.0.0 ~ 255.255.255.255)

 

4-2. IP 주소: 클래스리스 주소(CIDR)

클래스 기반 주소 지정 방식의 비효율성을 해결하기 위해 CIDR(Classless Inter-Domain Routing)이 도입되었습니다. CIDR에서는 서브넷 마스크를 사용하여 네트워크부와 호스트부를 유연하게 나눌 수 있습니다.

CIDR 표기법에서는 IP 주소 뒤에 슬래시('/')와 네트워크 비트 수를 붙입니다. 예를 들어, 192.168.1.0/24는 처음 24비트가 네트워크부임을 의미합니다.

예시:

  • 192.168.1.0/24: 처음 24비트가 네트워크부 (192.168.1), 나머지 8비트가 호스트부
  • 10.0.0.0/8: 처음 8비트가 네트워크부 (10), 나머지 24비트가 호스트부

CIDR는 주소 공간을 더 효율적으로 사용할 수 있게 해주며, 네트워크 관리자가 필요에 따라 네트워크 크기를 유연하게 조정할 수 있게 합니다.

 

5. IP 주소 확인 방법

각자의 기기가 현재 어떤 IP 주소를 사용하고 있는지 확인하는 방법은 운영체제마다 다릅니다. 여기서는 주요 플랫폼별 확인 방법을 알아보겠습니다.

 

5-1. Windows

Windows에서 IP 주소를 확인하는 가장 쉬운 방법은 명령 프롬프트(CMD)를 사용하는 것입니다:

  1. 시작 메뉴에서 'cmd'를 검색하여 명령 프롬프트를 실행합니다.
  2. 명령 프롬프트 창에 ipconfig를 입력하고 Enter 키를 누릅니다.
  3. 'IPv4 주소' 항목에서 현재 컴퓨터의 IP 주소를 확인할 수 있습니다.

또는 설정 > 네트워크 및 인터넷 > 상태 > 속성에서도 확인할 수 있습니다.

5-2. macOS

macOS에서는 다음과 같이 IP 주소를 확인할 수 있습니다:

  1. 시스템 환경설정(System Preferences)을 열고 '네트워크(Network)'를 클릭합니다.
  2. 왼쪽 목록에서 현재 사용 중인 네트워크 연결(Wi-Fi 또는 이더넷)을 선택합니다.
  3. 오른쪽 패널에서 'IP 주소' 항목을 확인합니다.

또는 터미널을 열고 ifconfig 명령어를 입력해도 확인할 수 있습니다.

5-3. 리눅스

리눅스에서는 터미널을 열고 다음 명령어 중 하나를 사용하여 IP 주소를 확인할 수 있습니다:

  1. ifconfig (구형 시스템)
  2. ip addr 또는 ip a (최신 시스템)
  3. hostname -I (간단히 IP 주소만 표시)

각 명령어는 실행 결과에서 'inet' 또는 'inet addr' 항목 뒤에 나오는 숫자가 해당 인터페이스의 IPv4 주소입니다.

5-4. 스마트폰(Android/iOS)

Android:

  1. 설정 앱을 엽니다.
  2. '네트워크 및 인터넷' 또는 '연결' 항목을 탭합니다.
  3. 'Wi-Fi'를 탭합니다.
  4. 현재 연결된 Wi-Fi 네트워크를 길게 누르거나 설정 아이콘을 탭합니다.
  5. '고급' 또는 '네트워크 세부정보'에서 IP 주소를 확인할 수 있습니다.

iOS:

  1. 설정 앱을 엽니다.
  2. 'Wi-Fi'를 탭합니다.
  3. 현재 연결된 네트워크 이름 옆의 정보(i) 아이콘을 탭합니다.
  4. 'IP 주소' 항목에서 확인할 수 있습니다.
728x90

'1일 1네트워크 > 제 3장: IP주소' 카테고리의 다른 글

IPv6이란?  (1) 2025.03.13
서브넷 마스크란?  (0) 2025.03.12
공인IP와 사설IP의 차이, 그리고 폐쇄망이란?  (0) 2025.03.11
IP란? (Internet Protocol이란?)  (1) 2025.03.06

1. 문제점

노드js 심화 3주차 2강에서 Docker설치를 하였는데 오류가 발생하였다.

강의를 보고 코딩하려면 필수기 때문에 구글링을 시작했다.

Docker 실행시 문제점

 

2. 시도해본 것들

강의에서는 단순히 docker를 설치하고,

docker run --rm -p 3306:3306 --name test-db -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7 mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

cmd에서 위 코드만 복붙하면 된다고 하였으나 실행되지 않았다.

저걸 할때마다 위의 'WSL 2 installation is incomplete' 경고창이 떴다.

WSL2가 설치 되지 않았다고??? 저 문구 그대로 구글링했다.

 

3. 해결과정

구글링한 결과 https://suzxc2468.tistory.com/211 의 내용을 참고하였다.

해당 문구에서 설치하고 입력하라는 대로 실행하고 CMD에서 다시 복붙하였는데 안되네...?!

그러다 문뜩 떠올랐다. 해당 블로그에선 Windows PowerSehll을 [관리자 권한으로 실행] 해서 리눅스, 플랫폼 활성화 등

다양한 명령어를 실행하고 있었다.

그래서 명령프롬프트를 관리자 권한으로 실행하고, 강의에서 준 코드를 실행했더니 설치 완료!

4. 알게 된 점

첫번째로 문제가 발생하여 구글링을 할때는 경고문구를 자세히 읽어봐야겠다.

영어를 잘 모른다하더라도 번역기를 돌리거나, 핵심 문구를 그대로 복사하여 구글링하면 답을 찾을 수 있을 것이다.

 

두번째로 프로그램 실행하다보면 권한으로 인해 문제가 꽤 많이 발생한다.

분명히 코딩하면서도 권한때문에 문제가 발생한 경우도 많았고,

관리자 권한없이 했을때 CMD에서도 권한 관련 문구를 띄웠던것 같은데

그냥 안된다는 사실에 화만 나서 대충 읽고 넘겨서 더 오랜 시간이 걸렸던 것 같다.

728x90

+ Recent posts