Spigot 문서 원본 보기 ← Spigot 문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. '''Spigot'''(스피곳)은 [[마인크래프트]] 서버를 위한 고성능 구동기로, Bukkit을 기반으로 성능 개선과 추가 기능을 제공한다. 2012년부터 개발되어 현재까지 가장 널리 사용되는 서버 구동기 중 하나다. Spigot은 md_5가 주도하는 SpigotMC 팀에 의해 개발되었다. Bukkit의 성능 문제를 해결하고 더 많은 설정 옵션을 제공하기 위해 만들어졌으며, 현재는 마인크래프트 서버의 사실상 표준이 되었다. == 주요 특징 == === 성능 개선 === * 청크 로딩 최적화 * 엔티티 활성화 범위 제한 * 틱 병합 및 최적화 * 메모리 사용량 감소 * 네트워크 압축 개선 === 추가 기능 === * BungeeCord 지원 * 타이밍 리포트 시스템 * 바닐라 버그 수정 * 향상된 설정 옵션 * 엔티티 추적 개선 == 설치 방법 == <pre> 1. SpigotMC BuildTools 다운로드 2. Git Bash 또는 터미널에서 실행: java -jar BuildTools.jar --rev 1.21 3. 생성된 spigot-1.21.jar 파일 확인 4. 서버 시작: java -Xms1G -Xmx2G -jar spigot-1.21.jar </pre> == 설정 파일 == === spigot.yml === <pre> # 주요 spigot.yml 설정 config-version: 12 settings: debug: false save-user-cache-on-stop-only: false bungeecord: false # BungeeCord 사용 시 true sample-count: 12 player-shuffle: 0 user-cache-size: 1000 moved-wrongly-threshold: 0.0625 moved-too-quickly-multiplier: 10.0 timeout-time: 60 restart-on-crash: true restart-script: ./start.sh netty-threads: 4 log-villager-deaths: true log-named-deaths: true messages: whitelist: 화이트리스트에 등록되어 있지 않습니다! unknown-command: 알 수 없는 명령어입니다. server-full: 서버가 가득 찼습니다! outdated-client: 구버전 클라이언트입니다! {0} 버전을 사용하세요. outdated-server: 구버전 서버입니다! {0} 버전을 사용하세요. restart: 서버가 재시작됩니다. world-settings: default: verbose: false merge-radius: item: 2.5 exp: 3.0 view-distance: default simulation-distance: default thunder-chance: 100000 mob-spawn-range: 8 # 엔티티 활성화 범위 entity-activation-range: animals: 32 monsters: 32 raiders: 48 misc: 16 water: 16 villagers: 32 flying-monsters: 32 # 성장 속도 growth: cactus-modifier: 100 cane-modifier: 100 melon-modifier: 100 mushroom-modifier: 100 pumpkin-modifier: 100 sapling-modifier: 100 beetroot-modifier: 100 carrot-modifier: 100 potato-modifier: 100 wheat-modifier: 100 # 엔티티 추적 entity-tracking-range: players: 48 animals: 48 monsters: 48 misc: 32 other: 64 </pre> === 성능 최적화 설정 === <pre> # 권장 최적화 설정 world-settings: default: # 아이템 병합 merge-radius: item: 3.5 exp: 4.0 # 엔티티 활성화 범위 (성능 향상) entity-activation-range: animals: 16 monsters: 24 raiders: 32 misc: 8 # 홉퍼 최적화 hopper-transfer: 8 # 기본값: 8 hopper-check: 1 # 기본값: 1 hopper-amount: 1 # 기본값: 1 # 드롭 아이템 수명 item-despawn-rate: 4000 # 기본값: 6000 (틱) # 몹 스폰 제한 max-entity-collisions: 2 # 화살 제거 arrow-despawn-rate: 300 # 기본값: 1200 </pre> == 명령어 == {| class="wikitable" ! 명령어 !! 설명 !! 권한 |- | /restart || 서버 재시작 || spigot.command.restart |- | /tps || TPS 확인 || spigot.command.tps |- | /timings || 타이밍 리포트 || spigot.command.timings |} == BungeeCord 설정 == <pre> # spigot.yml에서 BungeeCord 모드 활성화 settings: bungeecord: true # server.properties에서 설정 online-mode=false # BungeeCord가 인증 처리 </pre> == 타이밍 리포트 == 서버 성능 분석을 위한 타이밍 시스템: <pre> # 타이밍 시작 /timings on # 일정 시간 후 리포트 생성 /timings paste # 생성된 URL에서 상세 분석 확인 </pre> == Paper와의 차이점 == {| class="wikitable" ! 기능 !! Spigot !! [[Paper(마인크래프트)|Paper]] |- | 성능 최적화 || 기본적 || 고급 |- | 비동기 청크 로딩 || 없음 || 있음 |- | 추가 설정 옵션 || 보통 || 매우 많음 |- | 익스플로잇 패치 || 일부 || 대부분 |- | 업데이트 주기 || 보통 || 빠름 |} == 플러그인 호환성 == * [[버킷(마인크래프트)|Bukkit]] 플러그인: 100% 호환 * Spigot 전용 API 사용 가능 * [[ProtocolLib]] 등 주요 라이브러리 지원 * 대부분의 플러그인이 Spigot 기준으로 개발됨 == 최적화 팁 == === 월드 별 설정 === <pre> world-settings: world: # 메인 월드는 정상 설정 mob-spawn-range: 8 entity-activation-range: monsters: 32 world_nether: # 네더는 더 제한적으로 mob-spawn-range: 6 entity-activation-range: monsters: 24 spawn: # 스폰 지역은 최대 제한 mob-spawn-range: 0 entity-activation-range: monsters: 16 </pre> == 문제 해결 == === 일반적인 문제 === * '''높은 메모리 사용''': JVM 플래그 조정 * '''낮은 TPS''': 엔티티 활성화 범위 축소 * '''청크 로딩 지연''': view-distance 감소 * '''플러그인 충돌''': 타이밍 리포트로 원인 파악 === 권장 JVM 플래그 === <pre> java -Xms2G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar spigot.jar </pre> == 업데이트 방법 == <pre> # BuildTools를 사용한 최신 버전 빌드 java -jar BuildTools.jar --rev latest # 특정 버전 빌드 java -jar BuildTools.jar --rev 1.20.4 # 개발 버전 빌드 java -jar BuildTools.jar --dev </pre> == 장단점 == === 장점 === * 안정적이고 검증된 성능 * 광범위한 플러그인 지원 * 활발한 커뮤니티 * 정기적인 업데이트 === 단점 === * [[Paper(마인크래프트)|Paper]]에 비해 최적화 부족 * 일부 바닐라 버그 잔존 * 설정 옵션이 상대적으로 적음 * BuildTools 사용 필수<ref>직접 jar 파일을 배포하지 않고 BuildTools를 통해 빌드해야 함</ref> [[분류:마인크래프트]] Spigot 문서로 돌아갑니다. 분류