공인IP와 사설IP의 차이

1. 【전제】IP 주소란?

IP(Internet Protocol) 주소는 인터넷에 연결된 모든 기기를 식별하는 고유한 숫자 주소입니다. 쉽게 말해, IP 주소는 디지털 세계의 '집 주소'와 같습니다. 우리가 택배를 보낼 때 정확한 주소가 필요하듯이, 인터넷에서도 데이터가 올바른 목적지에 도달하려면 고유한 주소가 필요합니다. IPv4의 경우 192.168.0.1과 같이 점으로 구분된 4개의 숫자로 구성됩니다.

 

예시: 휴대폰으로 친구에게 메시지를 보낼 때는 친구의 전화번호가 필요합니다. 마찬가지로 컴퓨터가 다른 컴퓨터에 데이터를 보낼 때는 상대방의 '주소'인 IP 주소가 필요합니다. 이 주소가 없다면 여러분의 메시지는 인터넷의 바다에서 길을 잃게 됩니다!

1-1. IP 주소(IPv4) 고갈 문제

IPv4 주소 체계는 약 43억 개의 주소를 제공할 수 있습니다. 처음에는 이 숫자가 매우 크게 느껴졌지만, 인터넷의 폭발적인 성장과 함께 스마트폰, 태블릿, 스마트 TV, 냉장고, 전구 등 모든 것이 인터넷에 연결되면서 IPv4 주소는 이미 고갈 상태에 이르렀습니다.

 

2. 글로벌 IP 주소와 사설 IP 주소

2-1. 글로벌 IP 주소(공용 IP 주소)

글로벌 IP 주소(또는 공인 IP 주소)는 인터넷 상에서 전 세계적으로 유일하게 식별되는 주소입니다. 인터넷 서비스 제공업체(ISP)가 할당하며, 이 주소를 통해 인터넷에 직접 연결됩니다.

 

예시: 공인 IP는 여러분 집의 실제 도로명 주소와 같습니다. 전 세계 어디에서든 이 주소로 편지를 보내면 정확히 여러분의 집으로 배달됩니다. 마찬가지로, 공인 IP 주소는 인터넷의 '실제 주소'로, 전 세계 어디서든 이 주소로 데이터를 보내면 여러분의 네트워크에 도달합니다.

 

주요 특징

  • 인터넷에서 고유하게 식별됨 (전 세계에서 하나뿐인 주소)
  • ISP(예: KT, SKT, LG U+)에서 할당받음
  • 외부에서 접근 가능
  • 일반적으로 가정이나 회사의 라우터/모뎀에 할당됨
  • 유료로 할당받는 경우가 많음

 

2-2. 자신의 IP 주소를 확인하는 방법(글로벌 IP 주소)

글로벌 IP 주소는 다음과 같은 방법으로 쉽게 확인할 수 있습니다:

  1. 인터넷 검색창에 "내 IP 주소"라고 검색
  2. 'whatismyip.com', 'ipchicken.com'과 같은 전문 웹사이트 방문

2-3. 사설 IP 주소

사설 IP 주소로컬 네트워크 내에서만 사용되는 IP 주소로, 인터넷에 직접 연결되지 않습니다.

 

예시: 사설 IP는 대형 아파트 단지 내의 동-호수와 같습니다. '101동 1502호'라는 주소는 해당 아파트 단지 내에서만 의미가 있고, 외부 사람은 이 정보만으로는 여러분을 찾아올 수 없습니다. 외부에서 여러분에게 뭔가를 배달하려면 아파트의 정확한 도로명 주소(공인 IP)와 함께 동-호수(사설 IP)가 필요합니다.

 

주요 특징

  • 로컬 네트워크 내에서만 유효함
  • 라우터가 자동으로 할당하거나 관리자가 수동으로 설정
  • 외부 인터넷에서 직접 접근 불가능
  • 다른 네트워크에서 동일한 사설 IP 주소를 사용해도 충돌이 없음 (서로 다른 아파트의 '101동 1502호'처럼)
  • 사설 IP 주소 범위:
    • 10.0.0.0 ~ 10.255.255.255 (10/8 prefix)
    • 172.16.0.0 ~ 172.31.255.255 (172.16/12 prefix)
    • 192.168.0.0 ~ 192.168.255.255 (192.168/16 prefix)

2-4. 자신의 IP 주소를 확인하는 방법(개인 IP 주소)

사설 IP 주소는 다음과 같은 방법으로 확인할 수 있습니다:

  1. Windows
    • 명령 프롬프트 실행 후 ipconfig 입력
    • '이더넷 어댑터' 또는 'Wi-Fi 어댑터'의 'IPv4 주소' 확인
  2. Mac
    • 시스템 환경설정 → 네트워크 → 연결된 네트워크 선택
    • 또는 터미널에서 ifconfig 명령 실행
  3. Linux
    • 터미널에서 ifconfig 또는 ip addr 명령 실행

 

3. 폐쇄망 환경이란?

폐쇄망 환경(Closed Network)은 외부 인터넷과 물리적으로 또는 논리적으로 완전히 분리된 네트워크 환경을 말합니다. 흔히 '인트라넷'이라고도 부릅니다.

 

