반응형 CS32 Polling, Long Polling, WebSocket 웹소켓, 폴링, 롱폴링은 클라이언트와 서버 간에 실시간 또는 거의 실시간으로 데이터를 주고 받는 다양한 방식들이다. 각각의 장단점과 동작 방식에 큰 차이가 있다. 1. 폴링(Polling)동작 방식은 다음과 같다.클라이언트가 주기적으로 서버에 새로운 데이터가 있는지 요청(HTTP GET 요청)을 한다.서버는 요청 시점에 가지고 있는 최신 데이터를 클라이언트에게 응답한다.클라이언트는 일정 시간(예: 1초, 5초)을 기다린 후 다시 서버에 요청한다.특징은 구현이 가장 간단하다. 일반적인 HTTP 요청-응답이니까. 그래서 비효율적이다. 새로운 데이터가 없어도 클라이언트는 계속해서 서버에 요청을 보내야하고 이는 불필요한 네트워크 트래픽과 서버 자원 낭비를 초래한다. 또 클라이언트가 요청하는 주기만큼 데이터 업데.. 2025. 10. 21. redo log(mysql 8.0) MySQL 8.0 에서 Redo log는 데이터베이스의 성능과 안정성을 모두 잡기 윈한 핵심 장치로 사용된다. 모든 데이터 변경은 실제 데이터 파일보다 Redo log에 먼저 기록되어, 시스템 장애 시에도 데이터를 안전하게 복구하고 평상시에는 빠른 쓰기 성능을 보장한다. 안정성 (Crash Safety) : 커밋(Commit)된 트랜잭션의 변경 사항은 Redo log에 먼저 기록이 보장된다. 따라서 서버 전원이 갑자기 꺼지는 등의 장애가 발생해도, 재시작 시 Redo Log를 보고 미처 데이터 파일에 반영되지 못한 내용을 다시 실행하여 데이터를 복구할 수 있다.성능 (Performance) : 디스크의 여러 곳에 흩어져 있는 데이터 파일에 데이터를 쓰는 작업(Random I/O)은 느리다. Redo Lo.. 2025. 9. 16. [DB] Prepared Statement란? Prepared Statement는 데이터베이스 쿼리를 실행 할 때 쿼리를 미리 준비하고 실행할 때 필요한 값만 바인딩하여 사용하는 방식이다. 일반적으로 SQL 쿼리를 실행할 때와 달리, Prepared Statement는 SQL 구문과 데이터 값을 분리하여 처리한다. 이러한 방식은 SQL Injection 공격을 예방하고, 반복적인 쿼리 실행 성능을 향상시키는 등 여러 가지 장점을 제공한다. 일반 Statement의 동작 방식일반적으로 SQL을 실행할 때 다음과 같은 단계를 거친다.SQL 문자열 생성--예시SELECT * FROM users WHERE name = 'Alice'; 2. 파싱 (Parsing) : SQL 문법을 검사하고, 쿼리 구조를 분석한다. 3. 컴파일(Complie.. 2025. 6. 10. [DataBase] 인덱스란? 인덱스란 테이블의 특정 컬럼을 빠르게 조회할 수 있도록 만든 자료구조이다. 보통 B-Tree(Balanced Tree) 구조를 사용하여 빠른 탐색이 가능하다. 데이터를 직접 읽는 게 아니라 색인을 먼저 보고 해당 데이터 위치를 찾아가게 된다. 예제blog 테이블에서 blog_category = 1인 데이터를 찾는 쿼리SELECT * FROM blog WHERE blog_category = 1; 인덱스가 없으면데이터 전체를 처음부터 끝까지 풀 스캔(Full Table Scan)100만 개 중에서 10개만 필요해도 전부 읽어야 하기 때문에 느리다. 인덱스를 추가하면?인덱스 = 책의 목차 같은 역할CREATE INDEX idx_blog_category ON blog (blog_category);이제 blog_.. 2025. 3. 26. 이전 1 2 3 4 ··· 8 다음 반응형