본문 바로가기

Etc13

[WebRTC] 웹 RTC 구현해보기 - N : N 연결 목적 web Rtc 를 이용하여 클라이언트 간 1 : 1 영상 및 오디오 연결을 진행한다. 이용한 기능들 Front : html , javascript, socket.io back : Nest js (gateway) 기본 세팅 로컬 비디오 연결 설정 및 피어 정보 연결 설정은 기존과 같음 차이점 이전 글의 경우, 비디오 / 오디오 연결을 위한 코드 흐름이 1 :1에만 초점이 되어 있어, 두 번째 이후 사용자에 연결에 대한 대응이 불가능하다. 다중 사용자 연결을 위해서는 연결 정보를 보관하는 변수 ( 이전 글의 경우, peerInfo ) 를 Object 형으로 관리하여 여러 사용자 간의 연결 정보를 보관해야 한다 다음으로, 신규 사용자와의 연결을 진행할 때, 이미 연결된 사용자와의 재연결은 막아야한다. 그.. 2023. 8. 7.
[WebRTC] 웹 RTC 구현해보기 - 1 : 1 연결 // 연결 후보 전달을 위한 server 코드 @SubscribeMessage("icecandidate") handleIcecandidateMessage(client: Socket, { candidate, selectedRoom }){ client.broadcast.to(selectedRoom).emit("icecandidate", { userId: client.id, candidate }); } 목적 web Rtc 를 이용하여 클라이언트 간 1 : 1 영상 및 오디오 연결을 진행한다. 이용한 기능들 Front : html , javascript, socket.io back : Nest js (gateway) 과정 및 코드 클라이언트 간 1 : 1 연결은 아래와 같은 순서대로 진행된다. 연결이 완성되기 .. 2023. 7. 15.
[ETC] vscode 환경에서 ssh 이용하기 1. 문제 발생 node js 프로젝트 배포를 위해 aws 프리 티어 인스턴스를 구매 후 발급 받은 pem 키를 이용해 ubuntu 터미널 환경에서 git clone을 통해 서버 프로젝트를 배포하였다. 초기 배포 후 테스트를 진행한 결과, 데이터 베이스 통신 문제가 확인되었다. 배포 단계에서 데이터 베이스 연결 문제가 발생한 것은, git 레포지토리에 DB와 연결되는 ID / PW 등의 정보가 공개되면 다른 용도로 악용될 소지가 있기 때문에 (민감 정보를 분리 관리하는 스터디 겸) dotenv 라이브러리를 이용해 DB 연결 정보를 별도 파일에 보관하고, git 레포지토리에는 push 하지 않았기 때문이다. 2. 필요 조치 사실 이 문제는 ubuntu (배포용 pc)로 들어간 후 로컬 환경에서 사용한 DB.. 2023. 5. 20.
[DataBase] SQL ? NoSQL? 그리고 ORM SQL과 NoSQL은 무엇이고, 무슨 차이가 있을까? 데이터 베이스의 종류에는 SLQ과 NoSQL이 있다. 일반적으로는 '데이터 베이스'라고 하면 엑셀과 같이 격자형으로 구성된 데이터 테이블을 연상하는데, 이것이 바로 SQL다. SQL은 Structured Query Language의 약자로, 관계형 데이터 베이스에서 사용하는 주요 언어이다. 반면, NoSQL이라고 하면 SQL이 아니다의 No, SQL 로 이해할 수도 있겠지만 Not only SQLd의 약자이다. 이 단어는 SQL과 달리, 비관계형 데이터베이스를 지칭하는 용어이다. 그렇다면, SQL(관계형 데이터 베이스)과 NoSQL(비관계형 데이터 베이스)의 차이는 무엇일까? 가장 큰 차이는, 같은 테이블 (컬렉션) 에서 정의되지 않은 필드 (행)을 .. 2023. 5. 11.
[Nodejs] package.json 이란? package.json 이란, 특정 node js 프로젝트에서 이용하고 있는 패키지들의 이름과 버전, 의존 관계 등을 표기한 문서이다. node js 프로젝트에서 express 프레임 워크를 통해 간단한 백엔드 서버를 구현하였고, DB는 mongo db를 사용하였으며, DB 데이터 입출력은 mongoose 패키지로 한다고 가정해 보자. 프로젝트를 만든 내 PC에서 24시간 구동해서 서버를 가동할 것이 아니라면, 만든 프로젝트의 파일들은 다른 PC로 옮겨야 할 것이며 해당 PC에도 프로젝트에 사용했던 패키지를 다시 설치해 주어야 한다. 위에서 가정한 케이스의 경우 설치 해야할 패키지는 2종이다. (1. express 2. mongoose) 하지만, 이는 극히 작은 규모의 서버에 한정되며, 일반적인 규모에서.. 2023. 5. 2.
REST? RESTful? REST 는 Representational State Transfer 의 약자로, 웹 서비스를 설계하고 구현하는 데 사용하는 아키텍처 스타일이다. REST의 핵심 개념 중 하나는 자원(Resource)으로, REST 아키텍처에서는 URI를 통해 자원을 식별하고 Http Method (GET, POST, PUT, DELETE)를 사용해 자원의 상태를 조작(조회, 등록, 수정, 삭제) 할 수 있다. Http 프로토콜의 인프라를 그대로 사용하기 때문에, API 사용을 위한 별도의 인프라를 설계, 구축할 필요가 없으며 웹 사이트 빌드 언어 혹은 프레임워크에 구애 받지 않고, 유연한 설계가 가능하다는 장점이 있다. 하지만, 표준이 존재하지 않는다는 점과 일부 구형 브라우저에서는 특정 기능이 작동하지 않는다는 단점.. 2023. 4. 20.