}

블로그 소개


*여러분들의 따듯한 댓글은 5%, 팔로우는 10% 블로그 포스팅 속도와 퀄리티를 높여줍니다.*

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

팔로어

다른 페이지로 이동


리눅스 독학 페이지 운영체제 독학 페이지 네트워크 독학 페이지 하드웨어 독학 페이지 프로그래밍 독학 페이지 보안 페이지

오스 페이지 다이어트 정보 페이지 게임 정보 페이지 인생 꿀팁


****사진을 클릭하시면 페이지로 이동할 수 있습니다!****

<===***===↓↓↓You can use translate on the chrome↓↓↓===***===>

2020년 7월 20일 월요일

서버 클라이언트란(마크 멀티 하는 법)매우 자세히!

안녕하세요 마무입니다.오늘은 일상생활에서 자연스럽게 쓰고 있지만 구체적으로 어떤 건지 모르는  "서버 클라이언트", "서버란", "클라이언트란", "마크 멀티하는 법", "마크 서버 여는법" 마인크래프트 서버 여는법"에 대해서 포스트하겠습니다.

이 글을 다 읽으시면

서버 클라이언트의 개념과 마인크래프트 멀티 하는 법

을 정확하게 아시게 될 겁니다.

*이 포스트를 완벽하게 이해하기 위해 필요한 선행 지식*
네트워크와 인터넷, 브라우저, URL : https://mamu2830.blogspot.com/2020/05/url.html
OSI 7계층, 프로토콜, 포트 : https://mamu2830.blogspot.com/2020/06/osi-7.html
***********************************************************


--목차--

1. 서버란, 클라이언트란(마인크래프트 멀티 하는 법으로 설명)
i)하드웨어로서 서버와 클라이언트, 마크 멀티 하는 법으로 설명
ii)소프트웨어로서 서버와 클라이언트 

2. 총 정리

---------

여기서 못 찾은 정보는
리눅스 독학 페이지 : https://mamu2830.blogspot.com/p/blog-page_13.html
운영체제 독학 페이지 : https://mamu2830.blogspot.com/p/blog-page_14.html
네트워크 독학 페이지 : https://mamu2830.blogspot.com/p/blog-page_15.html
에서 찾아보세요!





1. 서버와 클라이언트란(마인크래프트로 설명)



우리에게 "서버"라는 개념은 정말 친숙하면서도 되게 멀게 느껴지는 단어이지 않습니까? 우리들은 이 서버라는 용어를 일상속에서 아무렇지 않게 잘 사용하죠, '아 롤 서버 맛탱이 갔네~', '서버가 꽉 찼대', '서버 점검중이라는데?' 등등 처럼요~

하지만 그 "서버"라는게 구체적으로 어떻게 생겼는지, 작동하는지 아는 사람은 그렇게 많지 않으실 겁니다.


i)하드웨어로서 서버와 클라이언트






"서버"라는 단어를 들었을 때 이런 구체적인 이미지를 떠오르는 사람이 있는가 하면, 아마 대다수는




'서버가 서버지...'  하며 이렇게 멍을 때리실텐데요!





앞서 말한 것처럼 이 이미지가 사실 실제 "서버"가 맞습니다!만, 이런 이미지만 떠올린다신면 너무 "서버"라는 것을 너무 큰 스케일로만 생각하시는게 아닌가 싶습니다.

왜냐면 "서버(Server)"라는 건 꼭 위 사진처럼 엄청나게 좋은 장비의 많은 컴퓨터들의 집합체들만 말하는게 아니라 그냥 다른 컴퓨터들이 접속하는 컴퓨터면 "서버"이기 때문입니다.

당신의 집에 있는 100만원 짜리 컴퓨터도 서버가 될 수 있고, 20만원 짜리 컴퓨터도 서버가 될 수 있으며, 당신의 노트북, 스마트폰도 서버가 될 수 있습니다. 물론 너무 성능이 안 좋은 컴퓨터는 서버역할을 제대로 수행하기 힘들겠지만요~

이 때 "다른 컴퓨터(서버)"에 접속하는 컴퓨터들을 바로 "클라이언트(Client)"라고 합니다!
"Client(서비스를 제공받는 사람이나 손님)"이란 영어 뜻처럼 다른 컴퓨터(서버)에 접속해 그 서버에서 제공하는 서비스를 이용한다 해서 "클라이언트"라고 부르는 겁니다.