예시: 폐쇄망은 외부와 완전히 단절된 섬과 같습니다. 섬 안에서는 사람들이 자유롭게 왕래하고 통신할 수 있지만, 외부 세계와는 연결이 차단되어 있습니다. 회사의 중요한 정보를 보호하기 위해 외부 인터넷과 연결하지 않는 컴퓨터 네트워크가 바로 폐쇄망입니다.

 

3-1. 폐쇄망과 IP 주소

폐쇄망 환경에서는 일반적으로 사설 IP 주소만 사용합니다. 외부 인터넷과 연결되지 않기 때문에 공인 IP 주소가 필요 없습니다.

폐쇄망의 주요 특징

  • 외부 인터넷과 물리적으로 분리됨
  • 주로 군사, 금융, 의료, 정부 기관 등 높은 보안이 요구되는 곳에서 사용
  • 내부에서만 사용되는 자체 DNS, 메일 서버 등을 운영
  • 악성코드나 해킹 위험으로부터 상대적으로 안전
  • 사설 IP 주소체계를 자유롭게 구성 가능 (표준 사설 IP 범위를 벗어난 IP도 사용 가능)

 

예시: 신한은행이나 국방부 같은 조직은 중요한 데이터를 다루기 때문에 폐쇄망을 사용합니다. 이런 환경에서는 직원들이 인터넷 검색이나 외부 이메일을 사용할 수 없는 컴퓨터와, 제한된 외부 인터넷 접속이 가능한 별도의 컴퓨터를 따로 사용하는 경우가 많습니다.

 

3-2. 폐쇄망과 공인/사설 IP의 관계

폐쇄망 환경에서는:

  • 네트워크가 외부와 완전히 분리되어 있어 공인 IP가 필요 없음
  • 내부에서는 사설 IP만으로 모든 통신이 이루어짐
  • NAT(Network Address Translation)와 같은 주소 변환 기술이 필요 없음
  • 외부 인터넷과 데이터 교환이 필요할 경우, 물리적으로 분리된 '망연계 시스템'을 통해 제한적으로 수행

이처럼 사설 IP와 공인 IP의 구분과 활용은 네트워크 보안과 효율적인 인터넷 자원 활용을 위해 매우 중요합니다. 특히 홈 네트워크나 기업 네트워크에서는 제한된 공인 IP를 여러 기기가 공유하면서도 각 기기를 고유하게 식별할 수 있게 해주는 중요한 개념입니다.

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

IP 주소란?  (0) 2025.03.10
IP란? (Internet Protocol이란?)  (1) 2025.03.06

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 주소' 항목에서 확인할 수 있습니다.

1. IP란? (Internet Protocol이란?)

인터넷 프로토콜(IP)은 인터넷에서 데이터를 주고받기 위한 규칙의 집합입니다. 마치 우리가 도로에서 운전할 때 지켜야 할 교통 규칙이 있는 것처럼, 인터넷이라는 디지털 고속도로에서도 데이터가 안전하고 효율적으로, 그리고 정확하게 목적지에 도달할 수 있도록 하는 규칙이 필요합니다. 그것이 바로 IP입니다.

1.1 IP 역할: 이해하기

IP의 가장 기본적인 역할은 크게 세 가지로 나눌 수 있습니다

  1. 주소 지정: 각 기기에 고유한 주소(IP 주소)를 부여하여 데이터가 어디로 가야 하는지 알려줍니다.
  2. 경로 설정(라우팅): 데이터가 출발지에서 목적지까지 가는 최적의 경로를 찾습니다.
  3. 패킷 처리: 큰 데이터를 작은 조각(패킷)으로 나누어 전송하고, 목적지에서 다시 조립합니다.

이것은 마치 우편 시스템과 유사합니다. 편지를 보낼 때 우리는 받는 사람의 주소를 적고(주소 지정), 우체국에서는 그 편지가 목적지에 가장 효율적으로 도달할 수 있는 경로를 결정하며(경로 설정), 큰 소포는 여러 개로 나누어 보내기도 합니다(패킷 처리).

 

2. IP란? ①IP 주소

IP 주소는 인터넷에 연결된 모든 기기의 '디지털 주소'입니다. 마치 우리 집에 고유한 주소가 있는 것처럼, 인터넷에 연결된 모든 컴퓨터, 스마트폰, 서버 등은 고유한 IP 주소를 가지고 있습니다.

현재 사용되는 IP 주소에는 두 가지 종류가 있습니다:

  • IPv4: 192.168.1.1과 같이 점으로 구분된 4개의 숫자로 이루어진 주소입니다. 각 숫자는 0~255 사이의 값을 가집니다. IPv4는 약 43억 개의 주소를 제공할 수 있지만, 인터넷의 폭발적인 성장으로 이미 거의 소진된 상태입니다.
  • IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같이 더 길고 복잡한 형태의 주소입니다. IPv6는 거의 무한대에 가까운 수의 주소를 제공할 수 있어 IPv4의 한계를 극복했습니다.

