본문 바로가기

전체 글291

[Closure] 버튼을 클릭했을 때 body의 font-size를 바꾸는데 버튼 별로 12px, 14px, 16px을 위한 버튼을 만들고 싶으면 어떻게 할까? 답은 클로저를 사용하면 편리하다. function makeSizer(size) { return function() { document.body.style.fontSize = size + 'px'; }; } var size12 = makeSizer(12); var size14 = makeSizer(14); var size16 = makeSizer(16); 위 코드 덕에 size12()는 document.body.style.fontSize= 12px; 를 실행한 것과 같다. html 상에서 a 태그를 세개 만들고 12 14 16 스크립트로 핸들러에 등록해주면 docu.. 2020. 6. 3.
[Execution Context] Function call 함수를 호출한 직후 어떻게 내부적으로 메모리를 관리하는지 살펴보자. 이는 c언어에서의 function call이후 memory에 stack형태로 관리하는 것과 유사하다. js프로그램이 시작되면 프로그램을 위한 공간이 생성된다. 이것이 Runtime Execution Context이고 이 공간은 스택 형태로 관리된다. 이 공간에 전역 코드를 위한 공간인 Global Context가 첫 스택으로 위치한다. 이후 함수를 호출할 때마다 해당 함수에 대한 Context가 스택 형태로 쌓였다가 호출이 끝나면 사라진다. 1. var a= 3; 2. function A(){ 3. } 4. A(); 5. ; 위 코드를 실행하면 어떻게 Runtime Exectuion Context가 이루어질까? (Runtime Execu.. 2020. 6. 3.
[Prototype] Prototype Chaining js에서는 클래스 개념이 없고 리터럴 방식이나 생성자로 객체를 생성한다. 이 때 생성된 객체의 부모가 무엇인지 파악해보자. 생성자 함수로 객체를 생성하는 경우 객체의 부모는 생성자 함수의 prototype속성이 참조하는 객체이다. 앞서 생성자 함수는 constructor가 있는 객체를 가리킨다고 한 것을 기억할 것이다. 리터럴로 객체를 생성하는 경우 var a = {} 와 같이 생성하면 내부적으로 Ojbect() 생성자 함수를 사용해 객체를 생성한다. 그리고 a의 부모는 Object 생성자 함수가 prototype속성으로 가리키는 객체이다. 모든 함수는 prototype속성이 있다. a.hasOwnProperty('name'); 이 때 위 코드를 실행할 수 있을까? 답은 그렇다. 왜냐하면 a의 부모인 O.. 2020. 6. 2.
[Transaction]Transaction Isolation in SQL 실제 SQL에서 commit, rollback 시작은 암묵적으로 진행되고 종료는 commit, rollback이 명시적으로 해야한다. database system에서 auto commit을 지원하여 commit을 암묵적으로 해준다. savepoint 지정해두면 abort 되었을때 이 지점으로 돌아가게 해준다. weak levels of consistency(consistency vs performance) 대략적인 값을 파악하고 싶을 때 consistency를 포기하고 performance를 선택할 수 있도록 지원이 된다. consistency level을 설정하여 이 수준을 조정한다. degree-two consistency s lock인 경우 바로 lock을 푸는 것이 2PL와 다른 점이다. 이렇게 .. 2020. 6. 1.