Files
caliverse_doc/99. 기타/서버 개발팀 온보딩.md
2025-05-01 07:27:54 +09:00

12 KiB
Raw Permalink Blame History

서버 개발팀 온보딩

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)

  • 회사 이메일 계정 발급 요청 및 확인 하기

    • 담당자 : 인사팀
  • 사내 그룹웨어 계정 발급 요청 및 확인 하기

  • 이카운트 ERP 계정 발급 요청 및 확인 하기

3. 개발 관련 계정 등록 (Development Account Registration)

  • Slack 초대 요청 및 참여 하기

    • 워크스페이스 : w1630571944-llz753113.slack.com
    • 담당자 : 서버 팀장
  • SVN 계정 발급 요청 및 확인 하기

    • URL : svn://10.20.20.9
    • 담당자 : PM 팀장
  • Nettention 개발자 계정 발급 요청 및 확인 하기

  • AWS Console 계정 발급 요청 및 확인 하기

  • Redmine 계정 발급 요청 및 확인 하기

  • Mantis 계정 발급 요청 및 확인 하기

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 활성화 설정
  • ​개발 코드 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
      1. Protocol : .Net 기반 Google Protocol Buffers
        • 프로그램 공통 주요 정의
        • 프로그램 공통 주요 패킷 프로토콜 정의
    • Library
      1. ServerCore : .Net 기반 각종 Package 지원 코드
        • .Net 기반 NLog Wrapper
        • .Net 기반 Json Wrapper
        • .Net 기반 RabbitMQ Wrapper
        • .Net 기반 AWS Wrapper
        • .Net 기반 각종 Helper
      2. 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
    • Contents Servers
      1. LoginServer
      • Scalable
      • AWS NBS에 의해 Balance
      • 유저 인증 서버
      • 유저 인증 처리후 접속 가능한 GameServer 접속 정보 유도 후 세션 종료
      • GameServer 유저 접속 Balance
      1. GameServer
      • Scalable
      • LoginServer와 GameServer에 의해 Balance
      • 유저 메타버스 컨텐츠 접속
      • 각종 커뮤니티 제공
      • 각종 인스턴스 던젼 제공
      • 각종 컨텐츠 제공
      1. ChatServer
      • GameServer에 의해 Balance
      • 유저간의 채팅 제공
    • Server Manager Servers
      1. Manager Server
      • 전체 서버 Scale 축소 및 확장 관리
      • 추후 서버 관제 시스템(Server Control Center System)으로 고도화된 기능으로 업그레이드 예정
      1. ServerAuthServer
      • 사설 서버를 탐지하기 위한 서버
      • 현재 서버가 런칭할때 ServerAuthServer에게 패킷 송신 하는게 전부
      • 추후 서버 인증 시스템(Server Auth System)으로 고도화된 기능으로 업그레이드 예정
    • Tools
      1. ExcelToJson
      • Excel 파일에서 Meta Schema와 데이터를 읽고 Json 포멧으로 일괄 변경 및 출력해 주는 도구
      • 추후 Meta Schema 및 데이터 오류를 체크해 주는 기능을 추가 필요 !!!
      1. ServerControlCenter
      • 전체 서버를 제어하는 시스템
      1. GMTool
      • Manager Server를 제어하는 도구
      • 추후 서버 관제 시스템(Server Control Center System)을 제어하는 도구로 업그레이드 예정
      1. Bot
      • Bot 테스트를 위한 도구
      • Json 기반으로 의사결정 제어 구조를 제공
      • 추후 각종 테스트 상황 지표를 출력해 주는 기능 추가 예정
  • 주요 서버 목록

    • 빌드 & 배포

      1. Jenkins

    • 개발 서버

      • 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) : 선택 및 확인
    • 운영 서버

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 시작시 실행을 설정 한다.
    • 주요 기능
      1. 주요 경로 SVN 업데이트 받기
      2. 서버 주요 데이터 동기화
      3. SSH 터널링 조회/열기/닫기 (MySql 터널링.md 참조)
      4. 서버 실행/종료
      5. 메타 데이터(탐색/변환/적용)
      6. 로그 Tailing
      7. DB/Cache 조회
      8. 공용 디파인 SVN Commit (변경사항)
      9. 환경설정(ServerConfig.json) 파일 열기
      10. 로그설정(NLog.config) 파일 열기
      11. 서버 관제 시스템
      12. 레드마인 열기
      13. 주간업무 열기
      14. 맨티스 열기
      15. 문서 및 주요정의
      16. Jenkins
      17. 전체 서버 목록(mRemoteNG)
      18. 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)