이렇게만 말하면 당연히 와닿지 않으실테니 이 "서버""클라이언트"라는 것을 쉽게 "마인크래프트"라는 게임을 "멀티플레이"할 때 하는 과정을 통해 설명해보겠습니다!

친구들과 마크 멀티모드를 할 때 가장 먼저 정하는 게 무엇이었습니까?
바로!

1. 마크 서버 담당을 할 컴퓨터를 정한다.

멀티플레이를 할 경우 접속하는 클라이언트들의 데이터를 포함해 모든 데이터들은 서버 컴퓨터에 저장이 되며, 대부분의 부하가 서버에게 부담되기 때문에 가장 컴퓨터 성능이 좋은 사람이 서버를 담당하는게 좋을 것입니다.

여기서 우리는 "서버"는 디스크든 CPU든 성능이 좋은 하드웨어를 갖춰야한다는 것을 알 수 있고, 서버 컴퓨터의 디스크가 맛탱이가 가버리면 모든 클라이언트들의 데이터도 사라지기에 "서버"를 구축할 때는 백업기술인 "RAID"나 "LVM"기술이 필수적으로 쓰여야 함을 알 수 있습니다.(물론 친구들과 즐기는 수준의 서버는 백업기술이 딱히 필요 없겠죠 ㅎㅎ)

하지만 친구들과 즐기는 수준이 아닌 실제로 매우 큰 회사인 경우 수 만, 수십 만 혹은 그 이상의 어마어마하게 많은 사람들이 동시에 서버(컴퓨터) 접속하기에 "서버"들은 컴퓨터 한 대론 부족해서 수 많은 컴퓨터들을 동시에 사용하며 그 수 많은 컴퓨터들을 쉽게 보관하기 위해



이렇게 생긴 "랙(Rack)"에 넣어 사용을 합니다. 그리고 서버용 컴퓨터뿐만 아니라 라우터, 스위치도 여기 "랙"에 넣어서 사용을 합니다. 그리고  "스위치"로 그 서버 컴퓨터들을 연결을 하는 것이죠. 

또한 서버는 정말 많은 유저들이 계속 생성하는 데이터들을 저장하기 위해 저장공간이 어마어마하게 필요하므로, 보통 하드디스크와 같은 저장장치들을 컴퓨터 내부가 아니라 따로 랙에 넣어서 사용을 합니다. 

그래서 이렇게 컴퓨터, 스위치, 라우터, 저장장치들을 랙에 넣은 모습들이 바로!




이 모습이 되는 것이죠!


ii)소프트웨어로서 서버와 클라이언트 


2. 서버를 열 사람은 마크 서버를 열어주는 서버 프로그램(버킷)을 다운받고, 서버 옵션을 설정하고 실행한다.

서버역할을 할 때 필요한 것이 컴퓨터(하드웨어)만 있는게 아닙니다. 당연히 서버를 열어주는 서버 프로그램이 필요합니다! 웹 서버를 운영할려면 웹을 만들어주고 유지해주는 웹 서버 프로그램이 필요하고 메일 서버라면 메일들을 관리 및 전송해주는 메일 서버 프로그램이 필요하듯이 말이죠!

그래서 마크 멀티플레이를 할 때도, 마크 서버를 열어주고 관리해주는 서버 프로그램인 "버킷"을 다운 받아 사용했던 겁니다. 이렇듯 실제 서버에서도 서버용 프로그램이 따로 있고, 사용한다는 겁니다.


