내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

1. 시작 -> 설정 -> 프로그램 기능

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

2. windows 기능 켜기/끄기

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

3. 인터넷 정보 서비스

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

4. 컴퓨터 ip 주소 확인

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

5. 주소 입력

http://{ip주소}:8080/{실행 html문서}

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

6. 실행 및 데이터베이스 확인

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

7. 외부 접속하기

위 과정은 내부 접속망에서만 가능함으로 공유기 외부에서 접속할려면 고유 ip와 포트키를 알아야한다.

[포트키 및 ip 확인방법](html = open(local_filename,'rt',encoding = 'UTF8') print(type(html)) content1 = html.read() print(html, type(content1), content1[:300], sep='\n\n'))

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

현재 망이 closed되어있기 때문에 외부 접속이 불가능하다

Network

[Network] 내 PC를 서버로 만들기 2 - IP(Internet Protocol)

날씨는 우중충 2021. 4. 4. 10:19

복습

전 시간에 저희는 "네트워크에는 네트워크 장치들이 있고 이를 노드라 부르고 이들은 매체를 이용해 서로 연결된다. 그리고 이들을 구분하기 위해서 IP를 사용한다"라고 배웠습니다. 이번 시간에는 IP에 대해서 알아보겠습니다.


Internet Protocol

인터넷 프로토콜(IP, Internet Protocol)은 송신 측과 수신 측이 네트워크에서 정보를 주고받는 데 사용하느 정보 위주의 규약(Protocol)입니다. OSI 네트워크 계층에서 주소 지정과 패킷 분할 및 재조립 기능을 담당합니다.

여기서 IP가 OSI 7계층에서 어디에 속하는지 패킷을 어떻게 분할하고 재조립 하는지는 몰라도 됩니다. 저희는 IP가 주소 지정 기능을 담당한다는 것에 초점을 맞추겠습니다.


IP version

IP에는 대표적으로 2가지 버전이 있습니다.

  1. IPv4
  2. IPv6

눈으로 직접 내 컴퓨터에 설정되어 있는 IP 주소를 보겠습니다.

먼저 명령 프롬프트(cmd)창을 켭니다

켜는 방법 * [___] 로 감싸진 문자는 키입니다 *

  • [Window] + [R] -> cmd 입력 -> [Enter] 입력
  • [Window] + [S] -> cmd or 명령 프롬프트 입력 -> [Enter] 입력

그럼 검은색 창이 뜹니다. 여기서 명령어를 입력합니다

C:\Users\User> ipconfig

해당 명령어를 입력하면 본인 PC의 IP 주소가 나타납니다.

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi
ipconfig 명령어 결과

위와 같이 링크-로컬 IPv6 주소와 IPv4 주소가 둘다 설정되어 있는 것을 볼 수 있습니다.

여기서 보면 IPv4 주소는 짧고 보기 편한데 IPv6 주소는 길고 보기 불편하게 되어 있습니다. 이유는 IPv4는 IP의 버전 4라는 뜻으로 예전에 만들어진 주소 체계입니다. 하지만 갈 수록 기술이 발전하면서 IP주소가 필요한 기기들이 많아져 더 많은 IP주소를 담고있는 주소체계가 필요 했고, 이후에 나온것이 IPv6입니다.


IPv4

IPv4는 32비트의 길이를 가지고 있고, 8비트씩 잘라 각 4자리를 .(점)으로 구분합니다. 한자리마다 올 수 있는 범위는 0~255까지 입니다(2^8 = 255). IPv4는 약 42억개의 주소를 부여할 수 있지만 2011년 2월부터 주소가 모두 소진되었다고 합니다.

"근데 어떻게 지금까지 사용 될 수 있을까?"에 대해 궁금해 하실 분들도 있을텐데, 이에 대한 내용은 뒤에 Private IP, Public IP를 설명할 때 어떻게 주소 고갈을 해결 했는지 알 수 있습니다.

위의 아이피 주소에서 192.168.0.3은 "192", "168", "0", "3" 이렇게 총 4자리로 구분됩니다. 사람이 보기 편하게 10진수로 나와 있지만 실제 컴퓨터는 2진수로 인지합니다. 해당 주소를 2진수로 만들어 보겠습니다(뒤에서 서브넷 마스크를 이해하기 위해서는 필수). 원래10진수를 2진수로 만드는 공식이 있지만 편하게 할 수 있는 방법을 알려 드리겠습니다.

여기서 2진수는 컴퓨터가 이해하기 위해서 0과 1로만 이루어진 숫자 체계입니다. 저희한테는 0~9까지의 숫자로 이루어진 10진법이 익숙하지만 컴퓨터에서는 2진수를 사용합니다.

일단 계산기를 켭니다.

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi
Window 10 계산기

여기서 프로그래머 탭으로 이동해 줍니다. 그러면 아래 사진과 같이 화면이 뜹니다.

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

여기서 1번 구역은 위에서부터 16진수(HEX), 10진수(DEC), 8진수(OCT), 2진수(BIN)입니다. 저흰 10진수와 2진수만 보도록 하겠습니다.

