전체보기
-
Real MySQL [6-1] 실행계획 - id, select_type 칼럼MySQL 2016. 12. 6. 23:44
본 게시물의 내용과 이미지는 도서 Real MySQL의 내용을 재구성하여 작성되었습니다. 저자, 출판사에 의해 저작권 문제 발생시 게시물이 비공개 될 수 있음을 알립니다. 쿼리 실행 절차 (263p) 1) 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리한다. 2) SQL의 파싱 정보(파스 트리)를 확인하면서 어떤 테이블로부터 읽고 어떤 인덱스를 통해 테이블을 읽을지 선택한다. 3) 두 번째 단계에서 결정된 테이블의 읽기 순서나 선택된 인덱스를 이용해 스토리지 엔진으로부터 데이터를 가져온다. 첫 번째 단계를 SQL 파싱 이라고 하며, MySQL 서버의 "SQL 파서" 라는 모듈로 처리한다. SQL 문장이 문법적으로 잘못된 경우 이 단계에서 걸러진다. 또한 이 ..
-
Effective JavaScript [11] - 클로저에 익숙해져라Javascript 2016. 12. 5. 22:59
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. - 함수는 외부 스코프에 선언된 변수를 참조할 수 있다. - 클로저는 자신을 생성한 함수보다 더 오래 지속된다. - 클로저는 내부적으로 외부 변수에 대한 참조를 저장하고, 저장된 변수를 읽고 갱신할 수 있다. 클로저(closure)를 지원하지 않은 언어를 사용하던 프로그래머에게는 친근하지 않을 개념일 수 있다. 클로저를 이해하는 데는 세가지의 기본적인 사실만 배우면 된다. 첫 번째로는 자바스크립트는 현재 함수 외부에서 선언된 변수를 참조할 수 있다. function makeSandwich() { var magicIngredient = "peanut butter..
-
MySQL UnionMySQL 2016. 12. 5. 20:21
MySQL - UNION MySQL 과 같은 RDBMS에서 사용하는 Union 연산자는 여러 테이블에 존재하는 같은 성격의 값을 한번의 쿼리로 추출할 수 있도록 돕는다. Member 테이블에 회원 이메일이 있고, Newsletter 테이블에 구독자 이메일이 있는데, 모든 이메일로 메일을 보내고자 할 경우 두 번의 쿼리와 병합 프로그램을 만들어야 할 것이다. 이럴 때 union 연산자를 사용해 한번의 쿼리로 간단하게 정보를 추출할 수 있다. Union을 사용할 때 주의할 점 - 대응하는 필드의 이름이 같아야 한다. 같지 않다면 AS를 사용하여 같게 만든다. - 대응되는 각 필드의 타입이 같아야 한다. 예제 테이블 정보 위의 두 테이블에서 이메일을 추출해야 할 경우 union을 사용하면 간단하다. 중복되지 ..
-
Effective JavaScript [10] - with를 사용하지 마라!Javascript 2016. 12. 5. 19:57
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. - with 선언문을 사용하지 마라. - 객체로의 반복되는 접근을 위해 짧은 변수 이름을 사용하라 - with 선언문으로 암묵적으로 바인딩하는 대신에 명시적으로 지역 변수를 객체 프로퍼티에 바인딩하라. with를 사용하지 마라 (46p) with는 하나의 객체에서 여러 메서드를 호출할 때 해당 객체에 대함 참조를 반복할 필요가 없는 경우 사용이 편리하다. function status(info) { var widget = new Widget(); with (widget) { setBackground("blue"); setforeground("white"); se..
-
Effective JavaScript [9] - 항상 지역 변수를 선언하라Javascript 2016. 12. 2. 00:05
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. - 새로운 지역 변수는 항상 var를 사용해서 선언하라. - 바인딩 되지 않은 변수를 확인하는데 도움을 주는 lint 도구의 사용을 고려해 보라. 프로그램에서 바인딩되지 않은 변수를 할당하면, 오류를 발생하는 대신에 단순히 새로운 전역 변수를 만들고, 이 변수를 새로운 전역 변수에 할당한다. 이는 지역 변수 선언을 깜빡 잊으면 아무말 없이 전역 변수로 변한다는 뜻이다. function swap (a, i, j) { temp = a[i]; // 전역변수 a[i] = a[j]; a[j] = temp; } temp 변수에 var 선언이 빠져서 전역 변수가 만들어졌지..
-
Effective JavaScript [8] - 전역객체의 사용을 최소화하라Javascript 2016. 12. 2. 00:04
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. - 전역 변수를 선언하지 마라 - 가능하면 변수를 지역적으로 선언하라 - 전역 객체에 프로퍼터를 추가하지 마라. - 플랫폼의 기능 탐지를 위해 전역 객체를 사용하라. 자바스크립트에서 전역 변수를 정의하는 것은 모든 사람이 공유하는 공통의 네임스페이스를 더럽히고 뜻하지 않게 이름을 충돌할 만한 가능성을 만든다. 실제로 전역 네임스페이스는 자바스크립트 프로그램의 구분된 요소들이 상호작용할 수 있는 유일한 방법이기 때문에, 전역 변수의 사용은 불가피하다. 라이브러리나 컴포넌트 에서 전역 변수 이름을 정의하는 경우가 아니라면 가능한 모든 변수를 지역변수로 유지하는 게..