수다 SUDA

A.I-assisted information blog

🎮 2024년 마인크래프트 Paper 서버 구축의 모든 것: 1.21.3 완벽 가이드 (초보자용)

🎮 2024년 마인크래프트 Paper 서버 구축의 모든 것: 1.21.3 완벽 가이드 (초보자용)

목차

소개

안녕하세요! 오늘은 마인크래프트 1.21.3 버전용 Paper 서버를 설치하고 운영하는 방법에 대해 상세히 알아보겠습니다. 이 가이드를 따라하시면, 초보자도 안정적인 마인크래프트 서버를 구축할 수 있습니다. 특히 Paper 서버는 뛰어난 성능과 안정성을 제공하므로, 많은 플레이어들에게 인기 있는 선택입니다.

Paper 서버란?

Paper 서버는 Spigot을 기반으로 한 고성능 마인크래프트 서버 소프트웨어입니다. 다음과 같은 장점들이 있습니다:

  • 뛰어난 성능 최적화
  • 광범위한 플러그인 지원
  • 빠른 보안 업데이트
  • 활성화된 커뮤니티 지원
  • 상세한 서버 설정 옵션

시스템 요구사항

안정적인 Paper 서버 운영을 위한 최소 시스템 요구사항은 다음과 같습니다:

최소 사양

  • CPU: 최신 듀얼 코어 프로세서 (3.0GHz 이상)
  • RAM: 4GB (서버 전용)
  • 저장공간: 10GB 이상의 SSD
  • 네트워크: 업로드 속도 5Mbps 이상
  • 운영체제: 64비트 Windows/Linux/macOS

권장 사양

  • CPU: 최신 쿼드 코어 프로세서 (3.5GHz 이상)
  • RAM: 8GB 이상 (서버 전용)
  • 저장공간: 20GB 이상의 NVMe SSD
  • 네트워크: 업로드 속도 10Mbps 이상
  • 운영체제: Ubuntu 22.04 LTS 또는 Windows Server 2022

서버 설치 준비

Java 설치

먼저 최신 버전의 Java를 설치해야 합니다.

Windows의 경우:

  1. Adoptium 웹사이트 방문
  2. Java 17 또는 그 이상 버전 다운로드
  3. 설치 파일 실행 및 설치 완료
  4. 시스템 환경 변수 확인

Linux의 경우:

sudo apt update
sudo apt install openjdk-17-jdk

작업 디렉토리 생성

서버 파일을 저장할 전용 디렉토리를 생성합니다.

Windows:

mkdir C:\minecraft-server
cd C:\minecraft-server

Linux:

mkdir ~/minecraft-server
cd ~/minecraft-server

Paper 서버 설치

Paper 다운로드

최신 Paper 서버는 다음 링크에서 다운로드할 수 있습니다:

  • 공식 웹사이트: https://papermc.io/downloads
  • 직접 다운로드 링크가 없는 경우 검색어 추천: "papermc 1.21.3 download github"

시작 스크립트 생성

Windows (start.bat)

@echo off
java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar nogui
pause

Linux (start.sh)

#!/bin/bash
java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar nogui

초기 설정

서버를 처음 실행하면 다음 파일들이 생성됩니다:

  • server.properties
  • bukkit.yml
  • spigot.yml
  • paper.yml
  • eula.txt

eula.txt 파일을 열어 eula=falseeula=true로 변경해야 합니다.

서버 최적화

server.properties 최적화

view-distance=8
simulation-distance=6
network-compression-threshold=256
max-players=20
entity-broadcast-range-percentage=100
spawn-protection=16
max-world-size=29999984

paper.yml 최적화

max-auto-save-chunks-per-tick: 6
max-entity-collisions: 2
grass-spread: 3
container-update: 1
hopper:
  disable-move-event: true
max-tick-time:
  tile: 1000
  entity: 1000
chunk-system:
  min-load-radius: 2
  gen-queue-size: 8

bukkit.yml 최적화

chunk-gc:
  period-in-ticks: 400
spawn-limits:
  monsters: 50
  animals: 10
  water-animals: 5
  water-ambient: 20
  water-underground-creature: 5
  ambient: 5
