패킷 정의 하나로, 개발부터 라이브까지
이 영상에 나오는 용어 14개.
.proto파일- 메시지 이름, 필드 이름, 타입, 번호를 선언하는 스키마 파일이다. 영상에서는
game_packet.proto가 모든 패킷의 원본이다. - 동접 (CCU)
- 같은 시점에 접속해 있는 사용자 수다. 서버 대수를 정할 때 기준이 되는 값이다.
- 봇 클라이언트
- 사람 대신 프로그램이 실제 클라처럼 서버에 접속해 패킷을 보내는 테스트용 클라이언트다. 화면이나 리소스 없이 패킷 흐름만 재현한다.
- 부하 테스트
- 많은 봇을 동시에 접속시켜 서버와 인프라가 어디까지 버티는지 재는 테스트다. 영상에서는 CPU 70%를 임계로 잡는다.
- 코드 생성(codegen)
- 스키마에서 소스 코드를 자동으로 만들어 내는 과정이다. 사람이 직접 짜지 않으니 클라, 서버, 봇의 패킷 구조가 같게 유지된다.
- 패킷
- 클라이언트와 서버가 주고받는 메시지 한 단위다. 영상에서는
.proto의message하나가 패킷 하나에 해당한다. - 패킷 플로우
- 로그인부터 던전 클리어까지 클라가 서버와 주고받는 패킷의 순서다. 봇은 이 순서를 그대로 따라 한다.
- 퍼블리셔
- 게임을 서비스하고 운영하는 회사 또는 조직이다. 영상에서는 QA와 인프라팀이 봇을 받아 부하 테스트를 한다.
- 필드 번호(tag)
- 각 필드 뒤의
= 1,= 2같은 숫자다. 직렬화된 바이트에서는 이름 대신 이 번호로 필드를 구분하므로 한 번 정하면 바꾸지 않는다. p99지연- 요청의 99%가 이 시간 안에 끝난다는 뜻의 응답 시간 지표다. 평균에 묻히는 느린 요청을 드러낸다.
- Protobuf (프로토콜 버퍼)
- Google이 만든 직렬화 형식이다. 스키마를
.proto파일에 적고, 여기서 각 언어용 직렬화 코드를 생성해 쓴다. protoc- Protobuf 컴파일러다.
.proto를 읽어 C#, C++ 등 지정한 언어의 클래스 코드를 만든다. RPS/DB QPS- 초당 요청 수와 DB의 초당 쿼리 수다. 동접이 늘 때 서버와 DB가 받는 부하를 나타낸다.
- Single Source of Truth
- 같은 정보의 원본을 한 곳에만 두는 원칙이다. 여기서는 패킷 정의가
.proto한 파일에만 있다.