목록분류 전체보기 (91)
개발자공부일기
지금 게임을 실행해 보면이렇게 내 캐릭터의 분신(?) 이 날 자꾸 밀치고 있다.하지만 다른플레이어의 시점에선 내 분신이 보이지 않는다. 왜 그럴까? 지금 내 코드에선 캐릭터를 랜더링할때 클라이언트에서 본인의 위치로 랜더링하고 세션에 존재하는 "모든" 유저들의 위치정보를 가져와서 한 번 더 랜더링 하기때문에 클라이언트 본인의 캐릭터는 2개가 랜더링 되는것이다! 그래서 단순하게 모든 유저들의 위치정보를 반환할때 클라 본인의것만 제외하고 반환하면 안될까..? 했고 // 모든 유저 위치 정보 가져오기 getAllLocation(userId) { const maxLatency = this.getMaxLatency(); // 최대 레이턴시 가져오기 const locationData = this.use..
버퍼객체를 주고받는 테스트를 하던 와중 이런 오류들이 클라이언트(unity)에서 발생했다. 뭐라는지 알아보자 Deserialize: Failed to deserialize data. Exception: System.IO.EndOfStreamException: Attempted to read past the end of the stream. at ProtoBuf.ProtoReader+State.ThrowEoF () [0x00000] in /_/src/protobuf-net.Core/ProtoReader.State.ReadMethods.cs:809 at ProtoBuf.ProtoReader+StreamProtoReader.Ensure (ProtoBuf.ProtoReader+State& state, Sy..
운영체제(OS)운영체제(OS, Operating System)는 컴퓨터 시스템의 핵심 소프트웨어로, 컴퓨터 하드웨어와 응용 프로그램 간의 상호작용을 관리하고 제어하는 역할을 한다. 운영체제의 목적은 사용자와 하드웨어 사이의 인터페이스를 제공해 효율적으로 응용 프로그램이 동작하도록 지원하고, 시스템 자원을 효율적으로 관리하여 응용 프로그램이 원활하게 동작할 수 있도록 한다. 운영체제의 코어(핵심) 부분을 커널(Kernel)이라고 하는데, 일반적으로는 커널에 여러가지 기능(라이브러리, 시스템 프로그램 등등)이 추가된 상태를 통칭해서 운영체제(OS)라고 한다.운영체제의 주요 역할프로세스 관리CPU와 같은 시스템 자원을 여러 프로세스가 효율적으로 사용할 수 있도록 관리합니다.프로세스 생성, 삭제, 상태 전환..
1. 버퍼 객체란?Buffer는 Node.js에서 제공하는 바이너리 데이터를 처리하기 위한 객체입니다. 소켓 통신과 같은 네트워크 데이터 송수신에서 주로 사용됩니다.주요 특징:고정 크기:Buffer는 고정 크기의 메모리 공간을 사용하며, JavaScript의 동적 배열과 달리 변경할 수 없습니다.바이너리 데이터:문자 데이터뿐만 아니라 이미지, 오디오, 파일 등의 바이너리 형식 데이터도 처리할 수 있습니다.빠른 데이터 조작:네트워크 통신에서는 빠르고 효율적으로 데이터를 처리해야 하며, Buffer는 이를 가능하게 합니다.2. 소켓 통신과 버퍼소켓 통신에서 데이터는 네트워크를 통해 패킷 단위로 전송되며, 이 데이터는 Buffer 형태로 수신됩니다. 이후, 이를 문자열 또는 다른 형식으로 변환하여 처리합니다...
RAM의 정의와 역할CPU와 보조기억장치 간에는 큰 데이터 전송 속도 차이가 있고, 두 장치 사이에 운영 체제가 중재 역할을 하므로, CPU는 보조기억장치에 직접 접근할 수 없다. 이 문제를 해결하기 위해, 실행될 프로그램이나 데이터는 보조기억장치에서 먼저 주 메모리인 RAM으로 복사된다. RAM은 휘발성 메모리로, 전원이 꺼지면 그 내용이 사라지지만, CPU가 빠르게 접근하여 데이터를 읽고 쓸 수 있게 한다. RAM의 용량은 시스템 성능에 큰 영향을 미친다. RAM의 용량이 클수록 보조기억장치에서 더 많은 데이터를 미리 로드하여 저장할 수 있게 되는데, 이는 여러 프로그램을 동시에 실행하거나 대용량 데이터를 처리하는 데 매우 유리하다. CPU가 작업을 수행하기 위해 필요한 임시 데이터를 저장하고, 저장..
선형 보간 (Linear Interpolation)1. 개념선형 보간은 두 점 사이의 값을 직선적으로 계산하는 기법입니다. 이를 통해 연속적인 움직임이나 상태를 부드럽게 보여줄 수 있습니다. 특히, 네트워크 기반 애플리케이션에서 서버와 클라이언트 간 데이터 전송이 불규칙하거나 느릴 때, 중간 상태를 계산해 끊김 없는 시각적 경험을 제공합니다.2. 공식선형 보간은 두 값 AA와 BB 사이에서 tt (0과 1 사이의 값)에 따라 중간 값을 계산합니다.Lerp(A,B,t)=A+(B−A)×tLerp(A, B, t) = A + (B - A) \times tAA: 시작 값BB: 끝 값tt: 보간 계수(0일 때 AA, 1일 때 BB)3. 예제캐릭터의 위치가 서버에서 A=(10,10)A = (10, 10), B=(20..
1. 로드밸런싱의 정의와 목적정의로드밸런싱은 클라이언트의 요청(트래픽)을 여러 서버(노드)로 분산 처리하여 시스템 과부하를 방지하고, 서비스의 안정성과 응답 속도를 높이는 기술입니다. 로드밸런싱의 이점1) 애플리케이션 가용성서버 장애나 유지 관리로 인한 애플리케이션 가동 중지 방지.서버 문제 자동 감지 및 클라이언트 트래픽을 사용 가능한 서버로 리다이렉션.활용 사례:애플리케이션 서버 유지 관리나 업그레이드 중에도 가동 중지 없음.백업 사이트를 통한 자동 재해 복구.상태 확인을 통해 가동 중지 문제 예방.2) 애플리케이션 확장성여러 서버 간 네트워크 트래픽 지능적 분산으로 확장성 지원.이점:트래픽 병목 현상 방지.서버 추가 및 제거가 용이하여 애플리케이션 트래픽 예측 가능.중복성 추가로 안정성 강화.3) ..
대칭키 암호화대칭키 암호화(Symmetric Key Encryption)는 하나의 비밀키를 사용해 데이터를 암호화하고 복호화하는 방식입니다. 송신자와 수신자가 동일한 키를 공유하며, 암호화 속도가 빠르고 구현이 간단하여 널리 사용됩니다. 하지만 키 분배 문제와 키 관리의 어려움이 단점으로 지적됩니다. 암호화 방식 1. 블록형(Block Cipher) 입력을 고정된 크기의 블록으로 나누어 암호화하며, 각 블록은 독립적이거나 이전 블록과 연관된 방식으로 처리됩니다.AES (Advanced Encryption Standard)개요: 미국 NIST에서 표준화한 알고리즘. DES의 후속으로 개발.작동 방식:데이터를 128비트 크기로 나눔.초기 라운드 키 추가 후 여러 라운드를 거침.SubBytes: 비선형 치환 ..