본문 바로가기

Studying

(52)
저장소와 검색 [데이터 중심 애플리케이션 설계 3장] 로그 구조 저장소: 쓰기에 좋은 구조 LSM 트리: SS 테이블을 여러개로 구성된 인덱스 구조 SS 테이블: merge sort 방식으로 순차적으로 쌓인 키를 컴팩션 시 정렬하여 저장 순차적으로 write하기 때문에 속도가 빠르다. 페이지를 사용하지 않아 오버헤드가 적어 압축률이 좋다. 컴팩션 과정이 있기 때문에 성능에 영향을 줄 수가 있다. 페이지 지향 저장소: 읽기에 좋은 구조 B 트리: 고정 크기의 블록이나 페이지로 나누고 한 페이지에서 다음 페이지를 참조한다. B 트리의 쓰기는 디스크 상의 페이지를 덮어쓴다. 이것은 문제 발생 시 위험한 동작으로 WAL(Write-ahead log)를 추가해서 문제 발생 이후에도 복구가 가능하도록 한다. (copy-on-write scheme 방식도 있음) WAL..
데이터 모델 및 질의 언어 [데이터 중심 애플리케이션 설계 2장] 관계형 모델 스키마 변경이 힘들고 실제 데이터와 애플리케이션 과의 차이가 발생하여 임피던스 불일치 발생 최근에는 json등을 지원함 mysql에서는 alter 명령어 수행 시 비용이 큼 다대일과 다대다 관계 관계형 모델에서는 다대다 관계를 일대다 관계로 풀어서 해결한다. 일대다 관계는 문서 모델에서의 트리 구조로 표현 가능 관계형 모델에서는 일대다의 반대인 다대일도 id기반으로 쉽게 해결가능 문서 모델에서는 다대일 관계는 적합하지 않음 (join 필요) NoSQL 문서 데이터베이스 조인이 미흡하다 관계형 DB의 쓰기 스키마와 반대되는 읽기 스키마 지역성 활용 가능 (관계형은 조인을 해야해서 전체 검색이 필요함) 그래프 데이터베이스 다른 데이터베이스와의 차이 다대다 관계에 적합 특정 조건을 찾을 때까지 반..
신뢰성, 확장성, 유지보수성 [데이터 중심 애플리케이션 설계 1장] 신뢰성: 하드웨어나 소프트웨어 결함, 심지어 인적 오류(human error) 같은 역경에 직면하더라도 시스템은 지속적으로 올바르게 동적(원하는 성능 수준에서 정확한 기능을 수행)해야 한다. 올바르게 동작이라는 것은 “무언가 잘못되더라도 지속적으로 올바르게 동작함”을 의미한다. 잘못될 수 있는 일은 결함(fault)라고 부른다. 결함에 대처할 수 있는 시스템을 내결함성(fault-tolerant) 또는 탄력성(resilient)를 지녔다고 말한다. 결함은 장애와 다르다. 장애는 서비스 자체가 멈추는 것이고 결함이 발생해도 장애는 발생하지 않도록 해야 한다. 확장성: 시스템의 데이터 양, 트래픽 양, 복잡도가 증가하면서 이를 처리할 수 있는 적절한 방법이 있어야 한다. 트위터 홈 타임라인 구현 방식 모든 ..
[확률통계] 03. 확률변수의 시행 확률 및 통계, 이상화 교수님의 동영상 강의를 토대로한 내용입니다. RV(확률변수)의 정의 RV: 각각의 랜덤 결과를 실수에 매핑 x = X(w) ex1) tossing a coin -> X H => 1 T => 0 P(H)=P(1)=1/2 Probability -> function P(A) -> P(x) ex2) tossing two coin RV: # of heads 0 => {TT} P(0)=P({TT}) =1/4 1 => {HT:TH} P(1)=P({HT,TH}) = 1/2 2 => {HH} p(2)=1/4 X(wi) -> xi {TT} 형식으로 쓰던 경우의 수들을 숫자로 매핑함으로써 함수처럼 표현한다. by the conventional notation RV : X, Y, Z a specific..
[확률통계] 02. 독립사건과 확률 확률 및 통계, 이상화 교수님의 동영상 강의를 토대로한 내용입니다. 보충 Total Probility {A1,A2...An} partition of S $$P(A) = P(A1\cap A) + P(A2\cap A) + ... + (An\cap A)$$ $$\sum_{i=0}^nP(A|Ai)P(Ai)$$ Independent $$P(A|B) = P(A)$$ $$P(B|A) = P(B)$$ $$P(A\cap B) = P(A)P(B)$$ 1.10 Combinational Analysis permutation(순열) n개의 다른 객체를 일렬로 나열 (나열은 순서를 포함함) $$n(n-1)(n-2)... = n!$$ 만약 0개를 나열한다면, 0! = 1 n개 중에서 r개를 나열할 경우 (n>=r) $$n(n-1)..
[확률통계] 01. 조건부확률과 Bayes 정리 확률 및 통계, 이상화 교수님의 동영상 강의를 토대로한 내용입니다. Sample Space: 가능한 모든 경우의 수 S(set) Event: Sample Space의 부분 집합 정확하게는 하나의 outcome이 A에 속할 확률 Conditional Probability: 조건부 확률 A가 발생했을 때 B가 발생한 확률, 모든 확률은 조건부 확률로 나타낼 수 있는데, A가 발생한 것을 Sample Space 가 발생한 걸로 치환하면 된다. $$ P(B|A) = \frac{P(B|A)}{P(A)} = \frac{P(B \cap A|S)}{P(A|S)} $$ Total Probilibity: 전체 확률의 합은 부분 확률들의 합 $$ P(A _{1} ) + .... + P(A_{n}) $$ $$ P(A_{1})..
[딥러닝] tf.GradientTape(), gradient() 이해하기 처음 딥러닝을 공부할 때, x_data = [1,2,3,4,5] y_data = [1,2,3,4,5] W = tf.Variable(2.0) b = tf.Variable(0.5) with tf.GradientTape() as tape: hypothesis = W * x_data + b #hypothesis cost = tf.reduce_mean(tf.square(hypothesis - y_data)) #cost W_grad, b_grad = tape.gradient(cost, [W, b]) #W_grad = 25.0, b_grad = 7.0 W.assign_sub(learning_rate * W_grad) b.assign_sub(learning_rate * b_grad) 이 부분이 나오는데 실제로 함수가 ..
11. Disk Management and Scheduling 디스크최소단위: sector (저장)logical block: 외부에서보는 디스크의 단위 정보 저장 공간들 Dick ManagemnetPysical formatting(Low-level formatting): 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정각 섹터는 header+실제 data(보통 512byte)+trailer 로 구성header와 trailer는 sector number, ECC(Error-Correcting Code) 등의 정보가 저장되며 controller가 직접 접근 및 운영Partitioning디스크를 하나 이상의 실린더 그룹으로 나누는 과정OS는 이것을 독립적 disk로 취급(logical disk)Logical formatting파일 시스템을 만드는 것FAT, I..