Unreal Engine 멀티플레이LESSON 04
리슨 서버와 데디케이티드 서버는 언제 선택할까
난이도입문 → 초급
예상 시간55분
선수지식3강의 호스팅 모델 비교
4강. 리슨 서버와 데디케이티드 서버는 언제 선택할까
1. 이번 강의에서 해결할 문제
데디케이티드 서버가 기술적으로 더 전문적으로 보인다는 이유만으로 선택하면 운영비와 배포 복잡도가 프로젝트를 멈출 수 있습니다. 반대로 경쟁 게임을 리슨 서버로 만들면 호스트 지연 우위, 서버 변조와 이탈이 핵심 품질 문제가 됩니다. 요구사항을 서버 모델로 번역하는 기준이 필요합니다.
2. 학습 목표
3. 핵심 개념
선택은 “가능한가”가 아니라 “실패했을 때 어떤 경험을 허용할 수 있는가”로 판단합니다.
| 질문 | 리슨 서버에 유리 | 데디케이티드에 유리 |
|---|---|---|
| 플레이 규모 | 초대 기반 소수 인원 | 공개 매치·많은 동시 접속 |
| 세션 지속성 | 호스트 종료와 함께 끝나도 됨 | 호스트와 무관하게 유지 |
| 공정성 | 협동·캐주얼 | 순위·경쟁·보상 |
| 비용 | 서버 비용을 피해야 함 | 인프라 예산과 운영 인력 있음 |
| 신뢰 | 친구 그룹 | 알 수 없는 클라이언트 |
| 배포 | 클라이언트 빌드 중심 | Server Target, 서버 자산·로그·포트 필요 |
CaptureArena 학습 프로젝트는 두 모델을 모두 테스트하지만 첫 완성 경로는 2인 리슨 서버입니다. 같은 권한 코드를 데디케이티드 PIE에서 반복 검증해 화면·로컬 플레이어 의존을 제거합니다.
4. 단계별 실습
파일 경로: Config/DefaultGame.ini
DefaultGame.ini
[/Script/CaptureArena.CaptureArenaGameMode]
MaxPlayers=2
WinningScore=3
파일 경로: Source/CaptureArena/Game/CaptureArenaGameMode.h
CaptureArenaGameMode.h
UPROPERTY(EditDefaultsOnly, Category = "Match",
meta = (ClampMin = "2", ClampMax = "2"))
int32 MaxPlayers = 2;
UPROPERTY(EditDefaultsOnly, Category = "Match",
meta = (ClampMin = "1"))
int32 WinningScore = 3;
서버 모델 선택 기록을 Docs/server-model-decision.md에 만듭니다.
# CaptureArena 서버 모델 결정
- 1차 배포: 2인 초대 기반 리슨 서버
- 서버 권한: 데미지, 점령, 점수, 아이템, 승리
- 허용 한계: 호스트 종료 시 세션 종료
- 필수 회귀: Launch Separate Server에서 동일 규칙 통과
- 전환 조건: 공개 경쟁 매치 또는 지속 세션 요구가 생기면 전용 서버 검토
5. 코드가 동작하는 이유
게임 규칙을 GameMode와 서버 권한 Actor에 두면 호스팅 모델을 바꿔도 판정 코드가 유지됩니다. 리슨 전용 UI나 GetFirstPlayerController() 의존을 규칙에 넣지 않기 때문에 별도 서버로 옮길 때 핵심 로직을 다시 작성하지 않습니다. 설정 값은 서버가 로드하고 클라이언트가 임의 변경해도 권위 있는 결과에 영향을 주지 않습니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2리슨 서버와 데디케이티드 서버는 언제 선택할까 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
4강. 리슨 서버와 데디케이티드 서버는 언제 선택할까 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.