ticks-per: 
  animal-spawns: 400
  monster-spawns: 100
  water-spawns: 400
  water-ambient-spawns: 400
  water-underground-creature-spawns: 400
  ambient-spawns: 400

필수 플러그인

안정적인 서버 운영을 위한 필수 플러그인들입니다:

1. EssentialsX

  • 기본적인 서버 명령어 제공
  • 다운로드: SpigotMC
  • 주요 설정:
    # config.yml
    chat:
    format: '<{DISPLAYNAME}> {MESSAGE}'
    radius: 0
    commands:
    kit:
    delay: 3600
    home:
    delay: 5

2. CoreProtect

  • 블록 변경 로깅 및 롤백
  • 다운로드: SpigotMC
  • 주요 설정:
    # config.yml
    check-updates: true
    database:
    use-mysql: false
    max-records: 1000000

3. LuckPerms

  • 권한 관리 시스템
  • 다운로드: LuckPerms
  • 기본 설정:
    # config.yml
    server:
    broadcast-to-admins: true
    auto-op: false
    storage-method: H2

4. WorldGuard

  • 지역 보호 및 관리
  • 다운로드: SpigotMC

5. WorldEdit

  • 월드 편집 도구
  • 다운로드: SpigotMC

고급 설정

메모리 관리

서버의 메모리 사용량을 모니터링하고 최적화하는 방법:

  1. 힙 크기 설정

    -Xms4G -Xmx4G  # 4GB 메모리 할당
  2. GC 로깅 활성화

    -Xlog:gc*:file=gc.log:time,uptimemillis:filecount=5,filesize=10M

네트워크 최적화

  1. 포트포워딩 설정

    • 기본 포트: 25565
    • UDP/TCP 모두 개방
  2. server.properties 네트워크 설정

    network-compression-threshold=256
    prevent-proxy-connections=false

문제 해결

일반적인 문제와 해결방법

  1. 서버가 느릴 때

    • 타임랩 확인: /timings report
    • 청크 생성 제한
    • 엔티티 수 제한
  2. 메모리 부족

    • GC 로그 확인
    • 불필요한 플러그인 제거
    • 월드 프리로드 설정
  3. 연결 문제

    • 방화벽 설정 확인
    • 포트포워딩 확인
    • DNS 설정 확인

로그 분석

server.log 파일에서 주의해야 할 경고:

[Warning] Can't keep up! Is the server overloaded?
[Warning] Entity in wrong chunk!
[Warning] Moved wrongly!

보안 설정

기본 보안 설정

  1. 화이트리스트 활성화

    # server.properties
    white-list=true
    enforce-whitelist=true
  2. 관리자 권한 설정

    # ops.json
    [
    {
    "uuid": "player-uuid",
    "name": "AdminName",
    "level": 4,
    "bypassesPlayerLimit": false
    }
    ]

플러그인 보안

  1. AuthMe 설정

    # config.yml
    security:
    passwordHash: ARGON2
    minPasswordLength: 8
  2. 안티치트 설정

    • NCP (NoCheatPlus) 설치
    • Matrix 설치

성능 모니터링

성능 측정 도구

  1. Spark 플러그인

    • CPU 사용량 모니터링
    • 메모리 사용량 추적
    • 플러그인 성능 분석
  2. Plan 플러그인

    • 서버 통계 수집
    • 플레이어 활동 분석
    • 리소스 사용량 추적

모니터링 명령어

/tps # 서버 TPS 확인
/gc # 가비지 컬렉션 상태
/timings # 서버 성능 분석

백업 시스템

자동 백업 스크립트

Windows (backup.bat)

@echo off
set BACKUP_DIR=backups
set SERVER_DIR=server
set DATE=%date:~-4,4%%date:~-10,2%%date:~-7,2%

mkdir "%BACKUP_DIR%\%DATE%"
xcopy /E /I "%SERVER_DIR%" "%BACKUP_DIR%\%DATE%"

Linux (backup.sh)

#!/bin/bash
BACKUP_DIR="backups"
SERVER_DIR="server"
DATE=$(date +%Y%m%d)

