본문 바로가기

공부 및 정리46

RAID RAID란 Redundant Array of Independent(Inexpensive) Disk의 약자로 여러개의 하드 디스크에 데이터를 나누어 저장하는 기술이다.이렇게 여러 디스크에 데이터를 나누어 저장시 다음과 같은 기대 효과를 얻을 수 있다.대용량 단일 볼륨을 사용하는 효과디스크 I/O 병렬화로 인한 성능 향상데이터 복제로 인한 안정성 향상이 여러개의 하드 디스크에 데이터를 나누어 저장하는 방식에 따라서 레벨이라 부르게 되며, 이에 따라서 같은 갯수의 하드디스크를 사용하더라도 성능, 용량 등이 달라지게 된다.이 레벨에 따라 정리를 해보자.먼저 RAID의 Level은 초기에 0, 1, 4, 5, 6으로 5가지가 존재했는데 이후 중첩 레벨같이 여러가지 다른 레벨들이 추가되었다. 여기서.. 2024. 4. 25.
CTE와 Recursive 쿼리 CTE는 Common Table Expression으로 쿼리를 통해 만들어낸 임시적 데이터 세트이다.CTE는 아래와 같이 작성한다.WITH 테이블 이름 AS ( 테이블 쿼리)WITH와 함께 시작하여 사용된다. 이렇게 임시적으로 만든 테이블을 다른 쿼리들에서 가져와 사용할 수 있는 것이다.그렇기 때문에 대부분의 경우 subQuery 문으로 대체 가능하다.하지만 CTE를 사용한다면 훨씬 쿼리문을 훨씬 직관적으로 읽게 도와주게 된다.SELECT f.id, f.first_name, f.last_name, f.pay_rate, j.position_type, sq.average_job_rateFROM freelancer AS fLEFT JOIN job_position AS j ON.. 2024. 4. 25.
[SQL] DELETE, TRUNCATE, DROP 기본적으로 세 SQL 명령어 모두 데이터 삭제시 사용하는 명령어다.하지만 각각의 명령어는 다른 방식으로 작동한다. DELETE (DML)DELETE 명령은 하나 이상의 행을 제거 시 사용한다. 일반적으로는 WHERE 문과 함께 사용하여 특정 조건과 일치하는 데이터를 삭제하는데 사용한다.이때 WHERE 문을 붙이지 않으면 테이블 내의 모든 데이터가 삭제되는데 이 방식은 여전히 행 단위로 처리되기 때문에 상당히 느릴 수 있으며 많은 양의 데이터 삭제 시 많은 리소스를 사용할 수 있다. 또한 행마다 트리거를 활성화 할 수 있다.또한 COMMIT 명령어가 적용되기 전이라면 DELETE 작업은 로그를 남기기 때문에 삭제된 데이터를 ROLLBACK 해 복구 할 수 있다. TRUNCATE (DDL)T.. 2024. 4. 24.
동기, 비동기, Blocking, Non-Blocking 동기, 비동기, Blocking, Non-Blocking에 대해서는 알고 있었지만 Blocking과 동기, Non-Blocking과 비동기의 차이에 대해서 설명해보라고 하면 대략 정신이 멍해지기에 이를 정리해보려 한다. 먼저 익숙한 놈들끼리의 차이를 알아보자. Blocking과 Non-Blocking의 차이 먼저 Blocking과 Non-Blocking은 작업의 수행 여부를 결정하는 방식에 대한 차이이다. Blocking 방식은 호출된 함수가 자신의 작업을 모두 마칠때까지 호출한 함수의 제어권을 반환하지 않는다. 이 때문에 호출한 함수는 결과를 기다리는 동안 다른 작업을 수행할 수 없게 된다. Non-Blocking 방식은 호출된 함수가 바로 제어권을 호출한 함수에 반환하며, 작업의 완료 여부와 상관 없.. 2024. 4. 14.
[Kafka] Kafka 간단 정리 Kafka 개요 카프카는 대규모 실시간 데이터 스트리밍 처리를 위한 분산 스트리밍 플랫폼으로 LinkedIn에서 개발되어 현재는 Apache 재단에서 오픈소스로 관리되고있다. Kafka는 고성능, 확장성, 내구성, 신뢰성을 제공하며 실시간 데이터 파이프라인과 스트리밍 애플리케이션의 구축에 이상적이다. Kafka는 여러 컴퓨터가 모여서 Cluster를 구축할 수 있다. Kafka Cluster는 이러한 Kafka를 이루는 Broker라는 것들이 모인 집단을 의미한다. Apache Kafka? Confluent Kafka? Kafka에 대해서 찾아보면 Confluent Kafka와 Apache Kafka가 있는 것을 볼 수 있다. Apache Kafka는 오픈소스로 Apache 재단에서 관리중인 소프트웨어이.. 2024. 4. 5.
[Airflow] 비트코인 일일 분 봉 데이터 파이프라인 프로젝트 (작업편) 개요 이전 환경 설정 포스트는 아래 링크를 이용하면 된다. [Airflow] 비트코인 일일 분 봉 데이터 파이프라인 프로젝트 (환경 설정편) [Airflow] 비트코인 일일 분 봉 데이터 파이프라인 프로젝트 (환경 설정편) 개요 최근 Airflow에 대해서 공부해보며 데이터에 대해 간단한 파이프라인을 만들어 데이터베이스에 저장하는 프로젝트라도 직접 해보면 좋겠다 싶었다. 요즘 가격이 미친듯이 오르는 비트코인 bestech49.tistory.com 이 포스트에서는 실제 코딩을 통한 Upbit API 호출 및 데이터베이스 저장 과정을 다룬다. Upbit API 확인 분(Minute) 캔들 업비트 개발자 센터 docs.upbit.com 먼저 내가 사용할 API는 Upbit의 분봉 호출 API이다. 아주 친절하.. 2024. 3. 6.