본문 바로가기

전체 글291

[Transaction] easy test Serializability Conflict Serializability 확인 방법 Precedence graph를 그려서 아이템에 대해서 edge를 그려서 cycle이 존재하는지 파악하면 된다. cycle이 없으면 conflict serializable precedence graph: direct graph, vertex is transaction, conflict 연산이 있으면 edge 연결 위 방법으로 확인하고 나서 어떤 serial schedule과 결과가 일치하는지 알 수 있을까? topological sorting을 통해 찾을 수 있다. 위와 같은 graph를 그렸다고 하면 T1은 T2,T3,T4보다 먼저 와야하고 T4는 T1,T2,T3보다 먼저와야 한다. T1-> T2 ->T3 ->T4 T1-> T3-> T2 ->T4 .. 2020. 5. 30.
[Transaction] View Seiralizability View equivalent: 스케줄 S, S'이 있을 때 세 가지 조건을 만족하면 view equivalent하다고 한다. 세 조건 다 모든 아이템에 대하여 체크해야 한다. 데이터 중 하나를 Q라고 가정한다. 이 때, 읽기와 쓰기에 대해서만 얘기한다. 1. S에서 T1가 Q를 initial read 했다면 S'의 T1에서도 Q를 initial read해야한다. initial read란 스케줄에서 데이터를 시간상 처음 read 했을 때를 얘기한다. 2. S에서 Tj가 wirte(Q) 하고 나서 Ti가 read(Q)했다고 하자. 그러면 S'에서도 Tj가 Write(Q)하고 Ti가 Read(Q) 해야 한다. 항상 이 순서를 지키는 것이 조건 2이다. 3. S의 Ti에서 마지막 명령으로 write(Q)를 했다.. 2020. 5. 30.
[Operator] js operator check 다른 언어들과 다른 연산들을 살펴보자. + 연산자 피연산자 둘다 숫자일 떄만 숫자연산이 되고 나머지는 string concatenation이 이루어진다. typeof 연산자 지금까지 살펴본 데이터타입에 typeof 연산을 했을 때 결과이다. 자주 사용하니 기억해두자. primitive type 숫자 'number' primitive type 문자열 'string' primitive type 불린값 'boolean' primitive type null 'object' primitive type undifined 'undifined' reference type 객체 'object' reference type 배열 'object' reference type 함수 'funtion' ==연산자 피연산자가 같은지 .. 2020. 5. 30.
[Operator] Primitive type & standard method 기본타입에는 number, string, boolean이 있다고 했다. 객체가 아닌 기본 타입들을 위한 메서드가 제공이 될까? 답은 제공이 된다. 객체로 변환되어 처리된 후 다시 기본 타입으로 돌아간다. var myStr = "abcdefg"; console.log(myStr.chatAt(2)); 두 줄을 실행하면 myStr에 대하여 2번째 인덱스에 해당하는 문자를 가져오려고 할 것이다. 하지만 기본타입은 객체가 아니기 때문에 객체로 변환되어 처리하는 방식이다. 2020. 5. 30.