또한 IP 주소는 용도에 따라 다음과 같이 구분됩니다

  • 공인 IP(Public IP): 인터넷 상에서 직접 접근 가능한 고유 주소입니다. 마치 여러분 집의 실제 도로명 주소와 같습니다.
  • 사설 IP(Private IP): 같은 네트워크 내에서만 사용되는 내부 주소입니다. 하나의 공인 IP 아래에 여러 기기가 각각 다른 사설 IP를 가질 수 있습니다. 이것은 마치 하나의 아파트 단지 안에 여러 호수가 있는 것과 같습니다.

 

3. IP란? ② 라우팅

라우팅은 데이터가 출발지에서 목적지까지 가는 최적의 경로를 결정하는 과정입니다. 인터넷은 수없이 많은 네트워크와 라우터들이 연결된 거대한 망입니다. 데이터가 이 복잡한 망을 통과하여 정확한 목적지에 도달하려면 경로를 잘 찾아야 합니다.

라우터라는 장비는 교통 경찰과 같은 역할을 합니다. 라우터는 목적지 IP 주소를 확인하고, 해당 데이터가 가야 할 최적의 경로를 결정합니다. 이 과정에서 네트워크 상태, 혼잡도, 거리 등 여러 요소를 고려합니다.

 

4. IP란? ③ 패킷 교환 방식(단편화)

인터넷에서 데이터는 '패킷'이라는 작은 조각으로 나뉘어 전송됩니다. 이것을 '패킷 교환 방식'이라고 합니다. 큰 파일이나 긴 메시지를 한 번에 보내기보다 작은 조각으로 나누어 보내는 것이 효율적이기 때문입니다.

각 패킷에는 출발지 IP 주소, 목적지 IP 주소, 순서 번호 등의 정보가 포함됩니다. 이 정보를 바탕으로 패킷들은 각자 최적의 경로로 목적지까지 이동하고, 목적지에서는 순서 번호에 따라 원래 데이터로 재조립됩니다.

단편화(Fragmentation)는 네트워크 상황에 따라 패킷을 더 작은 조각으로 나누는 과정입니다. 예를 들어, 어떤 네트워크는 큰 크기의 패킷을 처리할 수 없을 수도 있습니다. 이런 경우 IP는 패킷을 더 작게 나누어(단편화하여) 전송합니다.

이것은 마치 큰 가구를 이사할 때, 해당 가구가 문을 통과할 수 없다면 분해해서 옮기는 것과 유사합니다. 목적지에 도착한 후에는 다시 조립하여 원래의 형태로 만듭니다.

 

5. IP 헤더

IP 헤더는 각 패킷의 '주소 라벨'과 같은 역할을 합니다. 우편물에 보내는 사람과 받는 사람의 주소, 내용물의 특성 등을 적어두는 것처럼, IP 헤더에는 패킷의 전송에 필요한 중요한 정보들이 담겨 있습니다.

주요 IP 헤더 필드는 다음과 같습니다:

  • 버전(Version): IPv4인지 IPv6인지를 나타냅니다.
  • 헤더 길이(Header Length): IP 헤더의 크기를 나타냅니다.
  • 서비스 유형(Type of Service): 패킷의 우선순위를 나타냅니다.
  • 패킷 길이(Total Length): 패킷 전체의 크기를 나타냅니다.
  • 식별자(Identification): 같은 데이터에서 분할된 패킷들을 구분하는 번호입니다.
  • 플래그(Flags): 패킷의 단편화 여부를 제어합니다.
  • 단편 오프셋(Fragment Offset): 원래 데이터에서 이 패킷의 위치를 나타냅니다.
  • 생존 시간(Time To Live, TTL): 패킷이 네트워크에 머무를 수 있는 최대 시간으로, 무한 루프를 방지합니다.
  • 프로토콜(Protocol): 상위 계층 프로토콜(TCP, UDP 등)을 나타냅니다.
  • 헤더 체크섬(Header Checksum): 헤더의 오류를 검출하는 데 사용됩니다.
  • 출발지 IP 주소(Source Address): 보내는 측의 IP 주소입니다.
  • 목적지 IP 주소(Destination Address): 받는 측의 IP 주소입니다.
  • 옵션(Options): 추가적인 기능을 위한 선택적 필드입니다.

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

공인IP와 사설IP의 차이, 그리고 폐쇄망이란?  (0) 2025.03.11
IP 주소란?  (0) 2025.03.10

쿼리파라미터와 동적라우팅 URL 방식의 차이

  1. 쿼리 파라미터 방식
    • URL에 ? 이후로 키-값 쌍으로 데이터를 전달합니다.
    • API 라우트에서는 request.nextUrl.searchParams로 값을 추출합니다.
    • 라우트 파일 위치: /app/api/sensor/route.ts
    • URL: `/api/sensor?sensorId=${sensorCodeId}`
  2. 동적 라우팅 방식
    • URL 경로의 일부로 값을 전달합니다.
    • API 라우트에서는 params 객체로 값을 추출합니다.
    • 라우트 파일 위치: /app/api/sensor/[sensorCodeId]/route.ts
    • URL: `/api/sensor/${sensorCodeId}`

