전체 글
데이터베이스 파티셔닝
디비 파티셔닝이란?큰 테이블을 파티션이라는 작은 단위로 나누어 관리하는것사용 이유하나의 DBMS에 너무 큰 table이 들어가면서 용량과 성능 측면에서 많은 이슈가 발생하게 되었고,이런 이슈를 해결하기 위한 방법으로 table을 ‘파티션(partition)’이라는 작은 단위로 나누어 관리하는 ‘파티셔닝(Partitioning)’기법 이 나타나게 되었다 파티션이라는 단위는 무엇인가?하나의 파티션은 데이터베이스 내에서 데이터가 물리적으로 분리되어 저장되는 단위를 말하며,주로 특정 조건에 따라 분리된다아래는 그 조건들의 예시 범위 단위 (Range)특정 값의 범위를 기준으로 데이터를 분리예를 들어, 날짜가 "2024-01-01"부터 "2024-12-31"까지인 데이터를 하나의 파티션으로 저장하고, 다른 연도..
데이터베이스 인덱스
데이터베이스 인덱스란?데이터베이스 인덱스는 책의 목차와 비슷한 역할이다 데이터베이스에서 원하는 데이터를 더 빠르게 찾을 수 있도록 도와주는 도구인덱스를 사용하면 검색 속도를 크게 향상시킬 수 있으며, 이는 특히 대량의 데이터를 다룰 때 중요함 왜 인덱스를 사용하는가?만약 인덱스가 없다면, 특정 레코드를 찾기 위해 모든 레코드를 하나씩 확인해야 함하지만 인덱스를 사용하면 특정 컬럼의 값을 기준으로 데이터를 빠르게 찾아낼 수 있다 사전에서 특정 단어를 찾을 때,앞에서 부터 한장씩 넘기는것이 아닌'사과' 면 'ㅅ' 부분으로 바로 넘어가서 찾는것과 비슷한 이치 인덱스의 종류B-Tree 인덱스: 가장 일반적으로 사용되는 인덱스 타입데이터를 트리 구조로 관리하여 빠르게 검색, 삽입, 삭제가 가능하다 대부분의 관계형..
데이터베이스 Lock의 종류
Lock 이란여러 커넥션에서 동시에 동일한 자원을 요청할 경우순서대로 하나의 커넥션만 변경할 수 있게 해주는 기능동시성을 제어하기 위한 기능 Lock의 종류1. Shared Lock (공유 락)특징: 여러 트랜잭션이 동시에 특정 데이터(주로 읽기 작업)를 공유할 수 있도록 허용하는 Lock입니다.용도: 데이터를 읽기 위해 사용되며, 다른 트랜잭션이 해당 데이터에 대해 쓰기 잠금을 걸 수 없도록 합니다.장점: 여러 트랜잭션이 동시에 데이터를 읽을 수 있기 때문에 읽기 작업의 효율성을 높일 수 있습니다.단점: 쓰기 작업이 지연될 수 있습니다.2. Exclusive Lock (배타 락)특징: 한 트랜잭션만 특정 데이터에 접근할 수 있도록 허용하는 Lock입니다. 주로 쓰기 작업을 위해 사용됩니다.용도: 데이..
데이터베이스 정규화
정규화란? 정규화(Normalization)란 데이터베이스의 데이터 중복과 불일치를 줄이기 위해 데이터 구조를 체계적으로 정리하는 과정 왜하나?일관성,무결성을 높여 데이터 삽입, 수정, 삭제 시 발생할 수 있는 여러 문제를 효과적으로 방지하기 위해서새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다 정규화의 종류제 1정규화(1NF)각 테이블의 모든 필드가 원자값(Atomic Value)을 가져야 한다즉, 하나의 칸에는 하나의 값만 존재해야 한다각 컬럼이 하나의 속성만을 가져야한다.하나의 컬럼은 같은 종류나 타입(type)의 값을 가져야한다.각 컬럼이 유일한 이름을 가져야한다.칼럼의 순서가 상관없어야한다.제 2정규화(2NF)두 번째 정규형은 첫 번째 정규형을 ..
경쟁 조건(Race Condition)
경쟁 조건이란경쟁 조건(Race Condition)이란 여러 프로세스나 스레드가 공유 자원에 동시에 접근하여, 실행 순서에 따라 결과가 예측 불가능하게 달라지는 상황을 말한다이 경쟁조건을 해결하기 위한 방법 중 하나가 자원에 대해 Lock을 거는 것이고그 Lock이 적절히 걸리지 않았을때, 데드락이 발생하게 되는것 같다 임계영역(Critical Section)경쟁조건을 유발시키는 코드영역을 임계영역(Critical Section)으로 정의합니다.

메모리
메모리 계층구조위로 올라갈 수록빈도: 많아짐속도: 빨라짐가격: 비싸짐용량: 작아짐마지막 하드디스크(ssd)빼고는 다 휘발성(전기가 없으면 데이터 사라짐)가상메모리가상 메모리는 적은 메모리로 여러 프로세스를 실행시키기 위한 시스템메모리가 실제 메모리보다 많아 보이게 하는 기술프로그램을 실행하면 필요한 페이지들이 가상 메모리의 주소 공간에 할당됨하지만 물리 메모리에 모든 페이지를 올려놓을 수 없음(여러 프로세스가 실행중일때)그래서 실제로 자주 사용되는 페이지들만 물리 메모리에 저장된다나머지 덜 자주 사용되는 페이지들은 스왑 영역으로 보내져 디스크에 저장프로그램이 스왑 영역에 있는 페이지를 필요로 하면운영체제가 해당 페이지를 스왑 인하여 물리 메모리로 불러오고, 그 자리에 잘 안쓰는 다른 페이지를 스왑 아웃하..

디비 데드락
디비 데드락이란? 위 그림처럼 데드락(교착 상태)은 두 개 이상의 트랜잭션이 서로가 점유한 자원을 요청하면서 무한정으로 대기하는 상황이다이로 인해 해당 트랜잭션들은 더 이상 진행할 수 없게 되어 시스템의 성능과 안정성에 부정적인 영향을 미침 데드락이 발생하는 조건 데드락이 발생하기 위해서는 다음 네 가지 조건이 모두 만족되어야 한다상호 배제(Mutual Exclusion): 자원은 한 번에 한 트랜잭션만 사용점유와 대기(Hold and Wait): 이미 자원을 점유한 트랜잭션이 추가적인 자원을 요청하며 대기비선점(No Preemption): 자원을 점유한 트랜잭션은 자발적으로 자원을 해제하기 전까지 그 자원을 강제로 빼앗길 수 없다순환 대기(Circular Wait): 트랜잭션들이 원형으로 자원을 서로..

데드락(deadlock)이란
데드락이란 프로세스가 다른 자원을 기다리면서 영원히 실행이 멈추는 상태‘교착 상태’라고도 하며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생합니다.process 1은 resource 2를 필요로하고Process 2는 resource 1을 필요로해서 대기중이지만 process 2가 끝나야 Process 1이 가능하고 Process1이 끝나야 Process2가 가능한 상태그래서 계속 물고 물려서 어느것도 끝나지 않고 멈춰있는 상태 데드락의 발생 조건 상호 배제(Mutual Exclusion): 자원은 한 번에 하나의 프로세스만 사용할 수 있어야 함점유 및 대기(Hold and Wait): 자원을 점유한 상태에서 다른 자원을 요청하면서 기다려야 합니다.비선점(Non-preemption): 한 ..