-
[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 오류가 출력되는 문제 (해결):
migration을 진행할 때 위와 같은 에러가 출력되었다. 처음에는 RDS의 보안 그룹 설정이 문제인가 싶어 수정해보았으나 결과가 같아서 이전에 수강한 스파르타 강의를 다시 참고하다가 DB 생성 시 추가 설정에 초기 DB 이름 설정 란이 있는 것을 확인했다. 원인은 초기 DB가 생성이 되어있지 않은 상태로 TABLE을 생성하려 했기 때문이었다.
DB_NAME에 적어야 하는 이름이 DB 인스턴스 ID라고 생각했으나 아니었고, 필요한 정보는 DB 인스턴스 내에 생성되어있는 database의 이름을 말하는 것이었다.
서버의 env 설정에서 DB_NAME (connection을 시도할 때 database 옵션 값)을 RDS의 추가 설정에서 만들어 준 DB 이름인 user_db로 변경하여 해결했다.
3. 기타 사항
1) 클라이언트 코드 수정 필요:
- 과제의 도전 요구사항이 클라이언트 코드 (Unity C#) 수정을 요구하고 있어서 수정할 위치를 파악하는데 주력하고 있다. 위의 링크는 과제 repository에서 생성한 issue인데, 현재 진행중인 'DB 연동' 도전 요구사항에서 클라이언트의 어느 부분을 어떻게 수정할지 파악하며 내용을 채워나가고 있다.
--
REFERENCES:> 과제 spec
> 과제 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