728x90

CS 3

HashMap과 Red-Black Tree

HashMap과 Red-Black Tree HashMap HashMap은 Map이라는 인터페이스를 구현한 구현체 중 하나이다. 💡 HashMap은 Map의 인터페이스를 구현한 구현체로, 아래의 특징을 가진다. HashMap은 해싱함수를 통해 인덱스를 산출한다. HashMap은 인덱스를 통한 접근으로 시간 복잡도 O(1)의 빠른 성능을 자랑한다. key는 무한하지만 인덱스는 한정되어 있어 충돌은 불가피하다. 충돌을 줄이기 위해 HashMap은 버킷의 사이즈를 조절한다. 충돌이 일어날 시, 충돌 수가 적으면 LinkedList 방식으로 충돌된 객체들을 관리하다가, 임계점을 넘으면 Red-Black Tree 방식으로 객체들을 저장한다. 시간 복잡도는 Linked List가 O(n), Red-Black Tree..

CS 2023.09.10

BASE 속성, CAP 이론 그리고 PACELC 이론

RDBMS는 주로 수직 스케일링 (vertical scaling) 방식 - scale up을 사용하여 성능을 향상시킨다. 이는 서버의 성능을 높이거나 하드웨어를 업그레이드하여 처리 능력을 증가시킨다. 그러나 이러한 방식은 한계에 도달하면 확장성이 제한된다. NoSQL 데이터베이스는 수평 스케일링 (horizontal scaling) - scale out을 지원한다. 데이터베이스를 여러 노드로 분산시키고 부하를 분산시킬 수 있다. 따라서 대규모 데이터 및 트래픽 처리에 적합하다. 이외에도 RDBMS는 가질 수 없는 NoSQL의 스키마 유연성, NoSQL의 대량의 데이터 처리 능력, NoSQL의 높은 가용성 덕분에 NoSQL이 분산 처리에 더 적합하다. BASE 속성 RDBMS는 트랜잭션에 대한 ACID 속..

CS 2023.09.05

가상 메모리

기존에는 프로세스가 실행되는 코드 전체를 메모리에 로드해야했다. 그래서 메모리 용량보다 더 큰 프로그램을 실행시킬 수 없었다. ex ) 100MB의 메모리 환경에서, 200MB 크기의 프로세스를 수행할 수 있도록 가상 메모리를 사용한다. 프로그램에서 실질적으로는 사용되는 부분은 일부이고, 혹은 프로세스의 특정 순간에서 메모리를 사용하기에, 기존의 방식은 비효율적이었다. 따라서 가상 메모리가 필요하다. 물리 주소와 논리 주소 CPU는 실행하고자 하는 프로그램이 메모리의 어디에 있는지 알 수 없다. 메모리에 저장된 값은 시시각각 변하기 때문이다. 새롭게 실행되는 프로그램은 새롭게 메모리에 적재한다. 실행이 끝난 프로그램은 메모리에서 삭제한다. 같은 프로그램을 실행하더라도, 실행할 때마다 적재되는 주소는 달라..

CS 2023.08.22
728x90