728x90
반응형

크래프톤정글

우리가 기획한 프로젝트에는 타이머(게이지바)가 있는데, 소켓 통신을 이용했더니 게임 화면을 내리거나 다른 탭을 이용하는 경우 다른 사용자들과 시간이 맞지 않는 경우가 있었다.아래와 같은 이유로 발생한 것으로 추측된다.1. 클라이언트 측 시간 동기화- 네트워크 지연 : 웹소켓을 통해 서버와 클라이언트 간에 시간 정보를 주고받을 때 네트워크 지연이 발생할 수 있습니다. 이로 인해 각 클라이언트가 받는 시간 정보에 약간의 차이가 발생할 수 있습니다.- 클라이언트 시스템 시간 : 각 클라이언트의 시스템 시간이 정확하게 동기화되어 있지 않을 수 있습니다. 이는 운영체제 설정, 하드웨어 성능 등 다양한 요인에 의해 발생할 수 있습니다.2. 클라이언트 측 타이머 처리JavaScript 타이머 : 웹 브라우저에서 타이..
WebRTC 구현 및 궁금증📝 서버 세팅import http from "http"; // HTTP 서버 생성을 위한 Node.js 기본 모듈import SocketIO from "socket.io"; // 실시간 양방향 통신 라이브러리import express from "express"; // Node.js 웹 프레임워크// Express 애플리케이션 생성const app = express();// 템플릿 엔진 (Pug) 설정app.set("view engine", "pug"); // Express에게 Pug를 템플릿 엔진으로 사용하도록 설정app.set("views", __dirname + "/views"); // Pug 템플릿 파일이 있는 디렉토리 지정// 정적 파일 제공 (public 디렉토리)a..
WebRTC(Web Real-Time Communication) 정의브라우저 간 플로그인의 도움 없이 서로 통신할 수 있도록 설계된 APIP2P(Peer to Peer) 화상회의, 음성 채팅, 화상 채팅, 데이터 교환 등  통신 원리WebRTC는 P2P 통신에 최적화* P2P란?    - Peer to Peer의 줄임말로 중앙 서버를 거치지 않고 클라이언트 간 직접 통신하는 방식 시그널링(Signaling)- WebRTC를 연결하기 위해서는 Caller와 Callee가 정보를 주고 받는 과정- 정보를 주고 받기 위해서 중간 역할을 하는 시그널링 서버가 필요시그널링 서버(Signaling Server)- WebRTC는 기본적으로 P2P 연결로 화상 연결 / 음성 연결을 위한 별도의 서버가 존재하지 않음- ..
useState자신의 상태 또는 props가 변경되면 Rerendering(리렌더링)useState는 상태 유지값과 그 값을 갱신하는 함수를 반환setState 함수는 새 state를 받아서 컴포넌트 리렌더링 큐에 등록컴포넌트는 다음 렌더링 시에 useState를 통해 가장 최근에 갱신된 state를 적용// state : 상태 유지값// setState : 새로운 state를 받아서 리렌더링 큐에 저장(렌더링 될 때 가장 최근 state 적용)const [state, setState] = useState(initialState); useRefDOM(Document Object Model)이나 React Element에 접근하고자 할 때 사용useRef는 .current 프로퍼티로 전달된 인자(initi..
사용방법1. html 파일에 로 선언2. css로 너비(width), 높이(height) 설정3. 나머지는 Javascript에서 처리    - context(ctx)은 canvas에서 붓 역할(2d, webGL)    - canvas의 사이즈를 설정(css와 동일하게)기본적인 함수// 사각형(fill 또는 stroke를 하기 전에는 보이지 않음)rect(x좌표, y좌표, 너비, 높이);// 색이 채워진 사각형fillRect(x좌표, y좌표, 너비, 높이);// 색을 채움fill();// 선을 그림stroke();// 새로운 경로 시작(이전 경로와 별개의 경로로 나뉨 / 스타일 등이 다르게 각각 적용)beginPath();// 채우기, 선 색상 변경fillStyle = "색상";strokeStyle = ..
🔥 CS 개념 복습 자료구조Call by value,Call by reference차이점?Call by Value- 함수에 값을 전달할 때 값을 복사하여 전달하는 방식- 원본 데이터를 보호할 수 있는 장점- 큰 데이터를 복사하는 경우 성능 저하- 깊은 복사(deep copy)를 통해 불변성을 유지 -> 객체의 중첩된 속성까지 모두 복사해 새로운 객체 생성- 불변성(Immutable)을 지향 -> 완벽한 불변성은 아님    - 객체의 경우: 자바스크립트와 같은 언어에서는 객체를 Call By Value로 전달하지만, 실제로는 객체의 참조 값(메모리 주소)이 복사됩니다. 따라서 함수 내부에서 객체의 속성을 변경하면 원본 객체에도 영향을 미칩니다.    - 원시 값의 경우: 숫자, 문자열, 불리언 등의 원시..
🔥 CS 개념 복습 자료구조    OS프로세스와 쓰레드 란?프로세스(Process)- 메모리에 로드되어 실행되고 있는 프로그램의 독립적인 개체- 기본적으로 최소 1개의 쓰레드를 가짐- 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받음- 스케줄링의 대상이 되는 작업(task) -> 실제로는 쓰레드 단위로 스케줄링쓰레드(Thread)- 프로세스 내에서 실행되는 흐름의 단위- 각각 Stack만 따로 할당, Code, Data, Heap영역은 공유동시성과 병렬성 이란?동시성(Concurrency)- 하나의 코어가 타임 슬라이스를 통해 동시에 실행되는 것처럼 보이게 하는 기술- 여러 작업(쓰레드)의 문맥을 빠르게 전환해 동시에 처리하듯 보이게 하는 것- I/O 작업이 많은 웹서버 ..
728x90
반응형
개발찾아 삼만리
'크래프톤정글' 태그의 글 목록