그때 당시 서버를 운영했을 때의 마인크래프트 버전이 1.7.2였다. 그리고 1.8 버전 대가 업데이트되기 시작하여 서버도 그에 맞게 업데이트를 진행하려 했다.
하지만, 가장 잘 쓰면서도 유용하고 서버에 적용 중인 모든 플러그인 중, 가장 핵심적인 플러그인인 VariableTriggers의 업데이트 소식이 점차 뜸해지는 소식을 접하였다. 결국, 얼마 안 있어 특정 버전대에서 지원이 끊기고 말았다. 차라리 업데이트 지원을 중단한다는 공지를 해주면 모를까. 언젠간 업데이트를 해주겠다는 믿음으로 서버 버전을 그대로 유지해왔지만, 반가운 소식은 들려오지 않았다.
서버의 대부분 기능이 VariableTriggers 플러그인에 너무 의존한 상태이기 때문에, 해당 플러그인이 없다면 버전 업데이트하기가 어려울 정도였다. 물론, 이와 유사한 플러그인이 존재하였지만(Skript나 CommandHelper 같은 플러그인이 있던 기억이 난다.) VariableTriggers에 익숙했던 필자는 또 다른 플러그인을 학습할 용기가 없었으며, 학습 난이도가 비교적 높아 부담스러웠다. 또한 서버에 구현한 기능이 많았기 때문에, 이를 새로운 플러그인으로 다시 구현해야 된다는 생각에 치를 떨기도 하였다.
사실, 해결 방법은 존재했다.
금액을 들여 전문 인력을 섭외하거나 함께 서버를 발전시킬 인재를 모집하면 된다. 전자일 경우, 그때 당시엔 필자는 고등학생이어서 돈이 없었기에 거의 불가능하였다. 후자의 경우엔 매우 도움 되는 방법이지만, 상당히 큰 위험도가 존재하였다. 그 이유는, 그때 당시엔 마인크래프트 유저의 연령대가 낮았으며 구두로 계약 같은 약속을 하며 작업을 진행하기 때문이다. 즉, 책임 문제이다.
관리자라는 명분으로 서버 내에서 날뛰거나 서버를 폭파시키고, 권력 남용으로 유저를 괴롭히는 등 서버를 망치는 행위를 수도 없이 많이 봐왔기 때문이다. 그렇기에 필자는 본인을 제외한 다른 관리자들에겐 믿음과 신뢰를 확신한다는 보장이 없었다. 그래서 혼자서 서버를 만들어 왔으며, 운영 또한 혼자서 다 진행해왔었다. 혼자서 작업하다 보니 그만큼 할 일도 많았고, 생각해야 할 것들도 많았으며 학습해야 할 지식이 산더미였다.
마인크래프트 버전은 나날이 업데이트되고 있지만, 서버의 버전은 1.7.2에 머물렀으며 서버를 즐기던 유저의 기대 또한 매우 낮아진 상태였다. 결국, 서버를 닫아버리는 결정을 하고 말았다.
플러그인 하나 때문에 서버를 닫아버려야 했던 자신이 너무 억울하였고 비참하게 느껴졌었다. 타인이 제작한 플러그인에 의존하며 서버를 발전시켜야 한다는 상황이 마음에 들지 않았다. 아무리 유용한 플러그인이라도 제작자가 업데이트 지원을 중단해버리면 이와 같은 상황이 또 발생할 것이라는 생각에 서버 구축에 점점 싫증 나기 시작했고, 서버 구축에 대한 관심과 흥미가 사그라들었다. 흔히 말하는 현자 타임이 이런 것이 아닐까 싶다. 그렇게 서버에 대한 생각은 잠시 접게 되었다.
학교생활을 지내오며 시간을 보내왔었고, 중간에 마인크래프트를 하며 친구들과 같이 즐기기도 하였다. 필자는 마인크래프트 서버를 운영해온 경험이 있기에, 빠르고 간단하게 서버를 만들어 여러 가지 플러그인과 맵을 적용하며 기능을 추가한 뒤 친구들과 가볍게 즐기기도 하였다. 친구들과 같이 마인크래프트를 즐기다 보면, 서버를 만들어 제공하는 것에 종종 뿌듯함과 성취감을 느끼기도 하였다.
그렇게 자주 쓰이거나 재미있는 플러그인들을 컴퓨터에 저장하여 관리하기도 하였으며, 여러 플러그인에 대해 관심이 많아지기 시작했다. 하지만 이도 한두 개여야지, 너무 많다 보니 찾는 데에도 시간이 많이 걸릴뿐더러 플러그인마다 설정하고 사용하는 방법도 알아가야 했으므로, 툭하면 머리 아프기 일쑤였다. 그러던 순간, 이러한 생각이 들기 시작했다.
내가 직접 플러그인을 만들 수 있으면 얼마나 편할까?
여태까진 플러그인을 사용해왔다면, 이제는 직접 만들어보고 싶었다. 여태 왜 이런 생각을 하지 못하였을까? 직접 만들 수 있다면 지원이 끊길 일도 없고, 원하는 기능을 자유자재로 구현할 수 있어 서버를 더욱더 재미있게 만들 수 있을 것이다. 그러한 생각에 흥분을 감추지 못하고, 플러그인 제작에 대해 바로 검색하기 시작했다.
플러그인을 만들 때 사용되는 것은 Java 프로그래밍 언어다. 마인크래프트를 설치할 때만 쓰였던 Java가 플러그인을 만들 때 사용될 줄은 몰랐다. 스크립트를 작성하는 것처럼, Java 프로그래밍도 비슷하게 흘러갈 줄 알았으나, 난이도가 차원이 달랐다. Java 기본 문법과 조건문, 반복문은 기본이고, 메소드와 클래스, 상속, 패키지 등 듣도 보도 못한 기능을 사용하여 구현해야 한다는 것에 어쩔 줄 몰랐다.
처음 접해본 Java 프로그래밍은 혼돈과도 같았다. 어찌 보면 당연한 일이다. 보통 프로그래밍을 처음 접하게 되면 콘솔에 Hello, World를 찍어보는 것이 대다수일 텐데, System.out.println()도 모른 채로 JavaPlugin 클래스를 상속하여 onEnable()과 onDisable() 메소드를 오버라이딩하여 작성하는 것이 첫 Java 프로그래밍이었다. 물론, 뭐가 뭔지 하나도 모른 채로 말이다.
필자의 첫 Java 코드는 다음과 같았다. 물론, 어떤 블로그를 참고하여 그대로 따라 작성해 본 것이 전부였다.
import org.bukkit.plugin.java.JavaPlugin;
public class MyFirstPlugin extends JavaPlugin {
@Override
public void onEnable() { //플러그인 활성화시 실행
System.out.println("실행");
}
@Override
public void onDisable() { //플러그인 비활성화시 실행
System.out.println("종료");
}
}
당연히 코드를 보고 이해하진 못하였지만, 블로그에 적힌 설명을 읽어보니 어떤 부분이 어떠한 기능을 나타내는 것인진 알게 됐다. 그렇다고 Java 문법을 다 이해한 것은 아니었다. 그렇게 작성한 코드를 어찌어찌하여 뭔가를 하다 보니, 흔히 봐왔던 플러그인과 같은 형태를 띤 jar 파일이 바탕화면에 생성된 것이었다.(지금 돌이켜 보면, 프로젝트를 빌드하는 과정인 듯하다.) 그리고 이를 서버에 적용해 보니 정말 실행과 종료 글자가 서버 실행 창에 출력되는 모습을 볼 수 있었다.
이때의 순간은 아직도 잊히지가 않는다. 온몸에 전율이 흘렀고, 직접 플러그인을 제작했다는 상황이 믿기지가 않았다. 기능이라곤 서버를 켰을 때와 껐을 때 텍스트를 출력하는 것이 전부였지만, 직접 제작한 플러그인이라는 사실은 변치 않았다. 자신이 뭐든 할 수 있다는 마음을 먹게 된 시점이 바로 이때가 아닐까 싶다.
그렇게 Java 프로그래밍에 대해 관심이 생기기 시작했고 학습을 이어 나갔지만, Java 프로그래밍의 문법과 개념이 어렵고 이해하기가 잘 안돼서 많이 나아가진 못하였다. 해봤자 서버 내에서 특정 명령어 입력 시 기능이 실행되도록 하는 것까지였다. 더 많은 기능을 구현하고 싶었지만, 이해도 안 되는 코드를 따라 쳐봤자 본인이 원하는 기능을 직접 구현할 수 있는 실력을 키우기는 쉽지 않았다.
하지만, 이를 통해 목표가 생겼다. 그리고 꿈이 생겼다.
Java 프로그래밍을 잘하고 싶어졌다.
원하는 기능을 직접 만들어 사용하고 싶어졌다.
마음대로 설정하고 사용할 수 있는 그런 플러그인을 직접 제작하고 싶어졌다.
더 이상 다른 플러그인에 의존하는 것이 아닌, 자신이 직접 만든 플러그인을 사용하고 싶어졌다.
자신만의 멋진 마인크래프트 서버를 다시 한번 만들어 보고 싶어졌다.
더욱 완벽하게.
그렇게 Java 프로그래밍에 빠지게 되었고, 자연스럽게 Java에 대해 관심이 생기기 시작했다. 단순히 관심에 그치지 않고 이를 쭉 밀고 나아가야겠다고 결심을 하게 되었다. 그렇게 Java를 배울 수 있는 컴퓨터공학과에 대해 알게 되었고, 컴퓨터와 프로그래밍에 대해 진심이 된 자신을 볼 수 있게 되었다.
그렇게 시간이 지나 수능을 치르며 고등학교 생활을 마무리 지었고, 컴퓨터공학과로 대학교를 지원하여 입학하게 되었다. 그리고, 마인크래프트 커뮤니티에 들어가 Java를 학습하는 데 도움 되는 서적이 무엇인지 정보를 탐색하였다. 그때의 사람들은 난 정말 JAVA를 공부한 적이 없다구요라는 서적을 추천해 줬고, 교보문고로 달려가 해당 서적을 망설이지도 않고 바로 구매했다. 개강하기 전까지 틈틈이 서적을 읽으며 학습해 나아갔지만, 솔직히 큰 소득은 없었다. 그래도 콘솔 출력을 통해 Java 프로그래밍의 기본 문법을 배웠으며, 다양한 알고리즘을 알아가기도 하였다. 하지만 이게 플러그인을 만들 때 필요한 것들인지 확신하진 못하였다.
또다시 시간이 흘러 2017년 3월 2일, 개강 날이 다가왔다.
Java를 배우러 간다는 생각에, 들뜬 마음으로 대학교에 다니게 된다.