본문 바로가기

공부 및 정리/기타 정리8

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.
CAP 정리 분산 데이터베이스를 공부하다가 CAP 정리라는게 계속 나오는데 뭔가 익숙해지지가 않아서 한번 간단히라도 정리해 보려 한다. CAP 정리 CAP 정리는 다음 3가지 조건을 모두 만족하는 분산 컴퓨터 시스템은 존재하지 않음을 증명한 정리라고 한다. 즉, 이 중 최대 2가지 속성만을 만족할 수 있다는 것이다. Consistency(일관성): 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다. Availability(가용성): 모든 요청이 성공 또는 실패의 결과를 반환할 수 있다. Partition tolerance(분할 내성): 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템을 계속 쓸 수 있다. 위 3가지 조건의 앞 글자를 따서 CAP 정리라 부른다. 위 정리는 분산형 시스템에서 정의된 정리로 일반.. 2024. 3. 6.
트랜잭션과 ACID 데이터베이스를 공부하다 ACID와 트랜잭션에 대해서 공부하게 되어 간단히만 정리해본다. 데이터베이스에서 트랜잭션(Trasaction)이란 “쪼갤 수 없는 업무 처리의 최소 단위”를 의미한다. 예를 들어 아래와 같은 상황이 있다고 하자. A라는 사람이 B에게 1000원을 지급한다. B가 그 돈을 받는다 이러한 상황은 송금과 같은 것으로도 생각할 수 있다. A가 B에게 돈을 보내면 B의 계좌에는 돈이 들어와야만 한다. 만약 A가 돈을 보냈음에도 B의 계좌에 돈이 들어오지 않는다면 이건 큰 문제가 된다. 이러한 경우 다시 A의 계좌에 돈이 원상 복구 되어야 한다. 즉, 위 과정은 하나의 쪼갤 수 없는 단위로 보아야 하며 이를 데이터베이스에서는 트랜잭션이라 한다. 데이터 베이스에서는 이러한 트랜잭션의 처리가 정.. 2024. 3. 5.