mkdir -p "$BACKUP_DIR/$DATE"
cp -r "$SERVER_DIR/" "$BACKUP_DIR/$DATE/"

백업 정책

  1. 일일 백업

    • 매일 새벽 4시 자동 백업
    • 7일간 보관
  2. 주간 백업

    • 매주 일요일 전체 백업
    • 4주간 보관
  3. 월간 백업

    • 매월 1일 전체 백업
    • 6개월간 보관

결론

이제 여러분은 안정적인 Paper 1.21.3 마인크래프트 서버를 설정하고 운영하는 데 필요한 모든 정보를 갖게 되었습니다. 이 가이드를 통해 다음과 같은 내용을 배웠습니다:

  • Paper 서버의 설치와 기본 설정
  • 서버 성능 최적화 방법
  • 필수 플러그인 설치와 설정
  • 보안 설정과 백업 시스템 구축
  • 문제 해결과 모니터링 방법

유용한 관련 링크

서버 운영 팁

  1. 정기적인 유지보수

    • 주기적으로 서버 백업 실행
    • 플러그인 업데이트 확인
    • 로그 파일 정리
  2. 커뮤니티 관리

    • 명확한 서버 규칙 설정
    • 관리자 가이드라인 작성
    • 플레이어 피드백 수렴
  3. 성능 관리

    • 정기적인 성능 모니터링
    • 불필요한 청크 언로드
    • 엔티티 수 제한 설정

추가 학습 자료

마인크래프트 서버 관리에 대해 더 깊이 있게 공부하고 싶다면 다음 주제들을 살펴보세요:

  1. Java 가상 머신 튜닝
  2. MySQL 데이터베이스 연동
  3. Docker 컨테이너화
  4. 프록시 서버 구축 (BungeeCord/Velocity)
  5. 커스텀 플러그인 개발

독자 참여 질문

아래 질문들에 대해 생각해보고 댓글로 공유해주세요:

  1. 여러분의 서버에서 가장 유용하게 사용하는 플러그인은 무엇인가요?

  2. 서버 운영 중 겪었던 가장 큰 문제는 무엇이었고, 어떻게 해결하셨나요?

  3. Paper 서버의 어떤 기능이 가장 마음에 드시나요?

  4. 처음 서버를 시작할 때 이 글에서 설명한 내용 중 어떤 부분이 가장 도움이 될 것 같나요?

  5. 여러분만의 특별한 서버 최적화 팁이 있다면 무엇인가요?

마치며

서버 구축은 처음에는 복잡해 보일 수 있지만, 차근차근 따라하다 보면 누구나 할 수 있습니다. 문제가 생기더라도 위의 문제 해결 가이드를 참고하면서 하나씩 해결해 나가시면 됩니다.

이 글이 여러분의 마인크래프트 서버 구축에 도움이 되었기를 바랍니다. 추가 질문이나 의견이 있으시다면 언제든 댓글로 남겨주세요. 즐거운 서버 운영 되시기 바랍니다! 🎮✨

“🎮 2024년 마인크래프트 Paper 서버 구축의 모든 것: 1.21.3 완벽 가이드 (초보자용)”에 대한 2개 응답

  1. ryung

    1.21.3 마크 서버를 열려 하는데 bat 실행을 한후 폴더가
    cache
    libraries
    verisions
    이 3개밖에 생성이 안됬어요.
    해결방법 있나요?

    1. 서버 디렉토리 내 파일 구성
      bat 파일 코드 내용
      등을 확인해야 정확하게 판단이 가능할 것 같습니다.
      처음 서버 구성할 때,
      디렉토리 내에는
      paper-1.21.3-82.jar
      eula.txt
      start.bat
      정도 구성해서 start.bat 파일을 실행하는데
      start.bat 파일 내용은 https://docs.papermc.io/misc/tools/start-script-gen 이 사이트를 참고하셔서 bat 파일 코드를 구성하시면 좋습니다.

      즉석에서 예시로 만들어 보면,

      “`
      @echo off

      java -Xms4096M -Xmx4096M -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-1.21.3-82.jar nogui

      pause
      “`

      대략 위 코드로 만들 수 있겠습니다.

ryung에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다