DBMS 는 서로 다른 목적 하에 동작한다.어떤 DBMS 는 임시적인 hot data 를 처리하는데 사용되고, 어떤 DBMS 는 영구적인 cold storage 를 처리하는데 사용된다.어떤 DBMS 는 복잡한 쿼리를 통해 데이터에 접근할 수 있고, 어떤 DBMS 는 오직 key 값을 가지고 데이터에 접근한다.어떤 DBMS 는 시간순으로 들어오는 데이터를 처리하는데 유리하고, 어떤 DBMS 는 매우 큰 blob 데이터를 처리하는데 유리하다. 이런 DBMS 의 차이를 이해하기 위해서는 DBMS 의 아키텍처와 다양한 관점에서의 DBMS 분류에 대해 이해할 필요가 있다.먼저 이번 글에서는 데이터베이스 아키텍처와 스토리지 엔진에 대해 간단하게 알아본다. 데이터베이스 아키텍처DBMS 시스템에 대한 공통적인 청사진은..
자바스크립트의 함수는 다른 언어의 함수와 마찬가지로 코드의 묶음으로도 역할을 하지만, 모듈화 / 클로저 / 객체 생성 등의 역할을 하기도 한다. 자바스크립트에서 함수를 생성하는 방법은 3가지가 있다. 1. 함수 선언문 함수 리터럴 형태로 함수를 선언한다. function func(a, b) { return a + b; } // use function var result = func(1,2); // result = 3 function 키워드, 함수 이름, 매개변수와 함수 몸체로 구성된다. 함수 이름은 원래 생략하여 익명함수로도 리터럴 함수를 생성할 수 있지만, 함수 선언문 방식으로 함수를 선언할 때는 함수 이름을 반드시 입력해야한다. ( 보통 익명함수는 콜백함수를 인자로 넘길 때 많이 사용한다. ) // ..
기본타입 = 숫자, 문자열, 불린값 각 기본타입은 객체가 아님에도 각 타입에 맞는 메서드를 갖고 있다. 이때는 메서드 호출시 순간적으로 기본타입을 참조타입으로 바꾸었다가 메서드 호출이 끝나면 다시 기본타입으로 바뀌게 된다. + 연산자 자바스크립트의 + 연산자는 (숫자) + (숫자) 만 숫자 연산으로 계산하고, (숫자) + (문자열) 이나 (문자열) + (문자열) 은 문자열 연결로 계산한다. typeof 연산자 피연산자의 타입을 문자열 형태로 리턴한다. 이때 null 타입은 'object' 로 출력하고, 함수 타입은 'function' 으로 출력하는 부분에 주의한다. 배열은 'object'로 출력한다. == 연산자와 === 연산자 == 연산자는 두 피연산자의 타입이 다를 경우, 타입변환을 거친 다음 비교하..
-배열 자바스크립트의 배열은 C의 배열과는 조금 다르다. 오히려 파이썬의 리스트에 더까운데, 그렇다고 파이썬의 리스트와 완전히 같은 것도 아니다. 배열의 생성은 배열 리터럴이나 생성자 함수를 이용한다. 배열 리터럴은 [] 를 이용하여 표기한다. 파이썬과 똑같다. var a = ['apple', 10, true]; 위와 같이 데이터 형이 통일 되지 않아도 된다. 배열 요소에 접근하여 읽고 쓸 때도, 배열 내 위치 인덱스 값을 이용해 [] 로 접근한다. a[0] = 'orange'; console.log(a[0]); // orange 여기까지는 파이썬의 리스트와 다를 게 없어보인다. 그러나 자바스크립트 배열의 특이한 점은 배열에 동적으로 값을 넣을 때, 인덱스를 신경쓰지 않고 넣을 수 있다는 점이다. var..
-프로토타입 모든 객체는 각자 부모 역할을 하는 객체를 갖고 있는데, 이 객체를 프로토타입이라고 한다. 객체지향 프로그래밍의 '상속'과 유사하다. 간단하게 객체를 만들어서 출력해보았다. 책이 옛날 책이라 그런지, 책 내용과는 달리 크롬에서도 __proto__ 가 아니라 [[Prototype]] 프로퍼티가 보인다. ECMAScript 명세서에 의하면, 모든 자바스크립트 객체는 자신의 프로토타입 객체를 가리키는 [[Prototype]] 프로퍼티를 가진다. 이 프로토타입 객체의 종류는 여러가지가 있는데, 어떤 종류의 객체를 프로토타입으로 가질지는 사바스크립트 룰에 따라 객체를 생성할 때 결정된다. 예시와 같이 객체 리터럴로 생성한 객체는 Object.prototype 객체를 프로토타입 객체로 가진다. 근데 한..
- 객체의 생성 방법 1. Object() 생성자 이용 : var foo = new Object(); 2. 객체 리터럴 방식 이용 : var foo = { "property": value } 3. 생성자 함수 이용 : 객체를 생성하는 생성자 함수를 이용한 개체 생성 - 객체의 프로퍼티 읽고 쓰기 1. [ ] 를 이용한 접근 => 프로퍼티명을 '문자열' 형태로 대괄호에 담아 접근. 프로퍼티명을 그대로 입력하면 그 이름의 변수 값을 toString() 으로 바꾸어 접근하려고 시도하므로 문제가 발생할 수 있다. 프로퍼티명에 변수명으로 쓸 수 없는 특수문자가 있는 경우,대괄호를 이용한 접근만 가능하다. ('-' 등, 책에서는 프로퍼티명이 '표현식' 이거나 '예약어' 일 경우라고 설명하고 있다.) 또 변수의 값을..
1장에서 자바스크립트는 number, string, boolean, null, undefined 이외의 모든 것들은 객체라고 했었다. 자바스크립트의 데이터 타입 종류도 이에 맞게 구분된다. - 기본타입 객체가 아닌 number, string boolean, null, undefined 는 '기본타입' 으로서 그 자체가 하나의 '값'을 나타낸다는 특징이 있다. 자바스크립트의 'typeof' 연산자를 이용해 각 데이터 별 기본타입을 확인할 수 있다. (함수가 아니라 연산자이므로 사용법에 주의) 각 타입별로 알아두면 좋은 부분을 짚고 가보자. -Number 자바스크립트의 모든 숫자형 데이터는 64비트 부동소수점 형태로 저장된다. (C의 double과 유사) 그래서 5/2 의 연산값이 c와 다르게 2가 아니라 ..
Inside Javascript 책의 1, 2장을 읽고, 책을 참고하여 직접 정리한 내용입니다. 객체 자바스크립트에서 객체가 아닌 것 : number, boolean, string, null, undefined 그 이외에는 모두 객체이다. 하지만 기본 데이터 타입인 number, boolean, string 은 객체처럼 다룰 수도 있다. 함수 자바스크립트에서는 함수도 객체이다. 함수는 조금 특별하게 '일급객체 (First Class Object)' 로 다뤄진다. 프로토타입 모든 객체는 '프로토타입 객체'와 연결(Link)되어있다. 어떤 유튜브 영상에서는 프로토타입을 '유전자'로 묘사하기도 했다. 실행 컨텍스트와 클로저 자바스크립트는 실행 컨텍스트를 만들고 그 안에서 실행되는데, 이 실행 컨텍스트가 갖는 ..
학교 선배님의 추천으로 '커리어 스킬'을 알게 되었다. 작년부터 추천해주셨던 책인데 올해가 되어서야 읽게 됐다. 분명 개발자를 위한 책인데, 읽다보니 꼭 개발자가 아니더라도 도움될 만한 내용이 많아서 놀랐다. 앞 부분은 신입 프로그래머를 위한 내용부터, 주니어 프로그래머를 위한 내용들 위주로 서술되있다. 그리고 뒤로 갈수록 '인생'에 대한 조언이 점점 더 많아지는데, 개인적으로 정말 유익했었다. 처음 이 책을 사고 싶다고 생각한 큰 이유는 개발자의 진로를 알고 싶었기 때문이다. 당장 1학년 1학기가 끝날 때까지만 해도 프로그래머 = 프로그램 만드는 사람 게임 프로그래머 = 게임 만드는 사람 이것 밖에 몰랐다. 그냥 졸업하면 뭔가 프로그램을 만드는 사람이 되는 건가 싶었다. 그러다 카카오의 채용 공고를 보..