2번 구역은 실제 2진수의 숫자를 뒤집을 수 있습니다. 1로 만들고 싶은 곳을 누르면 1로 바뀌고 다시 누르면 0으로 바꿀 수 있습니다.

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

그리고 위에서 말한 1번 구역에 해당 2진수가 각 진수별로 어떻게 표현 되는지 볼 수 있습니다. 지금 1011 0000은 10진수로 176이라고 나와 있네요.

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

그럼 이 계산기의 도움을 받아서 192.168.0.3를 2진수로 만들어 보겠습니다. 위에서 각 자리는 8비트로 되어 있다고 했기 때문에 8개의 비트만 사용하도록 하겠습니다.

일단 192를 먼저 2진수로 만들어 보겠습니다. 1100 0000이 192라는것을 알 수 있습니다. 192는 맨 앞비트 2개만 바꾸면 되기 때문에 쉽게 됐지만 숫자가 복잡하면 만들었다 풀었다 하면서 조합하기가 힘듭니다. 그래서 여기서 쉽게 10진수를 찾는 방법을 알려드리겠습니다.

내 컴퓨터 서버 만들기 - nae keompyuteo seobeo mandeulgi

일단 각 자리마다 자리값을 줄 수 있습니다. 아래 표를 보시면 맨 앞쪽 비트부터 자리값이 128, 64, 32 ... 2씩 나누면서 내려가고 있습니다.

0 0 0 0 0 0 0 0
128 64 32 16 8 4 2 1

이번엔 저 표를 이용해서 168을 2진수로 만들어 보겠습니다.

일단 168보다 작으면서 제일 큰 자릿수를 찾습니다. 지금은 128이 제일 크네요. 여기서 168에서 128을 빼고 해당 자리를 1로 만들어 줍니다

1 0 0 0 0 0 0 0
128 64 32 16 8 4 2 1

이제 168-128을 하면 40이 남네요. 다음 큰 자릿수가 64인데, 현재 64보다 작으니 넘어가 줍니다. 다음은 32보다 현재 수가 크기때문에 32를 빼고 다시 해당 자리를 1로 바꿔줍니다

1 0 1 0 0 0 0 0
128 64 32 16 8 4 2 1

다시 40-32를 하면 8이 남습니다. 16보다 작기 때문에 16은 두고 8은 딱 맞습니다. 그럼 또 8을 빼주고 해당 자리를 1로 만들어 줍니다

1 0 1 0 1 0 0 0
128 64 32 16 8 4 2 1

이제 남은 숫자가 0이 되면 2진수로 변환이 끝났습니다.

168을 2진수로 변환하면 1010 1000이 되는군요. 나머지 자릿수도 똑같이 2진수로 만들어 주면

192.168.0.3 = 1100 0000 . 1010 1000 . 0000 0000 . 0000.0011 이 되네요.

IPv4 요약

  • IP의 4번째 버전
  • 32비트로 이루어져 있고 각 자리는 8비트로 이루어짐
  • 각 자리를 .으로 구분하고 총 4자리로 이루어짐(각 자리를 옥텟이라고 부르기도 합니다)
  • 각 자리는 0~255까지의 10진수로 표현.(2^8 = 255)
  • 컴퓨터는 각 자리를 2진수로 이해. 변환 하는 방법을 알아야 함(서브넷 마스크를 이해할 때 필요함)
  • 총 42억개의 주소를 부여할 수 있지만 2011년에 이미 고갈
  •  

IPv6

IPv6는 128비트의 길이를 가지고 있고, 16비트씩 잘라서 총 8자리로 구분 됩니다. 여기서 16비트를 또다시 16진수 4자리로 끊어서 표현합니다. 16진수는 0~9까지의 숫자와 A~F까지의 영문자를 사용합니다. 때문에 처음 보시는 분들은 읽기 힘들다는 단점이 있습니다.

IPv4에서는 각 자리를 .으로 구분 했지만 IPv6에서는 각 자리를 :로 구분합니다. 16진수도 각 자리를 2진수로 만들 수 있지만 저희에게 지금 당장 필요한 것은 아니기 때문에 필요할 땐 아까 알려드린 계산기로 변환하거나 따로 16진수를 2진수로 변환하는 방법에 대해 공부하시면 좋을 것 같습니다.

IPv6는 3.4 x 10^38개(340,282,366,920,938,463,463,374,607,431,768,211,456개)의 주소를 부여 할 수 있습니다. 이는 폭발적으로 늘어나는 인터넷 사용에 대비해 만들어 진 것이기 때문에 상당히 많은 장치들에게 주소를 부여 할 수 있습니다.

저희에게는 IP의 기능중 주소 부여 기능만 당장 이해하면 되기 때문에 IP에 대한 소개는 이쯤 하고 다음 글에서 네트워크를 구분하는 서브넷 마스크와 각 장치별로 IP주소를 부여하는 방법에 대해서 알아보겠습니다.