Overview
Project Monitor - com.111percent.gamebase.utilities.project-monitor
무엇인가요?
회사 내 모든 프로젝트의 관리가 필요한 정보를 모으는 유니티 패키지 + 서버 입니다.
패키지에서 전송한 데이터를 수집하고 웹브라우저를 통해 확인 할 수 있는 서비스를 제공합니다.
프로젝트 모니터 웹페이지
왜 필요한가요?
유니티로 개발 환경을 구성할 때는 버전 정보가 매우 중요합니다. 우리 본부의 중요한 임무 중 하나인 기술 지원을 원활하게 하기 위해서는 개발 환경 정보를 확보하는 것이 필요합니다. 과거에는 각 팀의 개발 환경 정보를 알기 위해서 직접 게임마다 물어봤습니다.
하지만 이러한 정보가 주기적으로 자동으로 수집되고, 웹 브라우저에서 한눈에 볼 수 있다면 이러한 커뮤니케이션 비용도 줄이고 선제적 대응을 통해 관리 비용도 많이 줄일 수 있을 것입니다. 또한 해당 개발 환경에 대한 정보를 수집한다면 소스 유출과 같은 보안 사고에도 대응할 수 있을 것으로 기대됩니다.
어떻게 구성되어 있나요?
프로젝트 모니터는 유니티 클라이언트 패키지와 웹서버 두가지로 구성되어 있습니다.
유티니 패키지에서는 에디터상의 프로젝트 정보를 웹서버로 전송합니다.
웹서버에서는 유니티에서 전송한 정보를 수집 및 SSR(Server Side Rendering) 방식의 웹페이지를 제공합니다.
flowchart TB
subgraph unity_pkg[Unity Package]
DataCollector
WebRequester
end
data -->|수집| DataCollector
WebRequester --> WebServer
WebServer --> DB
DB --> WebServer
WebServer -->|Server Side Rendering| WebBrowser
subgraph Unity Client
unity_pkg
data((모니터링 데이터))
end
subgraph Infra
WebServer
DB
end
수집하는 데이터
- 앱 식별자(AppIdentifier): 애플리케이션을 식별하는 데 사용되는 고유 정보
- 사용자 이름(UserName): 사용자 닉네임, Git 설정으로 부터 읽음
- 저장소 URL(RepositoryUrl): 프로젝트 관련 소스 코드가 저장된 저장소의 URL
- Unity 버전(UnityVersion): 프로젝트 개발에 사용된 Unity 엔진의 버전
- 제품 이름(ProductName): 프로젝트의 이름
- 앱 버전(AppVersion): 애플리케이션의 버전 정보
- 패키지 정보(PackageInfos): 프로젝트에 포함된 Unity 패키지 리스트
- 에디터 운영 체제(EditorOs): Unity 에디터가 실행되는 운영 체제
- 물리적 주소(PhysicalAddress): MAC 주소
- IP 주소(IpAddress): Unity 에디터가 연결된 네트워크의 Internal IP 주소
어떻게 사용하나요?
PPM(Percent Package Manager)을 통해 Project Monitor를 설치합니다.
이후 따로 설정은 필요 없으며, 패키지내부 별도의 설정없이 정보 수집 함수를 실행하여 데이터를 웹서버로 전송합니다. 컴파일 시점에 프로젝트의 변경점을 확인하여 변경점이 있을 경우에 전송합니다.