[데이터베이스] 랜덤 I/O와 순차 I/O 그리고 인덱스
·
데이터베이스
랜덤 I/O와 순차 I/O랜덤 I/O: 데이터가 디스크의 물리적인 위치에서 분산되어 있거나 데이터 접근이 예측 할 수 없는 순서로 이루어지는 입출력 작업을 말합니다.순차 I/O: 데이터가 디스크의 연속된 물리적인 위치에 저장되어 있거나, 순서대로 접근되는 입출력 작업을 말합니다.HDD와 SSD의 랜덤I/O와 순차 I/O순차 I/O: 데이터가 연속적으로 저장되어 있기 때문에 HDD와 SSD에서 모두 순차 I/O의 성능 차이가 크지 않습니다.랜덤 I/O: HDD의 경우, 분산된 데이터 하나씩 읽을 때마다 디스크 헤드를 물리적으로 움직여야 하므로 성능이 떨어집니다. SSD는 기계적인 움직임이 없기 때문에 랜덤 I/O에서 상대적으로 높은 성능을 유지할 수 있습니다.인덱스HDD나 SSD 저장장치는 순차 I/O가 ..
[모던 자바스크립트 Deep Dive] 12장 함수
·
Javascript
함수함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다함수는 입력을 받아서 출력을 내보낸다함수 내부로 입력을 전달받은 변수를 매개변수(파라미타:parameter)입력을 인수(아규먼트:argument)출력을 반환값이라고 한다함수는 값이다 함수는 함수정의를 통해 생성한다함수는 정의만으로 실행되는 것이 아니다인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시해아한다 → 함수호출함수 호출을하면 코드블록에 담긴 문들이 일괄적으로 실행되고 실행결과(반환값)을 반환한다//함수 호출var result = add(2, 5);//함수 add에 인수 2, 5를 전달하면서 호출하면 반환값 7을 반환한다console.log(result); 함수를 사용하는 이유① 코드..
[Node.js 교과서] 섹션 8 - 몽고디비
·
Node.js
애플 실리콘 몽고디비 설치Homebrew 설치/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 몽고디비 설치brew tap mongodb/brewbrew install mongodb-communitybrew install mongosh몽고디비 실행brew services start mongodb-community 몽고디비 프롬프트 접속mongosh관리자 계정 추가use admindb.cerateUser({user:'이름', pwd:'비밀번호',roles:['root']})몽고디비 중지brew services stop mongodb-community몽고디비 설정 파일 수정vim /opt..
[모던자바스크립트 Deep Dive] 11장 원시 값과 객체의 비교
·
Javascript
데이터 타입은 원시타입과 객체타입으로 구분합니다 원시 타입과 객체 타입을 크게 세가지 측면에서 다릅니다.원시 타입의 값은 병경 불가능한 값입니다. 이에 비해 객체 타입의 값은 변ㄱ 가능한 값입니다.원시 값을 변수에 할당하는 변수에는 실제 값이 저장됩니다. 이에비해값 변경 가능 여부: 원시 타입의 값은 변경 불가능한 값입니다. 이에 비해 객체 타입의 값은 변경 가능한 값입니다.변수에 저장되는 값: 원시 값을 변수에 할당하는 변수에는 실제 값이 저장됩니다. 이에 비해 객체를 변수에 할당하면 변수에는 참조 값이 저장됩니다.변수를 다른 변수에 할당할때의 방식: 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됩니다.(값에 의한 전달) 이에 비해 객체를 가리키는 변수에 할당하면 원본의 ..
[Node.js 교과서] 섹션7 - MySQL
·
Node.js
데이터베이스란?데이터베이스: 관련성을 가지며 중복이 없는 데이터들의 집합.DBMS(DataBase Management System): 데이터베이스를 관리하는 시스템(데이터베이스 관리 시스템)RDBMS(Relation DBMS): 관계형 DBMS. SQL이라는 언어를 사용해 데이터 를 관리함.대표적인 RDBMS로 Oracle, MySQL, MSSQL 등이 있습니다. RDBMS에서 데이터를 관리하려면 SQL을 사용합니다.  맥 MySQL 설치HomeBerew 설치/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"HomeBrew를 이용해 MySQL 설치brew install mysqlbrew..
[모던자바스크립트 Deep Dive] 10장 객체 리터럴
·
Javascript
객체란?객체는 변경 가능한 값이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성됩니다. 객체는 프로퍼티의 집합입니다.프로퍼티: 객체의 상태를 나타내는 값(data)메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)객체는 상태와 동작을 하나의 단위로 구조화할 수 있어 유용합니다. 객체 생성 방법객체 리터럴`Object` 생성자 함수생성자 함수`Object.create` 메서드클래스(ES6)자바스크립트는 프로토타입 기반 객체지향 언어로서 다양한 객체 생성 방법을 지원합니다. 객체 리터럴에 의한 객체 생성객체 리터럴은 객체를 생성하기 위한 표기법입니다. 객체 리터럴은 중괄호(`{...}`) 내에 0개 이상의 프로퍼티를 정의합니다. 변수에 할당되는 ..
[SQL] 조인(JOIN)의 종류와 사용법
·
데이터베이스
INNER JOININNER JOIN은 두 테이블 간에 공통된 값을 가진 행만을 결합하여 반환합니다.SELECT 테이블1.컬럼, 테이블2.컬럼FROM 테이블1INNER JOIN 테이블2ON 테이블1.공통컬럼 = 테이블2.공통컬럼;OUTER JOINLEFT OUTER JOINRIGHT OUTER JOINFULL OUTER JOINOUTER JOIN 은 INNER JOIN과 달리, 조인 조건에 일치하지 않는 행도 포함하여 변환합니다. OUTER JOIN에는 세 가지 유형이 있습니다.LEFT OUTER JOIN왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다. 오른쪽 테이블에 일치하는 행이 없으면 NULL로 표시됩니다.SELECT 테이블1.컬럼, 테이블2.컬럼FROM 테이블1LEFT OUTE..
[SQL] SELECT 문의 상세 구조와 처리 순서
·
데이터베이스
SELECT 문의 구성 요소SELECTFROMWHEREGROUP BYHAVINGORDER BYLIMIT`SELECT` 문은 다음과 같은 여러가지 절로 구성되어 있습니다. 각 절에 대해 간단히 알아보겠습니다.SELECT조회할 컬럼을 선택합니다.SELECT name, ageFROM데이터를 조회할 테이블을 지정합니다.FROM employeesWHERE조건에 맞는 레코드를 필터링합니다.WHERE age > 30GROUP BY값이 같은 행들을 그룹으로 묶습니다.GROUP BY departmentHAVING그룹화된 데이터에 조건을 적용하여 필터링합니다.HAVING COUNT(*) > 5ORDER BY데이터들을 정렬합니다.ORDER BY salary DESCLIMIT보여지는 행 수를 제한합니다.LIMIT 10처리순서..