12 KiB
서버 개발팀 온보딩
Created Date : 11/03/2023 17:21:11
Last Update Date : 1/5/2024 14:38:39
Version 0.8
Summary
본 문서는 메타버스 플랫폼 서버 제품 개발에 새롭게 합류한 구성원이 빠르게 팀에 적응하고, 업무를 수행할 수 있도록 지원하기 위한 문서입니다.
1. 팀소개 (Team Introduction)
-
메타버스 플랫폼 서비스의 각종 백엔드 시스템을 개발 및 각종 운영을 위한 소프트웨어를 개발하는 팀이다.
-
메타버스 플랫폼의 안정적인 서비스를 제공 하기 위해 각종 개발 기술을 활용 하고, 끊임 없는 기술 개발과 개선을 통해 메타버스 플랫폼 서비스의 각종 코드 품질을 향상 시키고 있다.
-
구성원들과의 협업과 격이없는 소통을 중요시 하며, 끊임없는 학습과 함께 성장하는 것을 추구 한다.
2. 전사 관련 계정 등록 (Company Account Registration)
-
회사 이메일 계정 발급 요청 및 확인 하기
- 담당자 : 인사팀
-
사내 그룹웨어 계정 발급 요청 및 확인 하기
- URL : https://dwp.lotte.net
- 입사시 교부 받은 서류 확인
- 담당자 : 인사팀
-
이카운트 ERP 계정 발급 요청 및 확인 하기
- URL : https://login.ecount.com/Login/
- 입사시 교부 받은 서류 확인
- 담당자 : 인사팀
3. 개발 관련 계정 등록 (Development Account Registration)
-
Slack 초대 요청 및 참여 하기
- 워크스페이스 : w1630571944-llz753113.slack.com
- 담당자 : 서버 팀장
-
SVN 계정 발급 요청 및 확인 하기
- URL : svn://10.20.20.9
- 담당자 : PM 팀장
-
Nettention 개발자 계정 발급 요청 및 확인 하기
- URL : https://ndn.nettention.com/
- 담당자 : 서버 팀장
-
AWS Console 계정 발급 요청 및 확인 하기
- URL : https://aws.amazon.com/ko/console/
- 담당자 : 서버 팀장
-
Redmine 계정 발급 요청 및 확인 하기
- URL : http://10.20.20.9/redmine
- 담당자 : PM 팀장
-
Mantis 계정 발급 요청 및 확인 하기
-
담당자 : PM 팀장
4. 개발 PC 세팅 (Development PC Settings)
-
OS 설치 확인 하기
- MS Windows 11 Pro
-
Hardware 설치 확인 하기
- CPU : i9-11900K
- RAM : 32GB
- System Drive : SSD - 1TB
- Working Drive : SSD - 2TB
-
Software 설치 하기
- Chrome
- Typora : Mark Down 문서 편집기
- TortoiseSVN
- Slack
- Notepad++
- Microsoft Office 2016 Professional
- Microsoft Visual Code
- Everything : 파일 검색 도구
- Docker
- Micorosoft Visual Studio 2022 Professional
- dbeaver : Database 통합 관리 도구
- RedisInsight
- AWS NoSQL Workbench
- Tailblazer : .Net 기반 로그 뷰어
- MongoDB Compass
- Process Explorer : 프로세스 분석기
- Putty
- WinSCP
- mRemoteNG
- AWS S3 Browser
- Unreal 5
-
회사 이메일 계정을 Outlock 설정 하기
- 입사시 교부 받은 서류 확인
5. 서버 개발 환경 세팅 (Server Development Environment Settings)
-
Micorosoft visual Studio 2022 Professional Add-in 설치 하기
- AnkhSVN-VS2022.vsix
- CPPDebuggerVisualizers.VS2022.vsix
- GitExtensions-2022.vsix
- IndentGuide-VS2022.vsix
- MatchMargin-VS2022.vsix
- VSColorOutput-VS2022.vsix
-
Micorosoft Visual Studio Code Plug-in 설치 하기
- Plant UML (실행방법 : uml 파일 읽기후 Alt + D Key 입력)
-
CPU 가상화 활성화 설정 및 확인 하기
- 작업 관리자 > 성능 > CPU 가상화 사용 상태 확인
- 사용 않함 설정일 경우 BIOS 에서 Virtualization 활성화 설정
- 작업 관리자 > 성능 > CPU 가상화 사용 상태 확인
-
개발 코드 CheckOut 하기
- URL : svn://10.20.20.9/trunk/Caliverse
- 프로그램(Server/Client) 전체 코드
- 참고
- 버전 관리 Root URL : svn://10.10.10.9
-
개발용 Backend 주요 프로세스 Docker 로 설치 하기
- URL : svn://10.20.20.9/trunk/trunk/Caliverse/Server/docker/docker-compose.yml
- 명령 프롬프트 관리자 실행
- docker-compose.yml 파일 있는 경로로 이동
- docker-compose up -d 실행
-
ProudNet 인증키 발급 및 등록 하기
- 넷텐션으로 부터 인증키 발급 메일 수신 확인
- 참조 : https://guide.nettention.com/cpp_ko#_p_n_license_main
- 인증키 등록 도구
- URL : svn://10.20.20.9/trunk/Caliverse/Server/CaliServer/External/ProudNet/util/PNLicenseAuthGui.exe
- PNLicenseAuthGui.exe 실행 및 등록 (Valid OK 확인)
- 현재 ProudNet Licence Key 파일 참조 : svn://10.20.20.9/trunk/Caliverse/Server/Security/ProudNet-LicenceKey/proudnet-licence.txt
-
서버 주요 솔루션 구성
- 서버 전체 프로젝트 : svn://10.20.20.9/trunk/Caliverse/Server/Server-All.sln
- 서버 빌드 전용 : svn://10.20.20.9/trunk/Caliverse/Server/CaliServer/Server-Build.sln
- 서버 툴 전용 : svn://10.20.20.9/trunk/Caliverse/Server/Tools/Tools.sln
-
서버 주요 프로젝트 구성
- Common Define
- Protocol : .Net 기반 Google Protocol Buffers
- 프로그램 공통 주요 정의
- 프로그램 공통 주요 패킷 프로토콜 정의
- Protocol : .Net 기반 Google Protocol Buffers
- Library
- ServerCore : .Net 기반 각종 Package 지원 코드
- .Net 기반 NLog Wrapper
- .Net 기반 Json Wrapper
- .Net 기반 RabbitMQ Wrapper
- .Net 기반 AWS Wrapper
- .Net 기반 각종 Helper
- ServerCommon : .Net 기반 서버 애플리케이션 역할용 지원 코드
- Server Config 관련 코드
- .Net 기반 ProudNet Wrapper
- .Net ProudNet 기반 네트워크 모듈
- .Net RabbitMQ 기반 서버 to 서버 연결 모듈
- .Net 기반 AWS DynamoDB Wrapper
- .Net AWS DynamoDB 기반 DB Query 모듈
- .Net 기반 Redis Wrapper
- .Net Redis 기반 Cache 모듈
- .Net 기반 Contents Event & Reward 모듈
- .Net 기반 Business Log 모듈
- .Net 기반 Meta Schema & Data 모듈
- .Net 기반 각종 Helper
- ServerCore : .Net 기반 각종 Package 지원 코드
- Contents Servers
- LoginServer
- Scalable
- AWS NBS에 의해 Balance
- 유저 인증 서버
- 유저 인증 처리후 접속 가능한 GameServer 접속 정보 유도 후 세션 종료
- GameServer 유저 접속 Balance
- GameServer
- Scalable
- LoginServer와 GameServer에 의해 Balance
- 유저 메타버스 컨텐츠 접속
- 각종 커뮤니티 제공
- 각종 인스턴스 던젼 제공
- 각종 컨텐츠 제공
- ChatServer
- GameServer에 의해 Balance
- 유저간의 채팅 제공
- Server Manager Servers
- Manager Server
- 전체 서버 Scale 축소 및 확장 관리
- 추후 서버 관제 시스템(Server Control Center System)으로 고도화된 기능으로 업그레이드 예정
- ServerAuthServer
- 사설 서버를 탐지하기 위한 서버
- 현재 서버가 런칭할때 ServerAuthServer에게 패킷 송신 하는게 전부
- 추후 서버 인증 시스템(Server Auth System)으로 고도화된 기능으로 업그레이드 예정
- Tools
- ExcelToJson
- Excel 파일에서 Meta Schema와 데이터를 읽고 Json 포멧으로 일괄 변경 및 출력해 주는 도구
- 추후 Meta Schema 및 데이터 오류를 체크해 주는 기능을 추가 필요 !!!
- ServerControlCenter
- 전체 서버를 제어하는 시스템
- GMTool
- Manager Server를 제어하는 도구
- 추후 서버 관제 시스템(Server Control Center System)을 제어하는 도구로 업그레이드 예정
- Bot
- Bot 테스트를 위한 도구
- Json 기반으로 의사결정 제어 구조를 제공
- 추후 각종 테스트 상황 지표를 출력해 주는 기능 추가 예정
- Common Define
-
주요 서버 목록
-
빌드 & 배포
-
Jenkins
-
Dev 빌드 & 배포
URL : http://10.20.20.8:8080/
계정 : caliverse / Zkfflqjtm!33&*(
-
기획 빌드 & 배포
URL : http://10.20.20.8:8080/
계정 : caliversedev / Caliverse!!!1218
-
Stage/Live 빌드 & 배포
URL : http://10.20.20.7:8080/
계정 : caliverse / Zkfflqjtm!33&*(
-
-
-
개발 서버
-
IP : 10.20.20.8 , (추후 AWS 이관 예정)
Dev-Tray > 서버 목록(mRemoteNG) : 선택 및 확인
-
-
기획 서버
-
IP : 10.20.10.11, (추후 AWS 이관 예정)
Dev-Tray > 서버 목록(mRemoteNG) : 선택 및 확인
-
-
QA 서버
- 추후 AWS 구축 예정
-
Stage 서버
- Dev-Tray > 서버 목록(mRemoteNG) : 선택 및 확인
-
Live 서버
- Dev-Tray > 서버 목록(mRemoteNG) : 선택 및 확인
-
운영 서버
- DEV URL : http://34.214.129.202/ , (추후 서비스 타입별 구분 런칭 예정)
- 계정 : admin@lotte.net / 1111
- Dev-Tray > 서버 목록(mRemoteNG) : 선택 및 확인
-
6. 개발 Tray 툴 설치 (Dev-Tray Tool Settings)
-
Dev-Tray 실행 하기
- svn://10.20.20.9/trunk\Caliverse\Server\Tools\Dev-Tray\dev-tray-setup.cmd 을 실행 한다.
- 현재 로그인한 계정의 비밀번호를 물어보면 입력 한다.
- Dev-Tray Icon 위로 마우스를 이동후 마우스 우측키 클릭하여 Windows 시작시 실행을 설정 한다.
- 주요 기능
- 주요 경로 SVN 업데이트 받기
- 서버 주요 데이터 동기화
- SSH 터널링 조회/열기/닫기 (MySql 터널링.md 참조)
- 서버 실행/종료
- 메타 데이터(탐색/변환/적용)
- 로그 Tailing
- DB/Cache 조회
- 공용 디파인 SVN Commit (변경사항)
- 환경설정(ServerConfig.json) 파일 열기
- 로그설정(NLog.config) 파일 열기
- 서버 관제 시스템
- 레드마인 열기
- 주간업무 열기
- 맨티스 열기
- 문서 및 주요정의
- Jenkins
- 전체 서버 목록(mRemoteNG)
- SVN Tags 목록 보기
-
보안 디펙토리 권한 재설정 하기
- svn://10.20.20.9/trunk/Caliverse/Server/Security/SSH-Keys/pem 폴더 권한을 모두 제거 한다.
- 시스템에 로그인한 현재 계정으로 모든 권한을 설정 하고 추가 한다.
-
Putty 설정 하기
-
SSH 설정 하기
- Category > Connection > SSH > Credentials Public-Key Authentication > Private Key File for Authentication > 참조할 .ppk 파일 경로 설정
- Saved Session 설정 및 저장 접속할 대상명의 세션명 설정, 예) USWest2-KeyPair(리전 단위로 사용할 경우)
-
svn://10.20.20.9/trunk/Caliverse/Server/Security/SSH-Keys/ 경로에 있는 보안 파일을 mRemoteNG의 설정 파일대로 등록 한다.
-
-
전체 서버 목록 구성 및 로딩 하기
- Dev-Tray > 전체 서버 목록 > 서버 목록 동기화 (AWS->mRemoteNG) 선택
- 서버 목록 (mRemoteNG) 선택
- 실행된 mRemoteNG 상단 메뉴 > 파일 > 연결 파일 열기
- svn 설치 경로 ... \Server\Tools\mRemoteNG\mRemoteNG.xml
7. 클라이언트 개발 환경 세팅 (Client Development Environment Settings)
-
클라이언트 솔루션 파일
- URL : svn://10.20.20.9/trunk/Caliverse/Client/CaliverseMS02/Caliverse.sln
-
클라이언트 Unreal 프로젝트 파일
- URL : svn://10.20.20.9/trunk/Caliverse/Client/CaliverseMS02/Caliverse.uproject
-
서버 접속 정보 설정 하기
-
URL : svn://10.20.20.9/trunk/Caliverse/Client/CaliverseMS02/Config.ini
-
접속할 Login Server IP 설정 [login] ip = 10.20.10.80 port = 9100
-
8. 테스트 환경 세팅 (Test Environment Settings)
- 클라이언트 개발 버전 다운로드
- SMB : \10.20.10.11\archive
- 계정 : user / caliverse1!
9. 플랫폼 스튜디오 주요 문서 (Platform Studio Document)
- 플랫폼 스튜디오 주요 문서