본문 바로가기

분류 전체보기

(894)
[Deep dive] 27장 배열(1) 27.1 배열이란? 배열(array) - 여러 개의 값을 순차적으로 나열한 자료구조 - 요소(element) : 배열이 가지고 있는 요소 - 인덱스(index) : 배열의 요소가 가지는 배열에서 자신의 위치를 나타내는 0 이상의 정수 - length 프로퍼티 : 배열의 길이 - 배열은 객체 타입 - 배열의 생성자 함수는 Array이며, 배열의 프로토타입 객체는 Array.prototype - 베열은 일반 객체와 달리 "값의 순서"와 "length 프로퍼티"를 가짐 27.2 자바스크립트 배열은 배열이 아니다 밀집 배열(dense array) - 배열의 요소는 하나의 데이터 타입으로 통일되어 있으며 서로 연속적으로 인접해 있음 - 인덱스를 통해 단 한번의 연산으로 임의의 요소에 접근 가능 희소 배열(spar..
[Deep dive] 26장 ES6 함수의 추가 기능 26.1 함수의 구분 - ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자 함수로서 호출할 수 있음 - ES6 이전의 모든 함수는 callable 이면서 constructor다 - ES6 이전에 일반적으로 메서드라고 부르던 객체에 바인딩된 함수도 callable이면서 constructor - ES6에서는 함수를 사용 목적에 따라 세 가지 종류로 명확히 구분 ES6함수의 구분 constructor prototype super arguments 일반 함수 o o x o 메서드 x x o x 화살표 함수 x x x x 26.2 메서드 - ES6 사양에서 메서드는 메서드 축약 표현으로 정의된 함수만을 의미 - ES6 사양에서 정의한 메서드는 인스턴스를 생성할 수 없는 non - cons..
[Deep dive] 25장 클래스 (2) 25.7 프로퍼티 25.7.1 인스턴스 프로퍼티 - 인스턴스 프로퍼티는 constructor 내부에서 정의해야 함 - constructor 내부에서 this에 추가한 프로퍼티는 언제나 클래스가 생성한 인스턴스의 프로퍼티가 됨 - 인스턴스 프로퍼티는 언제나 public 하다 class Person { constructor(name) { //인스턴스 프로퍼티 this.name = name; //name 프로퍼티는 public하다 } } const me = new Person('Lee'); //name은 public하다 console.log(me.name); //Lee 25.7.2 접근자 프로퍼티 - 다른 데이터 프로퍼티의 값을 읽거나 저장할 때 사용하는 접근자 함수 (accessor function)로 구성..
[Deep dive] 25장 클래스 (1) 25.1 클래스는 프로토타입의 문법적 설탕인가? - 자바스크립트는 프로토타입 기반(prototype base) 객체지향 언어 - 생성자 함수와 프로토타입을 통해 객체지향 언어의 상속 구현 가능 - ES6에서 도입된 클래스는 새로운 객체 생성 메커니즘 25.2 클래스 정의 - 클래스는 class 키워드를 사용하여 정의 //클래스 선언문 class Person {} - 클래스는 함수와 마찬가지로 이름을 가질 수 도 있고, 갖지 않을 수도 있다 //익명 클래스 표현식 const Person = class {}; //기명 클래스 표현식 const Person = class MyClass {}; - 클래스는 값으로 사용할 수 있는 일급 객체 - 클래스 몸체에는 0개 이상의 메서드만 정의 가능 1) construc..
[Deep dive] 24장 클로저 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. 24.1 렉시컬 스코프 - 렉시컬 환경의 "외부 렉시컬 환경에 대한 참조"에 저장할 참조값, 즉 상위 스코프에 대한 참조는 함수 정의가 평가되는 시점에 함수가 정의된 환경(위치)에 의해 결정 24.2 함수 객체의 내부 슬롯 [[Environment]] - 함수 정의가 평가되어 함수 객체를 생성할 때 자신이 정의된 환경(위치)에 의해 결정된 상위 스코프의 참조를 객체 자신의 내부 슬롯 [[Environmnet]]에 저장 - 자신의 내부 슬롯 [[Environment]]에 저장된 상위 스코프의 참조는 현재 실행 중인 실행 컨텍스트의 렉시컬 환경을 가리킴 - 함수 객체의 내부 슬롯 [[Environment]]에 저장된 현재 실행 중인 실행 컨텍스트의..
[Deep dive] 23장 실행 컨텍스트 23.1 소스코드의 타입 - 소스코드의 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리내용이 다름 1) 전역 코드 - 전역 실행 컨텍스트 생성 - 전역 변수를 관리하기 위해 최상위 스코프인 전역 스코프를 생성 - var 키워드로 선언된 전역 변수와 함수 선언문으로 정의된 전역 함수를 전역 객체의 프로퍼티와 메서드로 바인딩하고 참조하기 위해 전역 객체와 연결 2) 함수 코드 - 함수 실행 컨텍스트 생성 - 지역 스코프를 생성하고 지역 변수, 매개 변수 , arguments 객체를 관리 - 생성한 지역 스코프를 전역 스코프에서 시작하는 스코프 체인의 일원으로 연결 3) eval 코드 - eval 실행 컨텍스트 생성 - strct mode(엄격 모드)에서 자신만의 독자적인 스코프 생성 4) 모듈 코드 - 모..
[혼공] 6-2장 인덱스의 내부 작동 1. 인덱스의 내부 작동 원리 균형 트리 (Balanced tree) - 클러스터형 인덱스와 보조 인덱스는 모두 내부적으로 균형 트리로 만들어짐 - 균형 트리는 루트 페이지부터 검색 - 노드(node) : 데이터가 저장되는 공간 - 루트 노드(root node) : 노드의 가장 상위 노드 - 리프 노드 (leaf node) : 제일 마지막에 존재하는 노드 - 중간 노드 : 루프노드와 리프 노드의 중간에 끼인 노드 - MySQL에서는 노드를 페이지(page)라고 부름 - 페이지 : 최소한의 저장단위, 16Kbyte 균형 트리의 페이지 분할 - 인덱스를 만들면 SELECT의 속도를 향상시킬 수 있음 - BUT 페이지 분할 작업으로 데이터 변경 작업(INSERT,UPDATE,DELETE)시 성능이 나빠짐 2...
[혼공] 6-1장 인덱스 개념 1. 인덱스 인덱스(index) - 데이터를 빠르게 찾을 수 있도록 도와주는 도구 - 테이블의 열(컬럼) 단위에 생성 - 하나의 열에는 하나의 인덱스 생성 가능 SHOW INDEX - 인덱스의 정보 확인 장점 - SELECT문으로 검색하는 속도가 매우 빨라짐 - 컴퓨터의 부담이 줄어들어서 전체 시스템의 성능이 향상됨 단점 - 인덱스도 공간을 차지해서 데이터베이스 안에 추가적인 공간 필요 - 데이터의 변경 작업 (INSERT,UPDATE,DELETE)이 자주 일어나면 성능이 나빠질 수도 있음 2. 인덱스의 종류 1) 클러스터형 인덱스 (Clustered Index) - 기본 키로 지정하면 자동생성되며 테이블에 1개만 만들 수 있음 - 영어 사전과 비슷 CREATE TABLE table1 ( col1 INT..