쿼리 파라미터가 적합한 경우

  • 선택적(optional) 파라미터가 여러 개일 때
  • 필터링, 정렬, 검색 등 부가적인 옵션을 전달할 때
  • 페이지네이션(예: ?page=2&limit=10)
  • URL을 깔끔하게 유지하고 싶을 때
  • 같은 엔드포인트에 여러 파라미터가 조합될 때

동적 라우팅(/path/[param])이 적합한 경우:

  • 리소스의 고유 식별자를 표현할 때(ID, 슬러그 등)
  • RESTful API 설계를 따를 때
  • 경로가 리소스의 계층 구조를 표현할 때
  • URL이 의미적으로 중요할 때 (SEO에 유리)
  • 필수적인(required) 파라미터일 때

 

현재 상황(ID를 받아서 검색하는 경우)에 대한 추천

동적 라우팅 방식이 더 적합합니다.

이유

  1. 특정 센서 코드라는 리소스에 직접 접근하는 패턴입니다.
  2. RESTful API 설계 원칙에 더 부합합니다.
  3. sensorCodeId는 필수 파라미터이며 리소스의 식별자입니다.
  4. URL이 더 의미적이고 명확해집니다.

'코딩공부 > Next.js' 카테고리의 다른 글

Next.js와 HeidiSQL을 사용한 파일첨부 방법  (1) 2024.12.06
Next.js의 오류처리  (4) 2024.10.31
Next.js의 Layout과 Template  (1) 2024.10.31

네트워크의 심장, TCP/IP와 UDP: 초보자를 위한 쉬운 설명

들어가며

디지털 세상에서 데이터는 마치 우리가 편지를 주고받듯이 이동합니다. 하지만 이 데이터 전송의 비밀은 바로 TCP/IP와 UDP라는 두 가지 통신 프로토콜에 있습니다. 

 

TCP/IP: 신뢰할 수 있는 우편 시스템

TCP/IP는 인터넷 통신의 가장 기본적이고 신뢰할 수 있는 방식입니다. 마치 등기우편처럼, 보내는 데이터의 안전한 도착을 보장합니다.

작동 방식

  1. 연결 설정: 데이터를 보내기 전에 송신자와 수신자 사이에 안전한 통로를 만듭니다.
  2. 순서 보장: 모든 데이터 조각(패킷)이 올바른 순서로 도착하도록 관리합니다.
  3. 오류 복구: 만약 어떤 패킷이 분실되거나 손상되면, 자동으로 재전송합니다.

실제 사용 예시

  • 웹 페이지 로딩
  • 이메일 송수신
  • 파일 다운로드
  • 온라인 뱅킹

 

UDP: 빠른 엽서 배달

UDP는 TCP/IP와는 다른 접근 방식을 가진 통신 프로토콜입니다. 속도를 최우선으로 하며, 데이터의 완벽한 도착보다는 빠른 전송에 중점을 둡니다.

작동 방식

  1. 즉각적인 전송: 연결 설정 없이 바로 데이터를 보냅니다.
  2. 최선의 노력: 데이터 패킷이 분실되어도 재전송하지 않습니다.
  3. 오버헤드 최소화: 추가적인 확인 절차 없이 빠르게 데이터를 전송합니다.

실제 사용 예시

  • 실시간 온라인 게임
  • 스트리밍 서비스
  • DNS 조회
  • 실시간 비디오 통화

 

TCP/IP vs UDP: 언제 무엇을 사용할까?

TCP/IP  vs UDP

속도 느림 빠름
신뢰성 높음 낮음
데이터 전송 보장 아니오
적합한 서비스 이메일, 웹 브라우징 게임, 스트리밍

 

마무리

 TCP/IP와 UDP는 각자의 장단점을 가지고 있으며, 사용 목적에 따라 선택됩니다.

웹 페이지를 열거나 게임을 플레이할 때, 이 보이지 않는 프로토콜들이 우리의 디지털 경험을 만들어내고 있다는 점을 기억해보세요.

'1일 1네트워크 > 제 2장: 네트워크 모델' 카테고리의 다른 글

OSI 참조 모델이란?  (1) 2025.03.04

시계열 데이터베이스(TSDB) 개요

시계열 데이터베이스(Time Series Database, TSDB)는 시간에 따라 변화하는 데이터를 효율적으로 저장하고 처리하기 위해 설계된 특수 데이터베이스입니다.

개념

시계열 데이터베이스는 시간 순서대로 정렬된 데이터 포인트를 저장하는 데 최적화되어 있습니다. 각 데이터 포인트는 타임스탬프와 연관된 값으로 구성됩니다. 예를 들어, 주식 가격, 센서 측정값, 서버 모니터링 로그 등이 시계열 데이터에 해당합니다.

중요성

  • IoT와 모니터링의 증가: 점점 더 많은 기기와 시스템이 지속적으로 데이터를 생성하고 있습니다.
  • 실시간 분석: 빠르게 변화하는 데이터의 추세와 패턴을 실시간으로 파악해야 합니다.
  • 대용량 데이터 처리: 기존 데이터베이스로는 처리하기 어려운 대량의 시계열 데이터를 효율적으로 관리합니다.
  • 예측 분석: 과거 데이터를 기반으로 미래 동향을 예측하는 데 필수적입니다.

