본문 바로가기

전체 글

(99)
[WEB] 세 가지 웹 브라우저 간 통신 방식 비교 < postMessage, BroadcastChannel, localStorage event > ✅ 1. postMessage항목설명용도다른 window, iframe, 혹은 popup에 메시지를 전달대상 범위명시적으로 연결된 창 (예: iframe, popup, window.open)브라우저 간❌ (브라우저 탭 간 직접 사용 불가. 열려 있는 창끼리만 가능)origin 제한메시지 수신 시 origin을 반드시 확인해야 보안 보장 가능사용 예시부모 창 ↔ iframe, 부모 창 ↔ 새로 띄운 팝업 창장점브라우저 내 다른 window 객체와 간단한 통신단점서로 연결되어 있어야만 가능 (탭 간은 불가능) ✅ 2. BroadcastChannel항목설명용도같은 origin의 브라우저 탭, 창, iframe 간 메시지 브로드캐스팅대상 범위동일한 브라우저의 동일 origin 내 모든 탭/창브라우저 간❌ (같은..
[php] 이항 연산자와 삼항 연산자, 그 외에 헷갈릴만한 연산자. ✅ 1. 이항 연산자 (Binary Operator)정의:피연산자(값)를 두 개 받아서 처리하는 연산자입니다.거의 대부분의 연산자가 여기에 속합니다.예시:$a = 10; $b = 5; $sum = $a + $b; // 덧셈: 15 $diff = $a - $b; // 뺄셈: 5 $bool = $a > $b; // 비교 연산: true 종류:산술 연산자 (+, -, *, /, %)비교 연산자 (==, ===, !=, >, =)논리 연산자 (&&, ||, and, or)대입 연산자 (=, +=, -=, .=)비트 연산자 (&, |, ^, >)✅ 2. 삼항 연산자 (Ternary Operator)정의:조건문을 한 줄로 축약해서 쓸 수 있는 3개의 피연산자를 가지는 연산자입니다.문법:조건 ? 참일_경우 : 거짓일..
[SocketIO] MongoDB Change Stream 중복 이벤트 문제 해결 과정 1. 문제 상황MongoDB Change Stream을 사용해서 devices 컬렉션의 변경을 감지하고,관리자(admin)에게 실시간으로 socketlist 변경을 알리고 싶었음.하지만, DB에 변경이 일어날 때마다 Change Stream 이벤트 로그가 여러 번(2번 이상) 출력되어 혼란이 있었음. 2. 원인 분석서버 단독 실행으로 changeStream 등록이 이중으로 되었거나, 서버 실행이 중복되는 등의 문제가 아님을 확인.이벤트 등록 로그와 이벤트 실행 로그를 통해 saveSocketListOrder() 함수에서 newOrder 배열의 각 _id에 대해 updateOne을 반복 실행이 이루어진다는 것을 발견.MongoDB Change Stream은 실제로 값이 바뀌는 document마다 이벤트를 ..