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 연결로 화상 연결 / 음성 연결을 위한 별도의 서버가 존재하지 않음- ..
🔥 CS 개념 복습 자료구조    OS프로세스와 쓰레드 란?프로세스(Process)- 메모리에 로드되어 실행되고 있는 프로그램의 독립적인 개체- 기본적으로 최소 1개의 쓰레드를 가짐- 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받음- 스케줄링의 대상이 되는 작업(task) -> 실제로는 쓰레드 단위로 스케줄링쓰레드(Thread)- 프로세스 내에서 실행되는 흐름의 단위- 각각 Stack만 따로 할당, Code, Data, Heap영역은 공유동시성과 병렬성 이란?동시성(Concurrency)- 하나의 코어가 타임 슬라이스를 통해 동시에 실행되는 것처럼 보이게 하는 기술- 여러 작업(쓰레드)의 문맥을 빠르게 전환해 동시에 처리하듯 보이게 하는 것- I/O 작업이 많은 웹서버 ..
Spring SecurityArchitectureSpring Security란?인증(Authentication), 권한(Authorize) 부여 및 보호 기능을 제공하는 프레임워크(Java / Java EE)- 인증 : 해당 사용자가 본인이 맞는지를 확인하는 절차- 인가 : 인증된 사용자가 요청된 자원에 접근 가능한가를 결정하는 절차인증(Authentication) 방식1. Principal-Credential 방식 : username, password를 이용하는 방식2. 이중 인증(two factor 인증) : 사용자가 입력한 개인정보를 인증 후, 다른 인증 체계(ex: 물리적인 카드 등)를 이용해 두가지의 조합으로 인증하는 방식3. 하드웨어 인증 : 자동차 키와 같은 방식* Spring Securit..
Virtual Memory가상 메모리 관리가상 메모리 관리에서 가장 중요한 것은 얼마나 disk를 덜 방문하느냐disk에 데이터를 read, write를 하는 작업들은 느리기 때문임 페이징고정된 크기(page 단위)로 메모리 공간을 분할해 가상 메모리를 관리하는 기법필요성1. 메모리 공간이 고르게 분할되어 있기 떄문에 빈 공간이 작게 분할되어 유용하게 사용될 수 있어 외부 단편화 해결2. 필요한 메모리보다 조금 더 큰 크기의 메모리를 할당하여 내부 단편화가 발생하더라도 크게 문제되지 않음3. 물리 메모리보다 더 큰 주소 공간을 제공해 프로세스가 물리 메모리에 직접 접근하지 않고, 가상 주소를 통해 메모리 접근4. 필요한 페이지만 물리 메모리에 로드해 메모리 사용을 최적화5. 각 프로세스마다 독립적인 페이..
fork 더보기모든 케이스를 통과한게 아니라 중간에 틀린 내용이 있을 것으로 예상..fork()자식 프로세스(쓰레드)를 생성하고 부모 프로세스(쓰레드)의 내용을 자식에게 복사함tid_t fork(const char *file_name, struct intr_frame *f){ return process_fork(file_name, f);}process_fork()커널의 인터럽트 프레임을 부모 구조체 내부의 parent_tf에 복사함(자식에게 복사해주기 위함)tid_t process_fork(const char *name, struct intr_frame *if_ UNUSED){ struct thread *parent = thread_current(); // 부모 쓰레드 memcpy(&parent->par..
728x90
반응형
개발찾아 삼만리
'정글' 태그의 글 목록