-
[TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-5)TIL-sparta 2024. 7. 3. 16:52
> 과제 진행 간 완료한 사항 및 문제점과 해결 과정을 정리해보았다.학습 키워드: Node.js, net, TCP, socket, Buffer, Protobuf, MySQL, RDS
1. 완료한 과제 진행 사항
1) 도전 요구사항 - DB 연동하기 (미완성):
- RDS MySQL DB 연동 및 DB connection pool 생성, create table SQL 쿼리 파일을 이용한 migration 기능 구현
- 최초 접속 시 initial handler에서 유저 정보를 DB에 저장하고, 접속 종료 시 마지막 위치를 DB에 저장하는 기능 구현
2) 그 외:
- 타임아웃 기능 구현 (Unity 에디터에서 게임 종료 시 유저가 남아있어도 설정된 timeout 시간 이후 게임 목록에서 사라지도록 설정)
- game.model.js에서 removeUser의 필터링을 반대로 하고 있던 문제 해결 (타임아웃 구현 중 발견)
2. 과제 진행 간 문제점
1) DB에 쿼리 전송 시 Unknown database 오류가 출력되는 문제 (해결):
Figure 1. ER_BAD_DB_ERROR (수정 전) migration을 진행할 때 위와 같은 에러가 출력되었다. 처음에는 RDS의 보안 그룹 설정이 문제인가 싶어 수정해보았으나 결과가 같아서 이전에 수강한 스파르타 강의를 다시 참고하다가 DB 생성 시 추가 설정에 초기 DB 이름 설정 란이 있는 것을 확인했다. 원인은 초기 DB가 생성이 되어있지 않은 상태로 TABLE을 생성하려 했기 때문이었다.
Figure 2. RDS 콘솔 화면 Figure 3. 서버 env (변경 전) DB_NAME에 적어야 하는 이름이 DB 인스턴스 ID라고 생각했으나 아니었고, 필요한 정보는 DB 인스턴스 내에 생성되어있는 database의 이름을 말하는 것이었다.
Figure 4. 서버 env (변경 후) 서버의 env 설정에서 DB_NAME (connection을 시도할 때 database 옵션 값)을 RDS의 추가 설정에서 만들어 준 DB 이름인 user_db로 변경하여 해결했다.
Figure 5. DB migration 성공 3. 기타 사항
1) 클라이언트 코드 수정 필요:
같은 device id를 가진 유저가 재접속 했을 경우 마지막 위치에서 재접속 (클라이언트 수정 필요) ·
참고할 만한 위치 클라이언트 코드 위치 Player.cs (lines 51, 66) GameManager.cs (line 22) NetworkManager.cs (line 97) gameStart packet 도착 후에 실행하도록 변경 최하단에 gameStart 패킷 처리할 함수 작성 Packets.cs gameS
github.com
- 과제의 도전 요구사항이 클라이언트 코드 (Unity C#) 수정을 요구하고 있어서 수정할 위치를 파악하는데 주력하고 있다. 위의 링크는 과제 repository에서 생성한 issue인데, 현재 진행중인 'DB 연동' 도전 요구사항에서 클라이언트의 어느 부분을 어떻게 수정할지 파악하며 내용을 채워나가고 있다.
--
REFERENCES:Chapter 5 게임서버 주특기 플러스 개인과제 | Notion
Intro: “지금까지는 튜토리얼”
teamsparta.notion.site
> 과제 spec
GitHub - donkim1212/sparta-ch5-tcp-game-server: [내일배움캠프] 스파르타) Chapter 5 게임서버 주특기 플러스
[내일배움캠프] 스파르타) Chapter 5 게임서버 주특기 플러스 개인과제. Contribute to donkim1212/sparta-ch5-tcp-game-server development by creating an account on GitHub.
github.com
> 과제 repo
728x90'TIL-sparta' 카테고리의 다른 글
[TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-3) (0) 2024.07.05 [TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-4) (0) 2024.07.04 [TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-6) (0) 2024.07.02 [TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-7) (0) 2024.07.01 [TIL] 프로토콜 버퍼 (protobuf) - 2 (2) 2024.06.30