함께 자라나기, 깊게 자라나기
Websocket은 단순한 통신구조를 갖고 있기 때문에, 순수 Websocket만으로는 해당 메시지가 어떤 요청인지, 어떻게 처리해야하는지를 처리하는데 있어 까다로움을 가지고있다.What is Stomp?STOMP(Simple Text Oriented Messaging Protocol)은 메세징 전송을 효율적을 하기 위해 탄생한 웹 소켓 프로토콜 중 하나이다.웹 브라우저에서 발행 구독 패턴(Pub-Sub Pattern)을 기반으로 실시간 메시징을 지원할 수 있기 때문에 이점이 있어 이번 프로젝트에서도 테트리스들의 블록에 대한 Canvas의 위치값을 전송하기 위해 사용하게 되었다.또한, STOMP를 사용하여 메세지의 헤더에 값을 줄 수 있어 헤더 값을 기반으로 통신 시 인증처리에 대한 이슈를 해결할 수 있..
· JVM
도입최근 Prometheus로 운영서버의 JVM 관련 Metric을 수집하는 기능을 만들었다. 이때 GC가 메모리를 얼마나 회수해가는지에 대한 지표를 확인할 수 있었는데 "GC가 어떻게 버려진 객체들을 회수하지?" 라는 의문점이 들어 본격적인 Posting을 하게되었다. 그럼 우선적으로 JVM이 무슨 일을 하는가? JVM이 해주는 작업중 Core 한 기능들은 여러가지가있다.클래스 파일 실행JIT 컴파일러 사용GC(Garbage Collector)를 통한 메모리 관리우리는 이 중 GC에 대해서 Deep Dive 해보자 💡What is GC(Garbage Collector)?GC(Garbage Collector)는 우리가 인풋으로 준 클래스파일을 실행하는 도중에 실행되며, Heap 메모리에서 동작하고 JV..
🤔 그핸뭐?(그래서 HandTris가 뭔가요?)😀 웹에서 즐기는 핸드모션 기반 테트리스 대결 게임입니다!사용자 접근성이 좋은 웹에서 조이스틱으로 즐기던 테트리스 게임을 컨트롤러없이 내 손이 조이스틱이 되어 게임을 즐길 수 있다는 점에서 차별점이 존재하는 웹 게임 서비스입니다. 😙 어디서 영감을 받았냐면요제가 평소에 감명깊게 플레이하던 게임 중 '뿌요뿌요테트리스'라는 게임과 'Tetris 99'라는 게임이 있습니다.   두 게임의 공통점은 모두 테트리스의 기존 틀을 깨트렸다는 점에 있었습니다.테트리스는 직관적으로 봤을 때는 그저 블록을 효율적으로 잘쌓으면서 오랫동안 버티는 수동적인 게임이었습니다. 하지만, 두 게임 모두 다른 유저들과의 대결이라는 키워드를 가지고 인터랙티브한 요소들을 추가하여 테트리스..
덕타이핑객체의 본질을 갖게 본다 = 메서드의 동작이 같아도된다실행 시간 (런타임)에 객체의 속성과 메서드를 검사하여 타입을 결정한다.interface People { talk(): void; whoAmI: string;}class Human implements People { whoAmI = "human" talk = () => { console.log(`say ${this.whoAmI} : 말할 수 있어요`); }}class Robot { whoAmI = "robot" talk = () => { console.log(`say ${this.whoAmI} : 말할 수 있어요`); }}const humanInstance = new Huma..
엔드 포인트 간의 실시간 스트리밍을 가능하게 해주는 통신 프로토콜이다.초기 시그널링 서버에서 두 엔드 포인트의 정보가 교환되고, 교환된 정보를 바탕으로 P2P 연결을 맺게 된다.엔드 포인트 간의 실시간 스트리밍을 가능하게 해주는 통신 프로토콜이다.초기 시그널링 서버에서 두 엔드 포인트의 정보가 교환되고, 교환된 정보를 바탕으로 P2P 연결을 맺게 된다.WebRTC에는 어떤 통신 종류가 있는가?P2P(Peer-to-Peer)SFU(Selective Forwarding Unit)MCU(Multipoint Control Unit)P2PICE(Interactive Connectivity Establishment)두 peer간 데이터 송수신시 최적의 경로를 찾아주는 프레임워크두 Peer간 연결 테스트를 위해 SD..
LEE티씨
함께 자라나기