서버란 무엇일까?
우리가 게임을 하면서 '서버'라는 단어는 참 많이 접합니다.
다들 서버라고 하면 '여러 사람이 한 게임에 함께 접속할 수 있는 것'이라고 짐작하고 계실 텐데요,
직접 서버를 열기 위해서는 이 용어가 정확히 어떤 의미인지 이해해야 합니다.
우리가 게임에 접속하기 위해서는 컴퓨터에 게임 프로그램을 설치해야 합니다.
만약 싱글 플레이 게임이라면 서버가 필요 없죠. 컴퓨터가 인터넷에 연결되어 있지 않아도 플레이가 가능할 겁니다.
하지만 만약 여러 사람이 함께 플레이하는 게임이라면요?
일반적으로 모든 플레이어의 컴퓨터가 서버에 접속하고, 서버가 모든 플레이어의 데이터를 처리하여 각 플레이어에게 전송하는 방식으로 작동합니다.
서버란, 이러한 역할을 하는 컴퓨터를 의미합니다.
서버 전용 컴퓨터가 있기도 하지만, 여러분이 사용하고 있는 컴퓨터에 서버 역할의 프로그램만 설치한다면 그 컴퓨터는 서버 역할을 할 수 있는 것이죠.
특정한 하드웨어를 필수적으로 의미하는 것은 아니며, 컴퓨터의 역할에 따라 서버 혹은 클라이언트라고 나눕니다.
서버가 왜 필요할까?
그렇다면 같은 게임을 하는 컴퓨터끼리 직접 1:1로 접속하면 되지 않을까요?
왜 굳이 서버라는 것을 통해 접속하도록 하는 걸까요?
여기엔 여러 이유가 있습니다.
1. 접속 정보의 중앙 관리
서버 없이 플레이어들이 게임에 접속하는 것은 마치 도서관에 사서가 없는 것과 같습니다.
내가 찾는 책이 도서관에 비치되어 있는지, 누군가 대여해가지 않았는지를 알고 싶다면 사서에게 문의해야 하는데요,
만약 사서가 없다면 일일이 책을 찾아다닐 수밖에 없고, 책이 없더라도 누가 이미 대여를 한 건지, 애초에 도서관에 책이 비치되어 있지 않았는지를 알 수가 없죠.
2. 보안과 개인정보 보호
최근 리그오브레전드의 DDoS 사태를 알고 계신가요?
완전히 동일한 예시는 아니지만, 해당 사건은 플레이어의 IP를 비정상적인 방법으로 알아내 해당 IP에 DDoS를 발생시켜 게임을 방해하는 공격이었습니다.
서버가 중계 역할을 하지 않고 플레이어들이 직접 연결될 경우, 이러한 보안 위협에 취약해집니다.
서버는 이러한 정보를 보호하고, 필요한 경우 암호화하여 플레이어의 안전을 강합니다.
3. 게임 무결성의 유지
서버는 게임 내에서 발생하는 모든 활동을 검증하고, 클라이언트가 정상적인 프로그램인지 판단합니다.
예를 들어, 어떤 플레이어의 골드가 원래 100이 있어야 하는데 비정상적인 방법으로 10000으로 늘렸다고 가정합시다.
서버에서는 이를 검증하고 해당 플레이어의 값을 정상값으로 돌리거나, 혹은 게임에서 추방시키는 등의 동작을 할 수 있습니다.
서버가 없다면, 이러한 부정행위를 감지하고 제어하기 어렵습니다.
마인크래프트 서버를 구동해 보자
그렇다면 이제 서버를 한 번 구동해 볼까요?
이번 시간에는 외부에서 접속하는 것은 아니고, 내 컴퓨터 안에서 서버도 구동하고
마인크래프트를 열어 내 컴퓨터에서 구동한 서버에 접속도 해보도록 합시다.
본 강의는 자바 에디션을 기준으로 설명합니다.
자바 설치
마인크래프트 서버는 자바(JAVA)라는 프로그래밍 언어로 만들어져 있으며,
때문에 JRE(자바 실행 환경)라는 프로그램을 설치해야 서버 프로그램을 실행할 수 있습니다.
자바가 현재 컴퓨터에 설치되어 있는지 먼저 확인해 봅시다.
윈도우 시작 창에서 'cmd'를 검색해 명령 프롬프트를 실행합니다.
실행했다면 검은 창에 하얀 텍스트가 나오는데요, 여기서 다음과 같이 입력해 봅시다.
java -version
만약 자바가 설치되어 있다면 위와 같이 몇 버전이 설치되어 있는지 나타납니다.
여러분은 아직 자바가 설치되어 있지 않으므로, 에러 메시지가 출력되거나 아무런 메시지가 나오지 않을 수 있습니다.
설치되지 않았다면 다음 과정을 통해 자바를 설치합니다.
먼저 어떤 버전의 마인크래프트를 실행할 지에 따라 설치할 자바의 버전이 달라집니다.
글 작성일(2024-04-16) 기준, 마인크래프트 버전에 따른 자바 버전은 다음과 같습니다.
마인크래프트 버전 | 자바 버전 | 다운로드 링크 |
1.16.5 이하 | Java 8 | 바로가기 |
1.18 ~ 1.20.4 | Java 17 | 바로가기 |
1.20.5 이상 | Java 21 | 바로가기 |
이번 예시에서는 1.20.4 버전을 기준으로 할 것이므로, Java 17 버전을 설치합니다.
바로가기를 클릭 후 아래로 쭉 내려보면 Windows 전용 다운로드 링크가 나타납니다.
본인이 사용 중인 운영체제에 따라 32비트일 경우 x86, 64비트일 경우 x64의 JRE(.msi)를 다운로드합니다.
윈도우 10 이상이라면 x64로 설치하면 됩니다.
다운로드 후 실행하면 다음과 같은 설치 창이 나타납니다.
설치 설정에서 다음과 같이 Set JAVA_HOME variable을 체크해 줍니다.
다음과 같이 X가 드라이브로 바뀌었다면 정상적으로 설정한 것입니다.
Next -> Install을 클릭해 설치를 완료합니다.
설치가 완료되었다면 다시 한번 자바 버전을 체크해 봅시다.
명령 프롬프트가 열려있다면 한번 닫고 다시 열어주세요. 새로 열지 않으면 변경된 내용이 반영되지 않습니다.
java -version
자바 버전이 정상적으로 출력된다면 제대로 설치된 것입니다.
마인크래프트 서버 실행
이제 본격적으로 마인크래프트 서버 프로그램을 실행해 봅시다.
마인크래프트는 서버 프로그램의 종류가 아주 다양합니다.
마인크래프트의 개발사인 모장에서 직접 제공하는 서버 프로그램도 있지만, 플러그인, 모드 등 새로운 기능을 추가하거나 각종 최적화 문제를 해결하기 위해 많은 사람들이 서버 프로그램을 새롭게 만들었습니다.
우리는 그중 가장 널리 쓰이고 안정적인 버전인 Paper(페이퍼) 서버 프로그램을 이용합니다.
더 다양한 서버 프로그램은 추후에 다룰 예정입니다.
먼저 페이퍼를 다운로드합니다.
사이트 좌측에서 다운로드하고자 하는 마인크래프트 버전을 선택하고, 우측 목록에서 가장 위에 있는 항목을 다운로드합니다.
다운로드 시 다음과 같이 .jar 확장자를 가진 파일이 다운로드됩니다.
다운로드한 jar파일을 새 폴더를 만들고 넣어줍니다.
그리고 같은 폴더에 파일을 하나 만들어줄 건데요, 방금 다운로드한 jar 파일을 자바로 실행시켜 주는 파일입니다.
메모장을 켜시고 다음과 같이 작성해 주세요.
java -jar paper-1.20.4-484.jar
여기서 paper-1.20.4-484.jar 부분에 방금 다운로드한 jar 파일의 이름을 넣어주셔야 합니다.
작성 후 'startup.bat'이라는 이름으로 저장해 줍니다.
확장자가 .txt가 아닌 .bat 이어야 합니다.
정상적으로 작성되었다면 startup.bat을 실행했을 때 다음과 같이 나타나면서 폴더에 파일들이 생성됩니다.
파일들이 생성되었다면 eula.txt 파일을 열어보세요.
eula=false 의 false를 true로 변경해 주고 저장합니다.
eula를 true로 변경한다는 것은 마인크래프트 사용 약관에 동의한다는 것과 동일한 의미입니다.
예를 들어, 폭력적인 컨텐츠나 사기 행위 등은 마인크래프트 서버로 운영할 수 없는 등의 내용이 포함되어 있습니다.
저장 후 다시 startup.bat을 실행하면
다음과 같이 Done 문구와 함께 서버가 실행되며
이렇게 서버를 모니터링할 수 있는 창도 나타납니다.
여기까지 왔다면 서버가 정상적으로 실행되었다는 뜻입니다!
마인크래프트 서버 접속
이제 마인크래프트를 실행해 서버에 접속해 볼까요?
실행한 서버와 같은 버전의 마인크래프트를 실행합니다.
메인 화면에서 멀티플레이를 클릭합니다.
아래의 '직접 연결'을 클릭합니다.
'localhost'라고 입력 후 서버 참여를 누릅니다.
여기서 localhost는 현재 마인크래프트를 실행하고 있는 컴퓨터(자기 자신)를 의미합니다.
서버에 정상적으로 접속되었습니다!
서버 프로그램에서도 다음과 같이 접속 로그를 확인할 수 있습니다.
정리하기
오늘 강의를 통해 우리는 서버의 기본 개념과 마인크래프트 서버의 구동 방법에 대해 알아보았습니다.
핵심 포인트를 다시 한번 정리해 봅시다.
1. 서버는 컴퓨터의 역할이다
- 우리가 흔히 서버라고 하는 것은 서버 역할을 하는 컴퓨터입니다.
- 우리가 사용하는 가정용 컴퓨터도 서버 프로그램만 있다면 서버가 될 수 있습니다.
- 서버는 정보의 중앙 관리, 보안 유지 및 게임 무결성 보장과 같은 중요한 역할을 수행합니다.
2. 마인크래프트 서버 구동
- 마인크래프트는 자바 언어로 구성되어 있으며, 실행을 위해 JRE를 설치해야 합니다.
- Paper를 이용해 서버를 구동하는 방법을 간단히 알아보았습니다.
- 서버 프로그램과 게임을 한 컴퓨터에서 동시에 실행할 수 있다는 것을 알았습니다.
다음 강의에서는..
오늘 우리는 서버를 우리 컴퓨터에서 직접 구동을 해보았습니다.
그런데 만약 서버를 24시간 열고 싶다면 어떻게 해야 할까요?
다음 강의에서는 이를 가능하게 해 주는 서비스인 '호스팅'이 무엇인지 알아보도록 하겠습니다.
'강의 > 마인크래프트로 배우는 서버' 카테고리의 다른 글
강의 소개 및 목차 (0) | 2024.04.16 |
---|