특징

  • 시간 기반 인덱싱: 타임스탬프를 기준으로 빠른 검색이 가능합니다.
  • 높은 쓰기 처리량: 초당 수천/수백만 데이터 포인트를 기록할 수 있습니다.
  • 데이터 압축: 공간 효율성을 위해 시계열 특성을 활용한 압축 기술을 사용합니다.
  • 데이터 보존 정책: 오래된 데이터는 자동으로 다운샘플링하거나 삭제할 수 있습니다.
  • 시계열 특화 쿼리 언어: 시간 기반 집계, 보간, 다운샘플링 등의 기능을 제공합니다.

RDBMS 및 NoSQL과의 차이점

RDBMS와의 차이

  • 데이터 모델: RDBMS는 관계형 모델을 사용하지만, TSDB는 시간 기반 모델을 사용합니다.
  • 성능: RDBMS는 시계열 데이터의 대용량 쓰기 작업에 비효율적입니다.
  • 쿼리 최적화: TSDB는 시간 범위 쿼리에 최적화되어 있습니다.
  • 스키마: RDBMS는 엄격한 스키마를 요구하지만, 많은 TSDB는 유연한 스키마를 제공합니다.

NoSQL과의 차이

  • 목적: NoSQL은 다양한 비구조적 데이터에 적합하지만, TSDB는 시계열 데이터에 특화되어 있습니다.
  • 쿼리 기능: TSDB는 시간 범위 분석, 집계, 보간 등 시계열 특화 기능이 풍부합니다.
  • 데이터 처리: TSDB는 시간 순서 데이터의 효율적인 압축과 보존 정책을 제공합니다.

대표적인 시계열 데이터베이스

  1. InfluxDB: 가장 인기 있는 오픈 소스 TSDB로, 자체 쿼리 언어인 InfluxQL과 Flux를 제공합니다.
  2. Prometheus: 모니터링에 특화된 TSDB로, 알림과 시각화 기능이 강력합니다.
  3. TimescaleDB: PostgreSQL 확장으로, SQL의 친숙함과 TSDB의 성능을 결합했습니다.
  4. Graphite: 메트릭 데이터를 저장하고 그래프로 표시하는 데 특화된 시스템입니다.
  5. OpenTSDB: HBase 위에 구축된 확장성이 뛰어난 TSDB입니다.
  6. Kdb+/q: 금융 분야에서 널리 사용되는 고성능 상용 TSDB입니다.
  7. Amazon Timestream: AWS의 서버리스 시계열 데이터베이스 서비스입니다.

이러한 데이터베이스들은 기존 RDBMS의 HeidiSQL과 같은 범용 관리 도구와는 달리, 각각 고유한 관리 및 쿼리 인터페이스를 제공합니다. 예를 들어, InfluxDB는 Chronograf, Prometheus는 Grafana와 같은 시각화 도구와 연동되어 사용됩니다.

'코딩공부 > DB' 카테고리의 다른 글

mysql 데이터베이스 기본 명령어  (0) 2022.12.06
★현재까지 배운 DB관련 내용 총정리★  (0) 2022.12.05

 

OSI 참조 모델이란?

OSI(Open Systems Interconnection) 참조 모델은 1984년 국제표준화기구(ISO)에서 개발한 네트워크 통신 표준입니다. 컴퓨터 네트워킹을 7개의 논리적 계층으로 나누어, 복잡한 네트워크 통신 과정을 체계적으로 이해할 수 있게 해줍니다.

이 모델은 마치 우편 시스템과 비슷합니다. 여러분이 친구에게 편지를 보낼 때, 편지 작성부터 배달까지 여러 단계를 거치게 되죠. OSI 모델도 데이터가 한 컴퓨터에서 다른 컴퓨터로 전송될 때 거치는 단계들을 설명합니다.

 

OSI 모델의 7계층 구조와 역할

레이어 이름 주요 역할 주요 프로토콜 및 기술
애플리케이션 계층 사용자와의 인터페이스 제공, 통신 서비스 이용 HTTP, FTP, SMTP, DNS
프레젠테이션 레이어 데이터 변환, 암호화, 압축 SSL/TLS, JPEG, GIF, PNG, ASCII, EBCDIC
세션 계층 통신 세션 확립, 유지, 종료 NetBIOS, RPC, PPTP
전송 계층 데이터 세분화, 포트 번호 관리, 오류 제어 TCP, UDP
네트워크 계층 데이터 라우팅, IP 주소 관리, 패킷 전달 IP, ICMP, 라우터
데이터 링크 계층 프레임 생성, MAC 주소 관리, 오류 감지 및 제어 이더넷, MAC 주소, 스위치, 브리지
물리 계층 비트 송수신, 물리적 연결, 신호화 이더넷 케이블, 광섬유, 허브

 

제1층: 물리층 (Physical Layer)

