✅ Unity + Mirror에서 "서버"란 무엇인가?
Mirror는 Unity 안에서 서버도 클라이언트처럼 돌아가는 구조야.
즉, Unity 빌드 자체가 서버가 되는 것이지,
무조건 리눅스에서만 돌리는 따로 짠 "백엔드 서버"를 의미하지 않음
✅ Mirror의 서버 구조는 이렇게 나뉜다:
타입 | 설명 | 실행 방식 |
Host | 서버와 클라이언트가 같은 Unity 인스턴스 | 로컬 테스트용 |
Dedicated Server | 서버 전용 Unity 빌드 (UI 없음) | 리눅스/윈도우 빌드 |
Client | 순수 클라이언트 | 유저가 실행 |
즉, Mirror는 서버도 Unity에서 돌아간다는 게 핵심.
✅ 그럼 "서버 로직"은 어떻게 구성해?
1. 따로 구현하는 건 아니다
- 동일한 Unity 프로젝트 안에 [Server], [Command] 같은 속성으로 서버 전용 로직을 구분해서 작성한다.
- 이 코드는 클라이언트 빌드에도 들어가지만, 실행은 안 된다 (isServer 체크)
[Server]
void DamagePlayer(int amount)
{
health -= amount;
}
void DamagePlayer(int amount)
{
health -= amount;
}
2. 리눅스에 빌드할 때는?
- Unity에서 Headless Mode (서버용, 그래픽 없음)로 빌드해서 리눅스에 배포
- Build Settings → Linux + Server Build 체크
✅ Unity Mirror 서버 운영 시 요약
항목 | 설명 |
서버는 Unity에서 돌아감 | 맞아, Unity 빌드 = 서버 |
리눅스에 설치 가능 | Headless 전용 빌드 사용 |
서버 전용 로직이 따로 있는가? | 따로 프로젝트가 있는 건 아님, 같은 코드 안에 [Server], [Command]로 분리 |
따로 "백엔드 서버" 필요? | 대부분의 게임에서는 필요 없음. 단, DB나 로그인 관리가 필요하면 따로 만들기도 함 |

Q. 서버는 누가 조작하는 게 아닌데 어떻게 Rpc 함수를 호출해?
A.
🎯 결론
Mirror에서는 "서버 로직"도 Unity 프로젝트 안에서 같이 짠다.
단지 [Server], [Command] 같은 태그로 서버 전용 코드를 구분하고,
빌드할 때 Linux 전용 서버 빌드를 만들어서 리눅스에 올리는 것뿐이야.
'유니티 > 서버' 카테고리의 다른 글
[Mirror] NetworkAuthenticator, 인증시스템 (0) | 2025.06.23 |
---|---|
[TargetRpc] VS [ClientRpc] (0) | 2025.06.16 |
[Command] vs [ClientRpc] 차이 비교 (0) | 2025.06.16 |
미러 동기화 예제 코드 (0) | 2025.06.16 |
Photon Fusion 2의 Authority (RpcSources, RpcTargets) (0) | 2025.06.16 |