2023/02

· DEV/Backend
WebRTC 통신 설정하는 방법 Intro. 왜 궁금한가? socket.io로 방 관리를 하고, 시그널링 서버와 미디어 서버를 배포했다. fastify로 서버 인스턴스도 만들고 말이다. 그런데 막상 시그널링 코드를 짜려고 보니, 모르는 것 투성이라 기록한다. 일반적인 연결 흐름은 어떻게 되는가? 사용자 연결 가장 먼저 해야 할 일은 사용자 간의 연결이다. 가장 쉬운 방법은 두 사용자가 동일한 웹 사이트를 방문하는 것이다. 웹 페이지는 각 브라우저를 판별하고, 방 번호나 유저 ID 등을 발급함으로써 유저를 특정한다. 그 후 socket.io 등으로 시그널링 서버에 연결한다. 시그널링 시작 동일한 웹 페이지에 사용자가 접근했으니 이제 시그널링 메시지만 교환하면 된다. 시그널링 메세지란? 단순히 브라우저 사이..
· DEV/Backend
WebRTC Overview WebRTC(Web Real Time Communication)이란 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고, 스트림 등의 임의 데이터를 교환할 수 있도록하는 기술 제 3자 소프트웨어 설치 없이 종단 간 데이터 공유와 화상 회의를 가능하게 한다 WebRTC 사용법 RTCPeerConnection : 두 피어 간의 커넥션을 위한 인터 페이스 커넥션이 열리면 미디어 스트림/데이터 채널들울 커넥션에 연결할 수 있다. 시그널링을 하는 이유는 RTCPeerConnection에 사용할 정보를 얻기 위함 프로토콜,채널,코덱 및 형식, 데이터 전송 방법 등등 MediaStreamTrack : 미디어 스트림 정보를 다루는 인터페이스 Object로 음성,영상,텍스트를 포함하는..
· DEV/Backend
Fastify - Property ‘view’ Does Not Exist on Type view를 ejs 렌더링을 하려는데, 패키지를 받았음에도 에러가 발생하였다 해결 방법 fastify 미들웨어로 view 엔진을 등록하면 된다. 프로젝트 구조를 나누면서, fastify 인스턴스에 view를 넣지 않아 발생한 문제였다. yarn add @fastify/view import {FastifyInstance} from "fastify"; import fastifyView from "@fastify/view"; import ejs from "ejs"; export default async function (fastify: FastifyInstance) { fastify.register(fastifyView, {..
· DEV/Backend
Intro. 왜 이 글을 쓰는가? kurento-client 라이브러리 ts도 있지만, 사용하고 싶지 않음 적은 레퍼런스, 혹시나 원하는 기능이 없는 경우를 만날 위험 존재 실패 사례 yarn dev @types/kurento-client --save-dev javascript로 된 라이브러리를 ts에서 가져다 쓰기 위해서는 타입을 선언해줘야 하기에 위처럼 install 한다. 하지만, 다운로드가 되었음에도 모듈이 없다는 에러가 발생했다. 해결 방법 yarn dev @types/kurento-client --save-dev yarn add kurento-client import kurento from "kurento-client"; const kurentoClient = kurento("ws://loca..
· ETC/Thinking
🌱두려움은 해야할 것을 나타내는 지표이다 두려움은 미지의 세계를 직면했을 때, 즉 무지할 때에 온다 무지는 어디서 오는가 지식의 부재인가 그 너머에 있는 것을 보라 회피이다 책임, 신념, 양심, 도전에 대한 회피 두려움은 마주치지 않을수록 커진다 평생 도망칠 순 없다 두려움에 정면으로 마주하라 미지의 세게에 질서를 바로 세워라 두려움을 극복한 보상은 필연적이다 그 것은 분명히 인지 여부를 떠나서 당신이 원하던 무언가일 것이다 당연히 두려움만으로 최고 지향점을 그릴 순 없다 애초에 그렇게 설계된 감정이 아니다 일종의 경고등이다 근시적인 사안들의 데드라인을 알리는 것이다 Reference [[Notes/메타 자아를 상상하고, 그 것을 목표로 삼아라|메타 자아를 상상하고, 그 것을 목표로 삼아라]]
· ETC/Thinking
평범한 사람이 워라밸 지키는 방법 우린 일이 일이 되는걸 방관하는 죄를 지으면 안된다. 일과 삶의 균형은 마음 가짐에 달려있다 일과 삶의 균형을 성취의 대상으로 보기보다, 일과 삶 모두가 삶이 되도록하는게 중요하다 전반적인 균형을 잡고 삶을 추구하라 그렇게 살아야만해서 사는 삶이 아니라 그렇게 살고 싶어 사는 삶이되자. 부자가 부자인 이유가 탱자탱자 놀 수 있어서가 아니라 시간을 나를 위해 쓸 수 있기 때문이다 일과 삶의 균형은 이 둘이 서로 섞이지 않는다는 관점에서 생긴 단어이다. 삶을 이렇게 둘로 나누는게 독이다. 삶을 즐기고 일을 두려한다면 의미가 없다 하루 24시간 중 9시간 일하고, 8시간을 자며, 1시간을 출퇴근에 사용하면 6시간이 당신의 삶이다 하루가 24시간이 아니라 6시간인거다. 일과 삶..
· DEV/Backend
ICE는 무엇인가 Interactive Connectivity Establishment (ICE) 는 브라우저가 peer를 통한 연결이 가능하도록 해주는 프레임 워크이다. WebRTC에서는 유저들을 브라우저 간 연결 할 네트워크 인터페이스와 포트를 찾고, 바인딩하는 과정을 ICE로 해결한다. 주의 사항 Peer에 접근 할 때 방화벽을 통과 해야 한다. 단말에 유일한 주소(Public IP)를 할당해야 한다. 라우터가 연결을 차단 할 경우 릴레이(우회)를 해야한다. ICE의 릴레이(우회) 앞서 말했다시피, 라우터 단에서 직접 연결을 차단 할 경우 데이터를 주고 받을 주소를 알 수 없다. 이 때 릴레이 서버를 이용한다. STUN(Session Traversal Utilities for NAT) 클라이언트가 ..
Intro. SDP SDP란 무엇일까? 왜 [[Kurento RTP 제어]] 이야기 할 때 등장하냐? 주고 받는 데이터는 무엇인가 Contents SDP는 해상도나 형식, 코덱, 암호화 등의 멀티미디어 컨텐츠의 연결을 설명하기 위한 메타데이터이다. 기술적으로는 SDP는 프로토콜은 아니다. 하지만, 디바이스 간의 미디어를 공유하기 위한 연결 정보 포맷을 제공한다. WebRTC에서 SDP는 미디어 스트림, 네트워크 주소 및 코덱 정보를 포함한, 두 Peer 간의 통신 세션 매개 변수를 정하는데 사용 된다. WebRTC 피어 간 공유하는 세션 정보를 담은 SDP 오퍼를 생성하고, 다른 피어에게 전달한다. 수신 피어는 SDP 오퍼를 분석하고, 수신 할 수 있는 미디어 유형과 연결 할 수 있는 네트워크 주소가 포..
· ETC/Thinking
책임감이 있다면 무엇을 포기해야 할까. 미성숙하고 쾌락 주의적 단기적 결정들을 포기해야 한다 2살 애기는 순간의 목표에 집중한다. 그건 삶의 복잡성에 대한 성숙한 대응이 아니다 나는 시간을 초월한 자아의 공동체이다. 즉 현재 자신이 취하는 모든 행동을 통제해야 한다 오늘 밤 하고 싶은 행동이 있지만 내일이 있다. 5년 후의 내년의 다음 주의 내가 책임 져야 한다 올바르게 행동하려면 충독적인 만족을 희생해야 한다. 그 순간의 쉬운 탈출법을 희생해야 한다 시간을 초월한 자신들의 최대 이득에 목표에 집중하는 것이다 각 개인이 필요하고 원하는 것의 과정, 호혜와 진실과 사랑으로 책임지는 것 이게 핵심이다 인류의 위대한 발견임. 희생의 의미다. 자신의 어리석음을 희생하는 거다 당신이 상상할 수 없는 최고의 선택을..
· DEV
Postman 자동화하는 방법 with Csv Intro. 어디다가 써먹으려고 하는가? 난 데이터베이스에 더미 데이터를 넣고 싶은데 여간 귀찮은 일이 아니었다. 수 많은 데이터를 Postman으로 하나씩 쿼리를 날려 데이터를 넣는게, 과연 개발자스러운가…? 싶어 꼭 자동화를 하고 싶었다 사용하기에 따라 자신의 API들을 전부다 테스트하는 용도라던가, 서비스 점검 할 때도 사용할 수 있을 것 같다! 사용 방법 Collection과 Request 생성 일단 collection을 만들어야 한다. 쿼리들을 담을 폴더를 생성한다 생각하면 된다 난 사용자 등록 매크로란 이름의 collection을 만들었다. 만든 collection에 오른쪽 마우스 클릭을 하면, Add request가 보인다. 이 걸로 reques..
berom
'2023/02 글 목록