물리층은 가장 기본적인 계층으로, 실제 데이터를 전기 신호로 변환하여 물리적 매체(케이블, 무선 등)를 통해 전송합니다.

  • 주요 기능: 비트(0과 1)를 전기 신호, 빛, 전파 등으로 변환
  • 예시 장비: 케이블, 리피터, 허브, 네트워크 어댑터
  • 실생활 비유: 우편 배달부가 실제로 편지를 운반하는 것과 같습니다

 

제2층: 데이터 링크층 (Data Link Layer)

데이터 링크층은 물리적으로 연결된 두 장치 간의 신뢰할 수 있는 데이터 전송을 담당합니다.

  • 주요 기능: 오류 감지 및 수정, MAC 주소를 이용한 장치 식별
  • 예시 프로토콜: 이더넷, Wi-Fi, PPP
  • 예시 장비: 스위치, 네트워크 브릿지
  • 실생활 비유: 우편물이 올바른 집 주소로 배달되도록 하는 것과 같습니다

제3층: 네트워크층 (Network Layer)

 

네트워크층은 여러 네트워크를 연결하고, 데이터 패킷의 경로를 결정합니다.

  • 주요 기능: 라우팅(최적 경로 선택), 논리적 주소 지정(IP 주소)
  • 예시 프로토콜: IP, ICMP, OSPF
  • 예시 장비: 라우터
  • 실생활 비유: 내비게이션처럼 목적지까지 가는 최적의 경로를 찾는 것과 같습니다

 

제4층: 트랜스포트층 (Transport Layer)

트랜스포트층은 데이터의 분할과 재조립, 흐름 제어, 오류 복구를 담당합니다.

  • 주요 기능: 종단간(end-to-end) 통신 관리, 데이터 분할과 재조립
  • 예시 프로토콜: TCP, UDP
  • 실생활 비유: 여러 소포로 나누어 보내고 받는 쪽에서 다시 조립하는 것과 같습니다

 

제5층: 세션층 (Session Layer)

세션층은 두 장치 간의 통신 세션을 설정, 유지, 종료하는 역할을 합니다.

  • 주요 기능: 대화 제어, 동기화
  • 예시 프로토콜: NetBIOS, RPC
  • 실생활 비유: 전화 통화를 시작하고 끝내는 과정과 같습니다

 

제6층: 프레젠테이션층 (Presentation Layer)

프레젠테이션층은 데이터 형식을 변환하고 암호화/복호화하는 역할을 합니다.

  • 주요 기능: 데이터 변환, 압축, 암호화
  • 예시 프로토콜: SSL/TLS, JPEG, MPEG
  • 실생활 비유: 각 나라의 언어를 번역하는 통역사와 같습니다

 

제7층: 애플리케이션층 (Application Layer)

애플리케이션층은 사용자와 직접 상호작용하는 소프트웨어 애플리케이션의 계층입니다.

  • 주요 기능: 사용자 인터페이스 제공, 이메일, 파일 전송 등
  • 예시 프로토콜: HTTP, FTP, SMTP, DNS
  • 실생활 비유: 우리가 실제로 사용하는 편지지나 메일 앱과 같습니다

 

데이터 흐름 이해하기

데이터가 전송될 때는 7계층에서 시작하여 1계층까지 내려갑니다(캡슐화). 이 과정에서 각 계층은 자신의 정보(헤더)를 데이터에 추가합니다. 반대로 데이터를 받을 때는 1계층에서 7계층으로 올라가며(비캡슐화) 각 계층의 헤더를 제거하고 데이터를 처리합니다.

예를 들어, 웹 브라우저로 웹 페이지를 요청할 때

  1. 애플리케이션층: HTTP 요청 생성
  2. 프레젠테이션층: 데이터 형식 변환
  3. 세션층: 서버와의 세션 설정
  4. 트랜스포트층: 데이터를 패킷으로.분할
  5. 네트워크층: 패킷에 IP 주소 추가
  6. 데이터 링크층: MAC 주소 추가
  7. 물리층: 비트를 전기 신호로 변환하여 전송

 

OSI 모델의 실제 응용

비록 OSI 모델이 이론적인 프레임워크이지만, 오늘날의 대부분의 네트워크 문제 해결과 설계에 기준이 됩니다. 네트워크 엔지니어들은 문제가 발생했을 때 "어느 계층에서 문제가 발생했는가?"라고 물으며 체계적으로 접근합니다.

예를 들어:

  • 인터넷 케이블 문제는 물리층(1계층)
  • Wi-Fi 연결 문제는 데이터 링크층(2계층)
  • IP 주소 충돌은 네트워크층(3계층)
  • 웹사이트 접속 불가는 애플리케이션층(7계층)

 

마치며

OSI 참조 모델은 복잡한 네트워크 통신을 이해하기 쉽게 논리적 계층으로 분류한 중요한 개념입니다. 각 계층은 특정 기능을 담당하며, 이 계층들이 함께 작동하여 우리가 매일 사용하는 인터넷과 네트워크 통신을 가능하게 합니다.

네트워크에 관심이 있거나 IT 분야로 진로를 고려하고 있다면, OSI 모델을 이해하는 것은 탄탄한 기초를 다지는 첫 걸음입니다.

 