3. 마크 서버 설정파일 "server.properties"을 메모장 형태로 열어서 필요한 설정을 적는다(자신의 IP와 포트번호{마크 기본 포트번호는 25565로 건들 필요는 보통 없다)

여러분들이 이제 저와 같이 리눅스 1급 범위로 "서버"를 직접 만들고 운영해보시면 아시겠지만 "모든 서버 프로그램"들에겐 "설정 파일"당연히! 있습니다. 서버를 어떻게 열고, 누구를 허용하고 밴하고 등등 말 그대로 서버의 옵션을 설정할 수 있는 "설정 파일"이죠.
그리고 보통 "설정파일"에 필수적으로 서버 컴퓨터의 IP 서버프로그램에게 할당할 포트번호를 적어야합니다.

물론 기본적으로 "유명한 프로토콜을 사용하는 서버 프로그램(메일서버, DNS, 웹서버 등등)"들은 대부분 사용하는 포트번호가 정해져 있습니다. 프로토콜 포스트에서도 다뤘듯이 이런 유명한 프로토콜이 사용하는 포트번호를 "well-known-port"라고 했죠.

IP, 포트번호에 대해서 제대로 알고싶으시면 
https://mamu2830.blogspot.com/2020/06/osi-7.html에서 "6. 전송계층, TCP, UDP, 포트"
를 봐주세요!

그래서 이렇게 유명한 서버 프로그램들은 대부분 "설정파일"포트번호를 안 써도 이미 대부분 "기본 port번호"적혀있습니다만 보통 외부에 알려지면 안되거나 하는 경우 포트번호는 임의로 설정해야 합니다.

그래서 실제로 친구들끼리 마크서버를 운영해 사용할 때도, 정말 마크서버를 다른 사람이 접근 못하게 하고 싶으면 포트번호를 바꾸면 됩니다.(IP번호는 바꾸기 힘드니까요)

마크 서버를 열 때는 당연히 공인 IP번호를 써야 하므로, 공인 IP는 보통 각 집마다 기껏해봐야 4개정도밖에 없을 겁니다. 그리고 IP번호는 쉽게 바꿀수가 없죠. 하지만 포트번호는
1024~65535번중 하나를 사용할 수 있습니다.(만약 포트번호가 겹치면 다른 걸로 바꾸면 됨)

그래서 만약 원래 마크 기본 포트번호는 25565인데 35565로 바꾼경우, 서버의 포트번호를 모르는 사람들인 경우 대략 1/64511 확률을 기대하며 포트 번호를 계속 바꿔 적으며 뚫기 노가다를 해야죠.

4. 서버 애플리케이션을 실행하여 서버를 연다

어쨌든 마인크래프트 서버프로그램도 당연히 "server.properties"라는 서버 설정파일이 있고,  대부분 마크 서버는 서버프로그램을 처음 실행하면 자동으로 생성됩니다.

한번 서버를 실행했다가 끄고 생성된 "server.properties"파일을 메모장 형태로 열어서 서버장의 IP와 포트번호를 적고 저장하면 기본적인 서버를 열 준비는 끝납니다.

5. 다른 친구들이 인터넷에서 내 컴퓨터(서버)를 찾을 수 있게 내 IP와 내 마인크래프트 서버에 접속할 수 있게 마크 서버 포트번호를 알려준다.

기본적으로 서버에서 사용하는 서버 프로그램이 있으면, 서버에 접속하기 위한 클라이언트들이 사용하는 "클라이언트 프로그램"이 있습니다.

광할한 인터넷에서 통신을 한다는 것은 정말 많은 규칙들을 지켜서 통신을 하는 것인데, 이런 걸 개개인이 하는 건 불가능합니다. 그래서 단순히 "IP"와 "포트번호"만 알면 서버와 통신을 쉽게 해주는 프로그램을 "클라이언트 프로그램"이라고 합니다.

다들 리그오브레전드 아실겁니다. 그 리그오브레전드 게임을 다운 받을 때 뭐라고 돼 있는지 기억나십니까?




그렇습니다. "클라이언트"입니다.
이처럼 대부분의 온라인게임은 전부 서버에 접속해 실시간으로 하는 게임으로, 유저들이 서버에 접속하기 위한 "클라이언트 프로그램"이 필요합니다.

같은 맥락으로 마인크래프트에서도 서버에 접속하기 위한 "클라이언트 프로그램"기능이 필요하겠죠? 하지만 걱정하지 마세요, 마인크래프트는 프로그램 자체에 클라이언트 프로그램 기능이 있으니까요!



멀티플레이 들어가서




서버 주소에 "IP번호:포트번호" 이렇게 쓰면 됩니다
ex)172.153.123.34:25565 또는 포트번호는 보통 25565이므로 172.153.123.34이렇게 아이피만 쓰면 됩니다.

6. 기본적으로 허용되지 않는 외부의 침입을 막는 방화벽 기능을 끈다.

우리 컴퓨터들은 기본적으로 허용되지 않은 외부에서의 접속을 막는 방화벽이 있습니다.
그래서 우리는 보통 서버를 설정할 때 "방화벽을 꺼라"라고 하죠. 물론 자신의 IP가 별로 잘 안 알려져 있고, 친구들끼리만 할 때는 괜찮습니다만, 사실 방화벽 자체를 끄는건 너무나 위험한 일입니다.

