DEV/Backend

· 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..
· DEV/Backend
ICE는 무엇인가 Interactive Connectivity Establishment (ICE) 는 브라우저가 peer를 통한 연결이 가능하도록 해주는 프레임 워크이다. WebRTC에서는 유저들을 브라우저 간 연결 할 네트워크 인터페이스와 포트를 찾고, 바인딩하는 과정을 ICE로 해결한다. 주의 사항 Peer에 접근 할 때 방화벽을 통과 해야 한다. 단말에 유일한 주소(Public IP)를 할당해야 한다. 라우터가 연결을 차단 할 경우 릴레이(우회)를 해야한다. ICE의 릴레이(우회) 앞서 말했다시피, 라우터 단에서 직접 연결을 차단 할 경우 데이터를 주고 받을 주소를 알 수 없다. 이 때 릴레이 서버를 이용한다. STUN(Session Traversal Utilities for NAT) 클라이언트가 ..
· DEV/Backend
TypeORM DataSource is Not Set for This Entity Feat yarn.lock 팀원들의 코드를 머지하고 났더니, 일부 팀원들에게서 DataSource is not set for this entity 에러가 발생했다. 접근 방식 프론트에서 날린 Axios? const handleLoginSuccess = async (code: string) => { const {data} = await axios.post("http://localhost:4000/auth/google/callback", {code}); //FIXME: 유저가 등록되어 있지 않은 경우 미리 데이터 저장하면, user id가 누락 됨 setStoredUser(data); const {status} = data; ..
· DEV/Backend
@fastify/oauth2 라이브러리를 사용합니다 일단, oauth2 라이브러리를 yarn으로 설치합니다. fastify-oauth2 라이브러리는 간단하게 oauth 로그인 기능을 구현 할 수 있도록 보조합니다. yarn add @fastify/oauth2 @Type 추가 @fastify/oauth2 라이브러리를 커스텀해서 사용 할 때, 타입 스크립트에서 인식하지 못하는 경우가 있어 타입을 미리 선언 해줍니다. 루트 디렉터리에 @types/index.ts에 정의하였습니다 import {OAuth2Namespace} from "@fastify/oauth2"; declare module "fastify" { interface FastifyInstance { kakaoOAuth2: OAuth2Namespac..
· DEV/Backend
개요 mysql workbench로 aws에 올린 db에 접근하려는데 connect 에러가 발생했다 에러 해결 과정을 기술 할 것이다 방화벽 3306 포트 해제 Workbench에서 db에 원격 접속하기 위한, 방화벽을 해제 해줘야 한다. AWS LightSail 기준으로 생성한 인스턴스의 Networking에 들어가면 설정 가능하다 바인드 주소 0.0.0.0으로 재설정 my.conf 파일에서 주소를 수정하면 되다 bind-address 등의 설정 파일 위치가 mysql 다운로드 받은 방식이나, mysql 버전에 따라 다르니까 꼭 확인하자 아래처럼, 그냥 임의 경로로 vi해서 추가했을 경우, 에러가 발생한다. 난 mariadb를 사용하고 있기 때문에, /etc/mysql/mariadb.conf.d/에 5..
· DEV/Backend
It is Required That Your Private Key Files Are NOT Accessible by Others. This Private Key Will Be Ignored vscode에서 ssh로 서버에 붙을 때 발생한 문제이다. 내 private key가 다른 사람들에게 노출 될 수 있다는 건데, 처음엔 바탕화면에 키를 저장해둬서 그런 줄 알았다 해결 방안 Mac에서 private key 접근 권한 때문에 발생한 문제였다. 권한을 chmod로 재설정해주면 해결 된다. 나만 읽을 수 있도록 세팅하는 것이다 chmod 400 레퍼런스 Chmod 사용 방법
· DEV/Backend
ERROR 1698 (28000) Access Denied for User ‘root’@‘localhost’ MySql를 쓰다보면 간간히 만나는 문제이다 해결 방안 sudo mysql -u root -p mysql
· DEV/Backend
Package ‘mysql-server’ has no installation candidate AWS LightSail Ubuntu에 mysql-server를 설치하려는데 mysql-server candidate가 없다는 에러가 발생했다 package 업데이트를 안한거라 추측해 sudo apt udpate와 sudo apt upgrade를 했음에도 해결 되지 않았다 해결 방법 mariadb-server로 설치하면 하면 일단 해결 된다 완벽한 해결책은 아니고 임시 방편이다 mysql의 친척이라 mariadb가 되는걸가 sudo apt-get install mariadb-server
· DEV/Backend
Could not open configuration file /etc/apache2/apache2.conf : No such file or director AWS에서 만든 서비스를 아파치로 리다이렉팅 하려는데 오류가 발생했다. 예상 원인은 아파치 vhost 디렉터리를 실수로 통째로 날리고, 다시 재설치했기 때문에 발생한 듯 해결 방안 sudo apt-get purge apache2 sudo apt-get install apache2 purge는 패키지와 그 패키지의 환경설정을 모두 삭제하는 명령어이다. 시원하게 밀고 다시 재설치하면 문제 해결!
· DEV/Backend
Relations userRepository.find({ relations: { profile: true, photos: true, videos: true, }, }) userRepository.find({ relations: { profile: true, photos: true, videos: { videoAttributes: true, }, }, }) 기본적으로 relations 옵션은 main entity와 함께 로딩 되어야 할 경우에 사용된다. 외래키가 있는 등의 상황을 말한다 즉 Sub relation들도 로딩이 되는 것인데 공식 문서에 따르면 join과 leftJoinAndSelect의 shorthand라는데, 단축어 정도로 이해했다. 위의 code는 아래의 SQL 구문으로 변환된다 SELEC..
berom
'DEV/Backend' 카테고리의 글 목록 (6 Page)