[비선형] 균형 이진 탐색 트리
·
CS/Data Structure
❐ Description`이진 탐색 트리`가최악의 경우 선형이 되는 것을 방지하고 스스로 균형을 잡는 [균형 이진 탐색 트리]인AVL과 RBT에 대해서 간단하게 정리해보자.     ❐ AVL (Adelson - Velsky and Landis tree)1. AVL 트리는 무엇일까AVL 트리는 BST의 한 종류로, 모든 노드에서 균형 조건을 유지하도록 설계된 [자기 균형 이진 탐색 트리]다. 2. 특징모든 노드에서 왼쪽 서브트리와 오른쪽 서브트리의 높이 차이(균형 팩터)가 -1, 0, 1 중 하나여야 한다.삽입 또는 삭제 시 트리가 균형을 잃게 되면, 특정 회전(rotate) 연산을 수행한다.따라서 삽입과 삭제 연산 후에도 항상 균형을 유지한다. 탐색, 삽입, 삭제 연산 모두 O(log n) 시간 복잡도를..
Partitioning
·
CS/Database
❐ Partitioning데이터베이스 파티셔닝(partitioning)은 대량의 데이터를 효율적으로 관리하고 쿼리 성능을 향상시키기위해 데이터를 여러 개의 물리적 파티션으로 나누는 기법이다.     ❐ Partitioning1. Horizontal Partitioning☑️ Horizontal Partitioning이란?하나의 테이블의 각 행을 다른 테이블에 분산시키는 것이다. (컬럼의 갯수는 똑같고, 데이터만 분산)위와 같이 지역별로 사용자 데이터를 분산할 때 사용할 수 있다. ☑️ Horizontal Partitioning 선택 시점은?1. 데이터 크기가 너무 커서 분산 저장 필요할 때2. 지역 분리3. 로드 벨런싱4. 아카이빙 ☑️ Horizontal Partitioning을 적용할 때 생각해볼 ..
Sharding
·
CS/Database
❐ Sharding1. 샤딩이란?샤딩은 동일한 스키마를 가지고 있는 여러대의 데이터베이스에 데이터를 작은 단위로 나누어 분산저장하는 기법이다. 데이터 자체를 분산 저장해서 수평 분할(Horizontal Partitioning)이라고도 한다.데이터를 분배할 때는 샤딩 키(Sharding Key)를 사용한다. 또한 샤딩은 수평 분할(Horizontal Partitioning)이라고 할 수 있다.  샤드(Shard)는 샤딩(Sharding)에서 사용되는 개념으로, 하나의 데이터베이스를 여러 개의 독립적인단위로 나눈 데이터 조각을 의미한다. 각 샤드는 자체적으로 완전한 데이터베이스로 기능하며,전체 데이터베이스 시스템의 일부 데이터를 저장합니다.  2. 샤딩의 목적☑️ 확장성데이터의 양이 많아지고 쓰기/읽기 요청..
SQL과 NoSQL
·
CS/Database
❐ SQL(Structed Query Language)SQL(Structured Query Language)은 관계형 데이터베이스(RDBMS)를 관리하기 위한 언어로,구조화된 데이터를 테이블 형식으로 관리하는 데 사용됩니다. 데이터를 효율적으로 저장, 수정, 삭제,검색할 수 있도록 설계되었습니다.고정된 스키마: 사전에 데이터 구조(스키마)를 정의해야 합니다.테이블 기반: 데이터를 행과 열로 구성된 테이블에 저장합니다.관계형 데이터 모델: 테이블 간 관계를 설정하여 데이터를 연결하고 관리합니다.ACID 특성: 트랜잭션의 안정성을 보장합니다.대표적인 SQL 데이터베이스에는 MySQL, PostgreSQL, Oracle 등이 있습니다.     ❐ NoSQL(Not Only SQL)1. NoSQL이란?NoSql..
MVCC (Multi Version Concurrency Control)
·
CS/Database
❒ DescriptionLock을 활용한 concurrency control에서 Lock의 동작원리 및 특징에 대해서 학습했다.하지만 Lock을 사용하여도 데이터의 일관성이 보장되지 않아 2PL이 등장하고, 2PL의 변형 모델도 학습했다.  Lock을 활용한 concurrency control❒ Description지금까지 concurrency control이 무엇인지, 왜 필요한지에 대해서 학습했다.오늘은 동시성 제어를 구현한 기법 중 하나인 Lock과 2PL에 대해서 학습하자.     ❒ Lock의 종류1. write-lock (exclusgilbert9172.tistory.com그리고 Lock은 호환성이 좋지 않다는 점도 표로 확인했다. 호환성이 좋지 못하다는 것은 동시에 처리량이좋지 못하다는 의미..
Lock을 활용한 concurrency control
·
CS/Database
❒ Description지금까지 concurrency control이 무엇인지, 왜 필요한지에 대해서 학습했다.오늘은 동시성 제어를 구현한 기법 중 하나인 Lock과 2PL에 대해서 학습하자.     ❒ Lock의 종류1. write-lock (exclusive-lock)쓰기(배타) 락은 다른 트랜잭션이 같은 데이터를 읽거나 쓰는 것(INSERT, UPDATE, DELETE)을 허용하지않는다. 따라서 잠금이 해제 될 때까지 다른 트랜잭션은 해당 데이터를 읽지도, 쓰지도 못한다.  2. read-lock (shared-lock)다른 트랜잭션이 같은 데이터를 읽는 것을 허용한다. 읽기(공유) 잠금은 읽기 잠금끼리는 동시에 접근이가능하지만, 읽기 잠금이 설정된 데이터에 쓰기 잠금은 사용할 수 없다.     ❒..
Isolation 레벨과 이상 현상들
·
CS/Database
❒ DescriptionConcurrency Control은 트랜잭션이 동시에 실행될 때 발생할 수 있는 여러 문제를 해결하면서, Isolation 수준을보장하는 데 중요한 역할을 한다. 이 내용은 앞선 두 포스팅에서 학습하였다.  ※ 앞선 학습 내용DB Transaction & Concurreny Control (1)DB Transaction & Concurreny Control (2) 오늘은 Concurrency Control 방법론을 통해 구현(보장)되며, 다수의 트랜잭션이 동시에 실행될 때 트랜잭션간의 간섭을 제어하여 데이터의 일관성을 유지하고, 각 트랜잭션이 독립적으로 수행되는 것처럼 보이게 하는 속성인isolation에 대해서 더 자세히 학습할 예정이다.     ❒ Isolation 이상 현상..
Subnet, Subnet Mask, Subnetting
·
CS/Network
❒ Description Subent, Subnet Mask 그리고 Subnetting의 정의에 대해서 알아보고, 서브넷팅 계산하는 법도 공부하자!     ❒ Subnet (서브넷)1. 서브넷이란?서브넷은 하나의 네트워크를 더 작은 네트워크들로 나누는 개념이다.  2. 그렇다면 서브넷은 왜 사용할까?IP 주소의 효율적 사용큰 네트워크를 작은 네트워크로 나누어 IP 주소를 절약네트워크 성능 향상한 서브넷에서 발생한 트래픽은 다른 서브넷에 영향을 주지 않기 때문에 성능 향상보안 강화민감하나 데이터를 다루는 서브넷과 일반 사용자 서브넷을 분리하여 보안 강화확장성필요에 따라 서브넷을 추가 및 조정하여 네트워크를 확장     ❒ Subnet Mask (서브넷 마스크)1. 서브넷 마스크란?서브넷 마스크는 IP 주소..