그래서 더 안전한 방법은 방화벽 설정에 들어가 "Java(TM) Platform SE binary"의 인바운드(외부에서 내부로 들어오는) 접속을 허용하거나, 마인크래프트 서버프로그램이 사용하는 포트번호를 인바인드 규칙에 등록을 하는겁니다.

7. 친구들은 마크 서버추가를 통해 서버의 IP를 적고 접속한다.

서버가 버킷을 이용해 서버를 열면, 이제 아까 말한 것처럼 IP와 포트번호를 쓰면 끝입니다.

이렇게 자연스럽게 마크 멀티프레이를 하는 방법을 설명했지만, 사실 이 7가지 과정이 마크뿐만 아니라 모든 서버에 공통적으로 해당되는 과정입니다.

모든 사이트에 접속하는 과정은 사실 각 서버들이 "웹 서버 프로그램"을 이용해 사이트를 열고, 우리는 크롬이나, 익스플로러, 파이어폭스 등등 브라우저로 불리는 "웹 클라이언트 프로그램"으로 사이트에 접속을 하는 것이죠.



2. 총 정리


1. 다른 컴퓨터에 접속하는 컴퓨터를 "클라이언트"라고 하고, 다른 컴퓨터들이 접속하는 컴퓨터를 "서버"라고 한다.

2. 수 많은 사람들이 접속하는 것이 서버이므로 서버의 하드웨어 구조는 일반 컴퓨터와 다르며 라우터, 스위치, 저장장치와 같이 "랙"이라는 곳에 꽂아서 사용한다.

3. 서버를 열 때는 "서버 프로그램"이 필요하며, 이런 서버 프로그램에 쉽게 접속할 수 있게 클라이언트가 사용하는 프로그램을 "클라이언트 프로그램"이라고 한다.

4. 마크 멀티를 하는 방법은 
i) 컴퓨터가 가장 좋은 사람이 서버를 열기로 한다.

ii) 마크 서버를 열 컴퓨터에 "마크 서버 프로그램(버킷, spigot등등)"을 설치하고 실행한다.

iii) 마크 서버 프로그램을 실행해 생성된 "server.properties"마우스 우클릭으로 메모장으로 열어 자신의 ip를 적는다(기본 포트번호 25565에서 다른 걸로 바꾸고 싶으면 바꿔도 됨)

iv) 서버를 여는 사람은 방화벽을 끄거나, 방화벽 설정의 인바운드 규칙에 Java(TM) Platform SE binary을 클릭해 연결허용을 하거나, 자신이 "server.properties"에 적은 마크서버의 포트번호를 인바운드 규칙에 등록한다.

v) 서버에 접속할 친구들에게 IP를 알려준다(포트번호를 바꿨으면 바꾼 포트번호도 알려줘야함)

vi) 친구들은 멀티플레이 하기에 가서 마크 서버를 연 컴퓨터의 IP를 적는다(포트번호도 바꿨으면 포트번호도 알려줘야하고 "IP:포트번호"이렇게 적어야한다.)

vii) 재밌게 마크 멀티를 한다.





오늘은 서버와 클라이언트 정체와 마인크래프트 멀티 하는 법에 대해서 포스트해봤습니다.
도움이 되셨다면 좋아요, 팔로우 클릭, 따뜻한 댓글 부탁드립니다! 저에게 아주 큰 힘이 되어 포트스 퀄리티를 상승시켜줍니다!

그럼 다음에는 더 좋은 퀄리티의 포스트로 찾아뵙겠습니다!

댓글 2개:

  1. 정리된 글 잘 읽었습니다.
    집내에서 공유기를 쓰는 경우 PC의 IP가 공인IP가 아니라 사설IP를 할당 받기 때문에,
    공유기에서 Port-forward 설정이 추가로 있어야 마인크래프트 Multi가 되는게 아닌가 싶습니다.

    답글삭제
    답글
    1. 네 맞습니다. 공유기를 사용할 경우엔 공유기 설정에서 port-forwarding을 해줘야 외부에서의 접속이 가능합니다.

      삭제

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!

* 바쁜 개인 일정으로 댓글 답변이 많이 느립니다 *