전체 글579 MAC Spotlight 파일 인식하지 못할 때 해결하는 방법 MAC Spotlight 파일 인식하지 못할 때 해결하는 방법 Mac의 Spotlight는 컴퓨터 내 파일 및 앱을 검색하는 기능을 제공합니다. 재 인덱싱은 Spotlight가 시스템을 검색할 때 파일 및 앱을 인덱싱하도록 하는 프로세스입니다. 커맨드 라인에서 Mac의 Spotlight를 재 인덱싱하는 방법은 다음과 같습니다: Spotlight를 일시적으로 비활성화합니다. Spotlight의 인덱싱을 중지하려면 다음 명령어를 실행합니다: sudo mdutil -a -i off Spotlight 인덱스를 삭제합니다. 다음 명령어를 실행하면 Spotlight 인덱스가 삭제됩니다: sudo rm -rf /.Spotlight-V100/* Spotlight 인덱싱을 다시 활성화합니다. 인덱싱을 다시 시작하려면 다.. ETC 2023. 3. 11. Intro. Face-based Cryptographic Key Generation 1. Introduction 생체인식 왜 쓰는가? 사람들이 복잡한 임의의 문자열을 기억하거나 물리적 장치를 휴대할 필요가 없음 생체 인식 데이터는 변별력이 낮고, 변동성이 높아 문자열로 표현하기 어렵다 Key를 사용하기 어려운 점이 존재한다 FKGS(Face-based Cryptographic Key Generation) 생체 인식 키의 특징 추출 및 생성을 위한 머신러닝 기반 접근 방식 특히 딥러닝 기반 접근 방식 FKGS의 2단계 키 생성 사용자의 원시 생체 인신 정보 → 생체 인식 키 도출 암호화 키 재구성하는데 사용되는 도우미 데이터 생성 공격자는 도우미 데이터로만으로는 키를 추측하지 못함 키 재생산 키 재생성시 도우미 데이터를 통해 다른 생체 인식 샘플로도 동일한 생체 인식키 도출 가능 앞서 기.. DEV 2023. 3. 8. CodingTest 감 살리기 with Programmers - 3일차 CodingTest 감 살리기 with Programmers 위장 from collections import defaultdict def solution(clothes): answer = 1 dic = defaultdict(list) for cl in clothes: dic[cl[1]].append(cl[0]) for d in dic: answer*=len(dic[d])+1 return answer-1 딕셔너리에 값을 종류 별로 입력한 후에 못든 경우의 수 -1을 하였다. 특정 옷 종류+1개의 경우의 수 - 옷을 전혀 입지 않은 수가 원하는 값이기 때문이다. 베스트 앨범 from collections import defaultdict def solution(genres, plays): answer = [.. 알고리즘 풀이 2023. 3. 3. CodingTest 감 살리기 with Programmers - 2일차 CodingTest 감 살리기 with Programmers 코딩 테스트를 벼락치기 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 K번째수 def solution(array, commands): answer = [] for c in commands: s,d,n = c result = array[s-1:d] result.sort() answer.append(result[n-1]) return answer 기능 개발 머리 박아식 풀이 def solution(progresses, speeds): answer = [] p = list(map(calc,progresses)) check = [0 for i in range(len(p))] # 선행 프로세스가 끝난 상태에서 자신의 일이 다 끝나야.. 알고리즘 풀이 2023. 3. 2. CodingTest 감 살리기 with Programmers - 1일차 CodingTest 감 살리기 with Programmers 코딩 테스트를 준비 하게 되어서, 기본적인 문법도 되짚고, 감을 되찾기 위해 시작합니다 OX퀴즈 def solution(quiz): answer = [] for q in quiz: var1,c,var2,equal,result = map(str,q.split()) if int(result) == calc(var1,var2,c): answer.append("O") else: answer.append("X") return answer def calc(var1,var2,c): if (c=="-"): return int(var1)-int(var2) else: return int(var1)+int(var2) map(function,iterable) map.. 알고리즘 풀이 2023. 3. 1. WebRTC Signaling 프로세스 - 기초 WebRTC Signaling 프로세스 - 기초 Intro. WebRTC는 완전 P2P 기술이라, 서로 다른 네트워크에 있는 2개의 디바이스들을 연결하기 위해, 디바이스들의 위치와 미디어 포맷 협의가 필요하다 이 과정을 시그널링이라고 한다. 혼자 프로그램을 만들다보니, 디렉터리 구조나 함수 등을 모듈화하는데에 고민이 있고, 시그널링 관련 로직 처리에 대한 지식이 부족하기에 기술한다 Server 측 준비 사항 WebRTC 자체에서는 시그널링에 관한 전송 메커니즘을 제시하지 않으므로, 개발자가 취향껏 시그널링 서버를 통해 시그널링 관련 정보를 전달하면 된다. 서버의 역할 새로운 유저 등록, username 세팅 ,채팅 메세지 전송 등등 시그널링과 ICE Negotiation 특정 유저에게 메시지를 보낼 수 .. DEV/Backend 2023. 3. 1. Webrtc 통신 방법 WebRTC 통신 설정하는 방법 Intro. 왜 궁금한가? socket.io로 방 관리를 하고, 시그널링 서버와 미디어 서버를 배포했다. fastify로 서버 인스턴스도 만들고 말이다. 그런데 막상 시그널링 코드를 짜려고 보니, 모르는 것 투성이라 기록한다. 일반적인 연결 흐름은 어떻게 되는가? 사용자 연결 가장 먼저 해야 할 일은 사용자 간의 연결이다. 가장 쉬운 방법은 두 사용자가 동일한 웹 사이트를 방문하는 것이다. 웹 페이지는 각 브라우저를 판별하고, 방 번호나 유저 ID 등을 발급함으로써 유저를 특정한다. 그 후 socket.io 등으로 시그널링 서버에 연결한다. 시그널링 시작 동일한 웹 페이지에 사용자가 접근했으니 이제 시그널링 메시지만 교환하면 된다. 시그널링 메세지란? 단순히 브라우저 사이.. DEV/Backend 2023. 2. 28. WebRTC Overview WebRTC Overview WebRTC(Web Real Time Communication)이란 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고, 스트림 등의 임의 데이터를 교환할 수 있도록하는 기술 제 3자 소프트웨어 설치 없이 종단 간 데이터 공유와 화상 회의를 가능하게 한다 WebRTC 사용법 RTCPeerConnection : 두 피어 간의 커넥션을 위한 인터 페이스 커넥션이 열리면 미디어 스트림/데이터 채널들울 커넥션에 연결할 수 있다. 시그널링을 하는 이유는 RTCPeerConnection에 사용할 정보를 얻기 위함 프로토콜,채널,코덱 및 형식, 데이터 전송 방법 등등 MediaStreamTrack : 미디어 스트림 정보를 다루는 인터페이스 Object로 음성,영상,텍스트를 포함하는.. DEV/Backend 2023. 2. 28. fastify - Property 'view' does not exist on type 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 2023. 2. 27. Kurento 미디어 서버 typescript에 설치하는 방법 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 2023. 2. 25. 🌱두려움은 해야할 것을 나타내는 지표이다 🌱두려움은 해야할 것을 나타내는 지표이다 두려움은 미지의 세계를 직면했을 때, 즉 무지할 때에 온다 무지는 어디서 오는가 지식의 부재인가 그 너머에 있는 것을 보라 회피이다 책임, 신념, 양심, 도전에 대한 회피 두려움은 마주치지 않을수록 커진다 평생 도망칠 순 없다 두려움에 정면으로 마주하라 미지의 세게에 질서를 바로 세워라 두려움을 극복한 보상은 필연적이다 그 것은 분명히 인지 여부를 떠나서 당신이 원하던 무언가일 것이다 당연히 두려움만으로 최고 지향점을 그릴 순 없다 애초에 그렇게 설계된 감정이 아니다 일종의 경고등이다 근시적인 사안들의 데드라인을 알리는 것이다 Reference [[Notes/메타 자아를 상상하고, 그 것을 목표로 삼아라|메타 자아를 상상하고, 그 것을 목표로 삼아라]] ETC/Thinking 2023. 2. 25. 평범한 사람이 워라밸 지키는 방법 평범한 사람이 워라밸 지키는 방법 우린 일이 일이 되는걸 방관하는 죄를 지으면 안된다. 일과 삶의 균형은 마음 가짐에 달려있다 일과 삶의 균형을 성취의 대상으로 보기보다, 일과 삶 모두가 삶이 되도록하는게 중요하다 전반적인 균형을 잡고 삶을 추구하라 그렇게 살아야만해서 사는 삶이 아니라 그렇게 살고 싶어 사는 삶이되자. 부자가 부자인 이유가 탱자탱자 놀 수 있어서가 아니라 시간을 나를 위해 쓸 수 있기 때문이다 일과 삶의 균형은 이 둘이 서로 섞이지 않는다는 관점에서 생긴 단어이다. 삶을 이렇게 둘로 나누는게 독이다. 삶을 즐기고 일을 두려한다면 의미가 없다 하루 24시간 중 9시간 일하고, 8시간을 자며, 1시간을 출퇴근에 사용하면 6시간이 당신의 삶이다 하루가 24시간이 아니라 6시간인거다. 일과 삶.. ETC/Thinking 2023. 2. 25. 이전 1 ··· 42 43 44 45 46 47 48 49 다음