분류 전체보기

개요 해당 글은 쉬운코드님의 https://www.youtube.com/watch?v=0PScmeO3Fig&t=31s 를 시청하고 개인적으로 정리한 글입니다 :) 쓰기 락 (베타 락) read/write 할 때 사용한다 다른 트랜잭션이 데이터를 read/write 하는 것을 허용하지 않는다. 데이터베이스에서 값을 변경하는 작업은 단순히 값 하나 바꾸는 것보다 더 복잡한 과정을 거친다 (인덱스 테이블 갱신, 파일 입출력), 같은 데이터에 read/write 가 발생하면 예상치 못한 동작을 할 수 있다. 읽기 락 (공유 락) read 할 때 사용한다 다른 트랜잭션이 같은 데이터를 읽는 것을 허용한다 락을 사용해도 이상한 결과가 반환될 수 있을때 (x=100, y=200) 이란 데이터베이스가 존재할때 서로 다..
개요 해당 글은 쉬운코드님의 https://www.youtube.com/watch?v=89TZbhmo8zk 영상을 시청하고 개인적으로 정리한 글입니다:) Unrecoverable schedule 스케쥴 내에서 1)commit된 transaction 이 2)rollback 된 transaction이 write 했었던 데이터를 읽은 경우, rollback을 해도 이전 상태로 회복 불가능 할 수 있기 때문에 이런 schedule 은 DBMS 가 허용하면 안됨 durability: 이미 커밋된 트랜잭션은 rollback 할 수 없음 Recoverable schedule 스케쥴 내에서 그 어떤 트랜잭션도 자신이 읽은 데이터를 write 한 트랜잭션이 먼저 commit/rollback 하기 전까지는 commit 하..
개요 해당 글은 쉬운코드님의 https://www.youtube.com/watch?v=DwRN24nWbEc 강의를 시청하고 개인적으로 정리한 글입니다 :) 트랜잭션 동시성 제어 K 가 H에게 20만원을 이체하고 H도 본인 계좌에 30만원을 입금한다면 여러 형태의 트랜잭션 실행이 가능할 수 있음 Schedule 여러 transaction 들이 동시에 실행될 때 각 transaction 에속한 operation 들의 실행 순서, 각 transaction 내의 operation 들의 순서는 바뀌지 않음 트랜잭션 1가 K 자원을 읽을때 : r1(K) 트랜잭션 1가 K 자원을 쓸때 : w1(K) Serial Schedule transaction 들이 겹치지 않고 순차적으로 실행될때 성능 어떠한 operation ..
개요 서비스를 개발하다보면 데이터베이스 쿼리 연산으로 인해서 애플리케이션 서버의 성능이 떨어지는것을 경험할 수 있습니다. 여러가지 방법을 사용하여 이러한 성능 문제를 개선할 수 있는데요. 해당 게시글에서는 대표적인 11가지 방법에 대해 설명하겠습니다. 1. 인덱싱 단일 인덱스 조건절에 자주 사용되는 컬럼을 인덱싱하면 보다 빠르게 조건에 만족하는 데이터들을 조회할 수 있습니다. 하지만 인덱스를 적용하면 데이터가 삭제, 추가 될 때마다 인덱스 테이블을 갱신해서 성능 이슈가 발생할 수 있습니다. CREATE INDEX idx_username ON users(username); 복합 인덱스 복합인덱스는 여러 개의 조건으로 데이터를 탐색할 때 빠른 속도로 탐색할 수 있도록 도와줍니다. CREATE INDEX id..
JPEG 압축과정 사람의 시각적특성을 이용하여 Color Sampling 과 주파수 계수 양자화 과정에서 정보를 손실하면서도 화질을 유지하는 손실 압축을함 이후 허프만 코딩으로 확률에 기반한 엔트로피 코딩을 무손실 압축을 하여 압축성능을 높임 사람의 눈은 색보다 명암에 훨씬 더 많은 정보를 처리함 RGB to YCbCr 변환 Color Space Transform (RGB to YCrCb) Y(빛의 밝기), Cr(Chrominace Red: 적색), Cb(Chrominace Blue: 청색) Cr 과 Cb를 버려도 사람의 눈이 보는 화질에는 영향이 그다지 없음 Y` = (Kr * R`) + (Kg * G`) + (Kb * B`) kr 0.299 kg 0.587 kb 0.114 사람 명암에 대한 반응 녹색..
· 운영체제
개요 페이징 테이블의 두번째 문제점은 크기임, 페이지 테이블의 각 항목은 4바이트, 페이지 크기가 4KB 일 경우 주소공간에는 2^20의 가상 페이지가 존재함. 핵심 질문: 페이지 테이블을 어떻게 작게 만들까 단순한 배열 기반의 페이지 테이블은 크기가 크며 일반적인 시스템에서 메모리를 과도하게 차지함 간단한 해법: 더 큰 페이지 페이지 크기를 증가 시켜서 VPN 비트 수를 줄임 10KB → 16KB ==> 2^20 → 2^18 기존 페이지 테이블 대비 크기가 1/4로 감소 하지만 단순한 페이지 크기의 증가는 부작용을 수반함 가장 큰 문제 페이지 내부의 낭비 공간이 증가함, 내부 단편화의 증가로 이어짐 컴퓨터 시스템의 메모리가 금방 고갈되는 현상이 발생함 → 많은 컴퓨터 시스템들이 비교적 작은 페이지들을 ..
개요 SQL 을 선택하는것은 단순히 프레임워크에 따라서 결정하는 것이 아님 프로젝트를 진행하기에 앞서 적합한 데이터베이스를 선택해야 함 SQL (관계형 DB) SQL 을 사용하면 RDBMS 에서 데이터를 저장, 수정, 삭제 및 검색할 수 있음 두가지 특징 데이터는 정해진 데이터 스키마에 따라 테이블에 저장 관계를 통해 여러 테이블에 분산 스키마를 준수하지 않은 레코드는 테이블에 추가 할 수 없음 NoSQL (비관계형 DB) 스키마도 없고, 관계도 없음 NoSQL 에서는 레코드를 문서라고 부름 SQL 은 정해진 스키마를 따르지 않으면, 데이터 추가가 불가능했음, 하지만 NoSQL에서는 다른 구조의 데이터를 같은 컬렉션에 추가 가능함 문서 (documents) 는 Json 과 비슷한 형태로 가지고 있음, 관..
· 운영체제
페이징: 더 빠른 변환 (TLB) 페이징은 프로세스 주소 공간을 작은 고정된 크기로 나누고 각 페이지의 실제 위치를 메모리에 저장함 매핑 정보를 저장하는 자료구조를 페이지 테이블이라고 함 모든 load/store 명령어 실행이 추가적인 메모리 읽기를 수반하기 때문에 속도가 굉장히 느림 핵심 질문: 주소 변환 속도를 어떻게 향상할까 주소 변환을 어떻게 빨리할 수 있을까? 페이징에서 발생하는 추가 메모리 참조를 어떻게 피할 수 있을까? 어떤 하드웨어가 추가로 필요할까 운영체제가 어떤식으로 개입해야할까. 이를 위해 하드웨어의 도움을 받음. 주소변환을 빠르게 하기 위해 (Translation-lookaside buffer) 또는 TLB라고 부르는 것 TLB는 메모리 관리부 (MMU) 의 일부이며, 자주 참조되는..
파커초
'분류 전체보기' 카테고리의 글 목록 (10 Page)