스파르타내일배움캠프TIL
-
[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 시간 이후 게임 목록에서 사라지도록 설정) -..
-
[TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-6)TIL-sparta 2024. 7. 2. 12:59
> 과제 진행 간 완료한 사항 및 문제점과 해결 과정을 정리해보았다. 학습 키워드: Node.js, net, TCP, socket, Buffer, Protobuf 1. 완료한 과제 진행 사항1) 필수 요구사항 구현 완료: 필수 요구사항 기능 구현 by donkim1212 · Pull Request #4 · donkim1212/sparta-ch5-tcp-game-server작업 내용 #2 에 명시된 모든 필수 기능 구현 완료 관련 사항 개인 블로그 TIL 링크, 참고github.com - 유저의 위치 정보 수신 및 업데이트 - User와 Game 클래스, 접속중인 유저 목록을 담은 userSessions와 활성화된 게임 인스턴스 목록을 담은 gameSessions 객체, 그리고 각각의 객체를 관리하는 함..
-
[TIL] 스파르타) Chapter 5 주특기 플러스 개인 과제 진행 (TCP 게임 서버, D-7)TIL-sparta 2024. 7. 1. 22:57
학습 키워드: Node.js, net, TCP, socket, Buffer, Protobuf 1. 완료한 과제 진행 사항1) 프로젝트 기초 세팅: - 주특기 플러스 강의에서 작성된 코드를 기반으로 프로젝트의 베이스 코드 작성을 진행함 - Object.freeze(protoMessages) 를 사용하여 protoMessages를 readOnly 상태로 변경 2. 과제 진행 간 문제점1) Packet parser의 decodePayload 함수에서 namespace와 typeName이 undefined인 문제:const decodePayload = (handlerId, payload) => { try { const { namespace, typeName } = getProtoTypeNameByHand..
-
[TIL] 프로토콜 버퍼 (protobuf) - 2TIL-sparta 2024. 6. 30. 23:30
> 1부: https://donkim0122.tistory.com/95 학습 키워드: Node.js, net, socket, protobuf 2. protobuf 사용1) What is it?: 이번에는 protobuf의 root에 저장해둔 message들이 어떤 식으로 사용되는지를 알아보았다. Figure 1에서 푸른색 상자 안에 있는 것들이 proto message 객체에 속한 method들의 모음이다. 다음과 같은 모양으로 사용하게 된다. // common.protosyntax = 'proto3';package common;message Packet { uint32 handlerId = 1; string userId = 2; string clientVersion = 3; ui..
-
[TIL] 프로토콜 버퍼 (protobuf) - 1TIL-sparta 2024. 6. 29. 21:43
학습 키워드: Node.js, net, socket, protobuf 1. protobuf 기본 세팅1) What is it?:이전 TIL(링크)에서 protobuf가 Google에서 개발한 오픈소스 직렬화(serialization) 라이브러리라고 언급한 바 있다. 이번에는 스파르타 강의에서 제공된 예시코드를 통해 protobufjs 라이브러리로 proto 파일들을 읽어들이고 컴파일하여 사용 가능한 상태로 만드는 법을 먼저 알아보았다. 2) How does it work?:npm i protobufjs 시작에 앞서 우선 protobufjs 라이브러리를 설치해준다. // src/protobuf/request/common.protosyntax = 'proto3';package common;message P..
-
[TIL] 스파르타) Node.js 게임서버 주특기 플러스 3주차 강의 수강 (DB, connection pool, migration)TIL-sparta 2024. 6. 28. 18:47
> 주특기 플러스 3주차 3-8과 3-9 강의에서 다뤄진 DB 연동 및 마이그레이션 관련 내용을 정리해보았다. 학습 키워드: DB, MySQL, Node.js, mysql2, connection pool, migration 1. DB Connection & Connection Pooling1) What is it?: 커넥션 풀링(Connection Pooling)은 이전에 학습했던 쓰레드 풀링과 같은 개념으로 데이터베이스와의 연결 여러 개를 미리 생성하여 풀에 저장해두고 필요할 때 마다 꺼내서 쓰는 방식이다. 연결을 캐싱해둔다고 이해하면 되겠다. 미리 생성해둔 연결을 사용하기 때문에 응답 시간이 감소하는 효과가 있다고 한다. 2) How does it work?:// db/database.jsimpor..