본문 바로가기

전체 글163

[TIL] 24.11.01 (트래블 슈팅) 1. 개요레이턴시 매니저를 추가하기전까지는 클라이언트 종료가 잘 반영되어 User가 게임에서 제거 되었다.2. 트러블슈팅2.1 배경 (아키텍처 다이어그램)2.2 발단레이턴시 매니저를 추가하기전까지는 클라이언트 종료시 게임상에서 캐릭터가 사라져서 없어지고 직전 위치를 데이터베이스에 저장했는데, 레이턴시 매니저를 추가하고 나니까 게임상에서 캐릭터가 사라지지도 않고 데이터베이스에 직전 위치를 저장하지도 않게 되었다. 2.3 전개원인이 뭔가 싶어서 바꾸기전 코드와 바꾼후의 코드를 살펴보고 레이턴시 매니저를 사용하는 부분들을 주석처리하니 캐릭터가 사라지고 직전 위치를 저장하는 기능이 다시 되살아나서 레이턴시 매니저를 사용하는 것이 문제임을 추정하고 있다. 2.4 위기아무리 봐도 어떤게 문제가 되어서 말썽을 일으키.. 2024. 11. 1.
[SQL] BCNF 데이터베이스 정규화 선 요약요약:1NF: 다중 값을 원자값으로 분리.2NF: 부분적 함수 종속성 제거.3NF: 이행적 종속성 제거.BCNF: 모든 결정자가 후보 키가 되는 테이블로 정규화.이 과정을 통해 데이터 중복을 줄이고 데이터베이스의 무결성을 유지할 수 있습니다. 들어가기에 앞서 용어정리 먼저 하겠다.**기본키(Primary Key)**는 테이블 내에서 각 행을 고유하게 식별할 수 있는 속성(열)입니다. 기본키는 중복이 없으며, NULL 값을 가질 수 없습니다.**후보키(Candidate Key)**는 기본키로 사용할 수 있는 모든 속성의 집합입니다. 즉, 테이블 내에서 각 행을 고유하게 식별할 수 있는 속성들 중에서, 하나를 선택하여 기본키로 사용합니다. 후보키 중 하나만 기본키로 선택됩니다.**복합키(Composi.. 2024. 10. 7.
[TIL] 24.10.07 트래블슈팅 트래블슈팅1. 개요서버에서 getGameAsset으로 사용중인 데이터 테이블을 클라이언트 부분에서도 사용해서 stageId 나 Item점수 등을 활용하고 싶다.2. 트러블슈팅2.1 배경 (아키텍처 다이어그램)2.2 발단서버에서는 getGameAsset으로 데이터 테이블을 사용하는 방법을 알고 있는데 클라이언트에서도 getGameAsset을 사용하면 서버와 클라이언트의 분리가 제대로 되지 않는 것 같은 생각이 들었다. 2.3 전개그래서 다른 방식으로 클라이언트가 데이터테이블을 알게 할 수 없을까 찾아보았다. 2.4 위기도무지 방법이 떠오르지 않아서 튜터님께 질문을 하게 되었다.2.5 절정클라이언트가 public 폴더의 내용을 알고 있는것은 서버를 실행할때app.use(express.static("publi.. 2024. 10. 7.
흐름제어와 혼잡제어 **흐름 제어(Flow Control)**와 **혼잡 제어(Congestion Control)**는 네트워크에서 데이터 전송 중의 문제를 해결하기 위한 두 가지 주요 기법입니다. 이 두 개념은 TCP 프로토콜에서 데이터를 효과적으로 전송하고 네트워크 성능을 최적화하기 위해 사용됩니다. 이 둘의 차이점과 각각의 역할을 간단히 설명하겠습니다.1. 흐름 제어 (Flow Control)흐름 제어는 송신자와 수신자 간의 전송 속도를 조절하는 메커니즘입니다. 목적은 수신자의 버퍼가 넘치지 않도록 데이터를 적절한 속도로 전송하는 것입니다. 즉, 송신자가 너무 빠르게 데이터를 보내서 수신자가 처리할 수 없을 때 발생하는 문제를 방지하는 것입니다.주요 특징:수신자의 처리 능력에 맞추어 송신자가 데이터 전송 속도를 조절합.. 2024. 10. 7.