참고링크: https://velog.io/@donghyuk65/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EB%B3%B8-%EC%83%81%EC%8B%9D-OSI-7-%EA%B3%84%EC%B8%B5%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9D%98-%EB%BC%88%EB%8C%80

'1일 1네트워크 > 제 2장: 네트워크 모델' 카테고리의 다른 글

TCP/IP와 UDP  (0) 2025.03.05

한줄평: 5.0 / '기다리기 위해선 삶의 이유가 무엇인지 찾아야겠다', 계속 반복되는 이야기와 의미있는 척 이야기하다가 또 화제전환으로 복선 회수를 못하는 걸 보고 처음 읽을 땐 0점 주고 싶었다. 그러나 모여서 토론을 해보니 다들 같은 이야기에서 다른 생각을 하는걸 보니 생각의 다양성을 느낄 수 있는 10점짜리 책이었다. 그래서 5점🫠

 

'고도를 기다리며'라는 책 제목은 살면서 여러번 들어보았다. ‘고도에 이르다’, ‘고도에 도달하다’ 등 목표 또는 성취에 도달했을 때 사용하는 고도인 줄 알았다. 그런데 책을 읽으면서 고도는 등장인물 또는 말로 표현할 수 없는 무언가였다.

 

책을 처음 읽었을 때 감정은 ‘이게 뭔 개소리야?’였다. 2명의 사람이 나무 앞에서 대화를 하는데 대화의 결론은 없고, 계속 주제가 다른 이야기로 넘어간다. 사람을 화나게 하는 방법을 제대로 보여주는 것 같다.

 

 

 

블라디미르와 에스트라공은 장화(구두)가 발에 안맞는다거나, 나무가 바뀐 것 같다거나 등 시시콜콜한 이야기를 계속하며 ‘고도는 언제오냐?’라면서 또 주제를 바꾼다.

 

하루가 지난 것 같은데 몇십년이 지났거나, 과거 이야기이거나, 나무가 이게 맞았나? 등 내가 인지하고 있던 사실이 진짜인가? 아닌가? 갑자기 무슨 이야기하는거지? 지금 내가 쓴 글처럼 두서없는 느낌이고, 무엇이 진짜인지 알 수 없는 불확실성도 보여주었다.

 

하지만 핵심은 ‘고도를 기다린다’인 것 같다. 엄청 괴롭고, 지루하고, 외롭지만 고고와 디디는 ‘고도’를 기다린다. 읽으면서 계속 드는 생각은 ‘그래서 고도가 뭔데?’였다. 계속 읽으려면 내 스스로 ‘고도’를 정의해야겠다고 생각했고 나는 이렇게 정의내렸다. ‘고도는 지루하고 힘든 삶을 버티게 하는 무언가겠구나. 그게 희망이든, 신이든, 사랑이든… 그럼 삶의 목적?’

 

그리고 독서모임에서 사람들과 토론을 했을 때, 모두 다르게 정의를 내렸고 다르게 책을 해석한다는 것을 알았다. 장화, 나무, 포조 등 여러가지에 대해서 각자 다르게 해석하다는 점이 재미있었다. 그렇게 생각할 수도 있구나?

 

혼자 읽을땐 ‘이게 뭔 개소리야?’, 같이 토론할땐 ‘그렇게 생각할 수도 있구나? 재밌다!’ 였다. 역시 열린 결말은 다른 사람과 토론할때 더욱 흥미진진해지는 것 같다~

 

그래서 책에서 얻은 것이 뭐냐고 묻는다면 (내맘대로지만)

‘내가 이렇게 힘든(?) 삶을 살고 버텨야 하는 삶의 목적을 찾아야 겠다. 그래야 덜잘 살아야겠다는 생각이 들겠지’..랄까?


사무엘 베케트의 '고도를 기다리며' 독후감 개요

작품 개요

'고도를 기다리며'(Waiting for Godot)는 1953년에 초연된 사무엘 베케트의 대표적인 부조리극입니다. 이 작품은 20세기 연극사에서 가장 중요한 작품 중 하나로 평가받으며, 부조리극의 대표작으로 현대 연극의 방향을 크게 바꾸었습니다. 두 명의 떠돌이가 '고도'라는 인물을 기다리는 단순한 상황을 통해 인간 실존의 의미와 삶의, 기다림의 본질을 탐구합니다.

작가 소개

사무엘 베케트(Samuel Beckett, 1906-1989)는 아일랜드 출신의 극작가, 소설가, 시인으로 1969년 노벨 문학상을 수상했습니다. 제임스 조이스의 영향을 받았으며, 실존주의 철학과 부조리극의 대표적 작가로 알려져 있습니다. 자신만의 독특한 문체와 허무주의적 세계관으로 현대 문학과 연극에 지대한 영향을 미쳤습니다. 그의 다른 주요 작품으로는 '말론 죽다', '이름 붙일 수 없는 것' 등이 있습니다.

