본문 바로가기

Backend8

[Socket] 웹소켓 (WebSocket) 웹소켓(WebSocket)?- 양방향 통신 웹소켓은 웹 브라우저와 서버 간의 양방향 통신을 가능하게 하기 위해 설계된 프로토콜 과정1. 핸드셰이크(Handshake)- 웹소켓 연결은 표준 HTTP(S) 요청을 통해 초기화됨.- 클라이언트가 서버에 웹소켓 연결을 요청하고, 서버가 이를 수락하면 HTTP 연결이 웹소켓 연결로 업그레이드됨.  - 클라이언트가 서버에 보낸 HTTP 요청에는 Upgrade: websocket 헤더가 포함  - 서버가 이를 수락하면 응답에 101 Switching Protocols 상태 코드와 함께 웹소켓 프로토콜로의 업그레이드를 명시// 클라이언트 요청 예시GET /chat HTTP/1.1Host: example.comUpgrade: websocketConnection: Upgr.. 2024. 5. 28.
[Socket] 소켓? 소켓(Socket)?- 네트워크 상에서 두 프로그램 간의 통신을 가능하게 하는 소프트웨어 엔드포인트.- 다른 기기, 같은 기기 내의 프로세스 간에 데이터를 주고받을 수 있음.- 소켓은 OSI 모델의 전송 계층(Transport Layer)에 위치, TCP/IP 또는 UDP/IP와 같은 프로토콜을 통해 데이터를 전송.소켓의 종류1. TCP 소켓 (스트림 소켓)- 연결 지향적(연결을 설정하고 통신을 시작)- 신뢰성 있는 데이터 전송 (데이터 순서 보장, 손실 시 재전송)- 예: 웹 브라우징(HTTP), 이메일(SMTP), 파일 전송(FTP) 2. UDP 소켓 (데이터그램 소켓)- 비연결 지향적(연결을 설정하지 않고 통신)- 신뢰성 없는 데이터 전송 (데이터 순서 보장 없음, 손실 시 재전송 없음) 예: 실시.. 2024. 5. 28.
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=' SET collation_connection = 'utf8_general_ci'; ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 2024. 3. 15.
[Node] Stream 이란 (실제 개선 예시) 짜집기한 글입니다. TL;DR - Stream은 데이터, 패킷 ,비트 등의 일련 연속성을 갖는 흐름을 의미하는데-음성,영상,데이터 등의 작은 조각들을 하나의 줄기를 이루어 전송하는 데이터열이다. - 스트림은 데이터를 청크 단위로 쪼개 처리해야 할 때 적절하게 사용할 수 있다. - Node Stream은 결국 EventEmitter의 인스턴스이다. 따라서 이벤트 핸들러를 작성할 수 있다. Stream 이란? Stream은 추상적인 개념으로 데이터를 통일된 방식으로 다루기 위한 가상의 개념이다. 큰 데이터를 다룰 때나, 외부 소스로부터 데이터를 가져올 때 chunk해서 가져온다. 종류 Writable: 데이터를 쓸 수 있는 스트림 쓸 수 있는 스트림(ex. fs.createWriteStream()) fs.c.. 2024. 2. 21.
SLASH 23 - 은행 데이터플랫폼 오픈소스로 전환하기 (Airflow, HDFS, Spark) - 마트 이관 방법 - HDFS 를 데이터 마트로 사용 - Oracle -> Impala -> Spark 로 변환 개선 전 - 하둡에 쌓고, 또 Oracle Exa 에 옮기는 불필요한 분산이 존재 - 대부분 PK 만 지원하면 되어서 하둡 사용 - XStream API 사용함. 2.8 차이남 - update 이후에 것만 가져갈 수 있도록 하는 것이 ETL 성능에 도움이 된다. 2023. 10. 10.
[Docker] 바인드 마운트 vs 볼륨 컨테이너 내부 파일을 변경하는 방법은 아래 4가지가 있다. 그 중 마운트와 볼륨의 차이를 알아보자 - docker cp - Dockerfile ADD - 바인드 마운트 - 볼륨 챗 GPT 답변 Docker는 컨테이너와 호스트 시스템 간의 영구 데이터를 관리하는 두 가지 방법인 볼륨 및 바인드 마운트를 제공합니다. 둘 다 비슷한 용도로 사용되지만 작동 방식과 사용 사례에는 약간의 차이가 있습니다. 도커 볼륨: Docker 볼륨은 Docker 자체에서 관리하며 호스트 시스템의 파일 시스템(기본적으로 /var/lib/docker/volumes)의 특정 디렉토리에 저장됩니다. Docker 명령(docker volume create, docker volume ls 등) 또는 Docker API를 통해 볼륨을 생성.. 2023. 6. 27.
Mysql vs MariaDB vs PostgreSQL 비교 항목 Oracle Mysql MariaDB PostgreSQL 가격 유료(비쌈) 무료 (상업용 버전 존재) 무료 무료 업데이트 성능 조회 성능 분산 처리 병렬 처리 점유율 비고 구글, 링크드인, 아마존, 넷플릭스, 트위터 등에서 사용 Mysql 개발자가 만듦 DB 보안을 위해 데이터 암호화, 접근 제어, 접근 감시 3가지로 구성됨 인스타그램, CISCO, 스카이프, 트립어드바이저, 이케아 등에서 사용 장점 업데이트 성능 뛰어남 ? 신뢰성과 안정성이 매우 높음 대용량 데이터 처리를 위한 기능 구현 단점 복잡한 쿼리 성능 저하 ? 메모리 데이터 저장 못해 업데이트 위주의 대규모 서비스에서는 성능이 불안정 할 수 있다. (이유 지금 모름) 평가 좋은 것 같은데? 못써~ 업데이트보다 조회가 더 많은 경우 사용하.. 2023. 6. 17.
도메인이란 무엇인가? 해결하고자 하는 목표 2020. 10. 16.