등장인물

  1. 블라디미르(디디): 두 주인공 중 한 명으로, 상대적으로 더 지적이고 철학적인 인물입니다. 기억력이 좋은 편이며, 고도를 기다리는 상황에 의미를 부여하려고 노력합니다.
  2. 에스트라공(고고): 블라디미르의 동반자로, 실용적이고 현실적인 성격을 지녔습니다. 잠을 자주 자려 하고 꿈을 꾸며, 떠나고 싶어하지만 블라디미르와 함께 머물러 있습니다.
  3. 포조: 첫 번째 막과 두 번째 막에 모두 등장하는 부유한 인물로, 첫째 날에는 오만하고 지배적이지만, 둘째 날에는 눈이 멀고 의존적인 모습으로 변해 있습니다.
  4. 럭키: 포조의 종으로, 첫째 날에는 짐을 나르고 명령에 따라 춤을 추고 "생각"을 표현하며, 둘째 날에는 벙어리가 되어 있습니다.
  5. 소년: 고도의 심부름꾼으로, 각 막의 끝에 등장해 고도가 오늘은 오지 않을 것이나 내일은 반드시 올 것이라는 메시지를 전달합니다.
  6. 고도: 작품 내내 언급되지만 한 번도 무대에 등장하지 않는 인물로, 그의 정체와 의미는 의도적으로 모호하게 처리되어 있습니다.

줄거리 요약

'고도를 기다리며'는 두 개의 막으로 구성되어 있으며, 각 막은 매우 유사한 구조를 가지고 있습니다.

1막: 블라디미르와 에스트라공은 시골 길가의 나무 옆에서 고도를 기다립니다. 그들은 무의미한 대화와 놀이로 시간을 보내다가 포조와 그의 종 럭키를 만납니다. 포조는 럭키에게 춤을 추게 하고 "생각"하도록 명령합니다. 그들이 떠난 후, 한 소년이 나타나 고도가 오늘은 오지 않지만 내일은 올 것이라고 전합니다. 블라디미르와 에스트라공은 그 자리를 떠나려 하지만 결국 움직이지 않습니다.

2막: 다음 날, 블라디미르와 에스트라공은 같은 장소에서 다시 고도를 기다립니다. 나무에는 잎이 생겼습니다. 두 사람은 전날과 비슷한 대화와 행동을 반복하며, 이번에는 눈이 멀고 벙어리가 된 포조와 럭키를 다시 만납니다. 소년(전날의 소년과 같은 인물인지 불분명)이 다시 등장해 같은 메시지를 전합니다. 두 주인공은 자살을 고려하지만 실행하지 않고, 다시 떠나려 하지만 여전히 움직이지 않은 채 막이 내립니다.

책을 통해 생각해볼 점

  1. 존재의 의미와 부조리: 베케트는 의미 없이 반복되는 일상과 영원히 도달하지 못할 기다림을 통해 인간 존재의 근본적인 부조리함을 보여줍니다. 우리 삶에서도 이러한 부조리함은 없는지, 그리고 그것에 어떻게 대응하고 있는지 생각해볼 수 있습니다.
  2. 희망과 기다림의 본질: 고도라는 존재는 결코 오지 않지만, 주인공들은 계속해서 기다립니다. 이는 인간이 희망을 잃지 않고 살아가는 모습을 상징하며, 기다림 자체가 삶의 중요한 부분임을 시사합니다.
  3. 반복과 습관의 의미: 작품 속 인물들은 매일 같은 장소에서 비슷한 대화와 행동을 반복합니다. 이는 인간의 삶이 습관과 반복으로 이루어져 있으며, 그것이 때로는 위안이 되기도 하고 때로는 감옥이 되기도 함을 보여줍니다.
  4. 인간관계의 의존성: 블라디미르와 에스트라공은 서로에게 의존하면서도 떨어지고 싶어하는 모순적인 관계를 보여줍니다. 이는 인간관계의 복잡성과 상호의존적 본질을 반영합니다.
  5. 기억과 정체성: 인물들은 자신들의 과거나 전날 일어난 일을 확실히 기억하지 못합니다. 이는 기억이 어떻게 우리의 정체성을 형성하는지, 그리고 기억의 불확실성이 어떻게 존재의 불안정함으로 이어지는지를 생각하게 합니다.
  6. 인간 조건에 대한 성찰: 궁극적으로 이 작품은 무의미하고 불확실한 세계에서 인간이 어떻게 의미를 찾고 살아가야 하는지에 대한 질문을 던집니다. 삶의 의미가 외부에서 주어지는 것이 아니라 스스로 만들어가는 것일 수 있다는 실존주의적 관점을 제시합니다.

'고도를 기다리며'는 답을 주기보다는 질문을 던지는 작품으로, 각자의 삶과 경험에 비추어 다양한 해석이 가능합니다. 이 작품을 통해 우리 자신의 '기다림'과 삶의 의미에 대해 깊이 사색해볼 수 있을 것입니다.

'독후감' 카테고리의 다른 글

[독후감] 오즈의 마법사  (0) 2025.02.05
[독후감] 그리스인 조르바  (3) 2024.08.30
생체리듬의 중요성: 시간 제한 다이어트  (1) 2024.08.20

+ Recent posts