전체 글 420

[ SQLD 이론 심화] Chapter 05. SQL 최적화 기본 원리

1. 옵티마이저와 실행 계획 옵티마이저란 사용자가 질의한 SQL문에 대한 최적의 실행방법을 결정하는 역할을 수행함 이러한 최적의 실행방법을 실행계획이라고 함 다양한 실행 방법중 최적의 실행 방법을 결정함 비용기반 옵티마이저 비용이 가장 적게 드는 실행계획을 선택하는 방식 (비용은 예상되는 시간 또는 자원을 의미함) 테이블, 인덱스 등의 통계정보와 시스템 통계정보를 이용하여 최적의 실행계획을 도출함 인덱스를 사용하는 비용이 전체 테이블 스캔 비용보다 크다고 판단되면 테이블 풀 스캔을 유도함 구성 요소 질의 변환기 : 사용자가 작성한 SQL문을 처리하기에 보다 용이한 형태로 변환 비용 예측기 : 생성된 대안 계획의 비용을 예측하는 모듈 대안계획 생성기 : 동일한 결과를 생성하는 다양한 대안 계획을 생성하는 ..

Database 2021.07.30

[ Nodejs교과서 ] 2. 알아두어야 할 자바스크립트

* 이 포스팅은 인프런 "Nodejs교과서" 강의를 듣고 공부한 요약내용임 1. ES2015+ const, let 블록스코프를 가짐 외부에서 접근이 불가. -> 호이스팅 문제 없음 템플릿 문자열 지원 객체 리터럴 객체의 메서드에 함수 연결할 때 클론 안함 속성명을 굳이 적어주지 않아도 됨 객체의 속성을 동적으로 생성 가능 화살표 함수 this 바인드 방식 상위스코프의 this를 물려받음 비구조화 할당 배열 내의 원소들을 대입받을 때 주로 사용함 프로미스 비동기로 처리하는 명령을 생성시에 인자로 받고 응답을 콜백 처리 시 깊이가 생기지 않도록 할 수 있음. 응답객체가 성공적으로 들어올 경우 resolve - then으로 처리 실패 시 reject - catch로 처리 async / await 비동기 프로그..

Javascript/Node.js 2021.07.30

[ Nodejs교과서 ] 1. 노드 시작하기

* 이 포스팅은 인프런 "Nodejs 교과서" 강의를 듣고 공부한 요약내용임 1. 핵심개념 이해하기 서버 노드는 자바스크립트 애플리케이션이 서버로서 기능하기 위한 도구를 제공함 자바스크립트 런타임 - 런타임 : 특정언어로 만든 프로그램을 실행할 수 있는 환경 - 노드의 내부구조 이벤트 기반 이벤트 발생 시 미리 지정해둔 작업을 수행 이벤트 리스너에 콜백 함수 등록 이벤트 루프 : 이벤트들이 동시에 발생 시 콜백함수들의 순서를 판단 setTimeout - 테스크 큐 : 이벤트 발생 후 호출되어야 할 콜백함수를 기다림 - 백그라운드 : 타이머나 I/O 작업 콜백 or 이벤트리스너가 대기 논블로킹 I/O 오래걸리는 함수는 백그라운드에 둠 논블로킹 : 이전작업의 끝을 기다리지 않고 다음작업을 수행함. I/O 작..

Javascript/Node.js 2021.07.30

[ Javascript ] 스트림

* 이 포스팅은 패스트캠퍼스 "Nodejs" 강의를 듣고 공부한 요약내용임 1. Stream 스트림은 데이터 전송을 위한 공통 구조를 제공하기 위해 사용된다. 파일을 전송받을 때 버퍼 단위로 옮겨서 버퍼 단위로 전송하는 방식 버퍼는 청크 단위로 채워지며 스트림은 보통 큰 데이터를 처리하거나, 비동기적으로만 얻을 수 있는 데이터 처리 시 사용함. 2. 스트림의 종류와 구현체들 Readable 스트림으로 부터 읽을 수 있음 Writable 스트림에 출력할 수 있음 Duplex 입력 및 출력 둘다 가능 TCP Sockets, crypto streams Transform 입력 받은 스트림을 병합해 새로운 스트림을 만듬 JSON 스트림 처리기 줄바꿈으로 분리된 JSON들을 읽어서 data값을 읽음 (chunk가 ..

Javascript 2021.07.30

[ Javascript ] Node.js 핵심 개념

* 이 포스팅은 패스트캠퍼스 "Nodejs" 강의를 듣고 공부한 요약내용임 1. 내장 객체 __dirname : 현재 실행되는 파일 경로 정보를 제공 __filename : 실행되는 코드의 파일명과 파일을 처리한 절대 경로 process : 현재 노드에 대한 정보를 담고있음 - .arch : 아키텍처 정보 - .platform : OS 정보 - .pid : 현재 프로세스 아이디 ... console : 로깅할 때 사용되는 객체 2. 스탠다드 라이브러리 OS : 운영체제와 시스템의 정보를 가져올 수 있는 모듈. .arch(), platform(), cpus() DNS : 도메인 이름을 확인하는데 사용됨. lookup(호스트이름, 콜백) Path : Directory 경로 작업을 위한 모듈. resolve(..

Javascript/Node.js 2021.07.30

[ Javascript ] 모던 Javascript 알아보기

* 이 포스팅은 패스트캠퍼스 "Nodejs" 강의를 듣고 공부한 요약내용임 1. let과 const ES6 규칙 - hoist 규칙 없음 - block scoping 지원 let은 레퍼런스가 바뀔 수 있음 const는 상수를 가리키므로 값이 변하지 않음 let과 const는 같은 스코프 내에서 두번 이상 선언할 수 없음. 선언 후에 접근이 가능함 2. spread syntax object merge '...' : 객체 안의 데이터가 나와서 들어감 array merge [...pets, ...predators] 3. Promise 4. polyfill 기능을 지원하지 않는 웹 브라우저 상의 기능을 구현하는 코드 ( 구버전일 경우 Node나 브라우저에는 사용하지 못하는 상황일 경우 ) JS standard ..

Javascript 2021.07.30

[ Javascript ] 자바스크립트 언어 기초 이론

* 이 포스팅은 패스트캠퍼스 "Nodejs" 강의를 듣고 공부한 요약내용임 1. Event Loop 자바스크립트는 여러개의 스레드를 사용하지만 메인스레드는 하나만 사용하고 해당 메인스레드로 자바스크립트를 실행한다. 그러므로 실행 컨텍스트는 하나이며 그 외의 일(File I/O, Network 등)은 워커스레드가 처리한다. 워커스레드는 여러개가 있을 수 있다. 이러한 자바스크립트의 이벤트 루프에 기반한 동시성 모델은 실행 컨텍스트를 하나로만 동작하도록 하여 데이터의 동시성 제어를 용이하게 해준다. Call stack 지금까지 불린 함수들을 call stack에 쌓아둔다. 이벤트루프가 다음 콜백을 처리하려면 지금 실행하는 콜백이 실행되어야 한다. 이러한 과정을 call stack이 끝날 때까지 처리함 Cal..

Javascript 2021.07.30

[ SQLD 이론 심화] Chapter 04. SQL 활용

1. 표준 조인 일반 집합 연산자 vs SQL UNION연산 : UNION 기능으로 구현. INTERSECTION : INTERSECT 기능으로 구현 DIFFERENCE : EXCEPT 기능으로 구현 PRODUCT : CROSS JOIN 기능으로 구현 순수 관계 연산자 vs SQL SELECT : WHERE절로 구현 PROJECT : SELECT절로 구현 JOIN : JOIN절로 구현 DIVIDE : 현재 사용되지 않음 조인의 형태 INNER JOIN : JOIN조건에서 동일한 값이 있는 행만 반환 NATURAL JOIN : 두 테이블 간의 동일한 이름을 갖는 모든 칼럼들에 대해 EQUI 조인 수행 USING 조건절 : NATURAL JOIN 에서 같은 이름을 가진 칼럼들 중에서 원하는 칼럼에 대해서만 ..

Database 2021.07.29

[ SQLD 이론 심화] Chapter 03. SQL 기본

1. 관계형 데이터베이스 개요 정규화를 통한 합리적인 테이블 모델링을 통해 이상현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작 가능한 기능 제공 인증된 사용자만이 참조할 수 있도록 보안 기능을 제공함 데이터 무결성 제공 장애로부터 기존 데이터에 대한 작업이 제대로 반영될 수 있도록 보장해주며, 재해 등의 상황에서도 데이터를 회복/복구하는 기능을 제공 2. SQL DML 데이터 조작어 ( 조회, 수정, 삽입, 삭제 ) Select, Insert, Update, Delete DDL 데이터 정의어 (테이블 구조 생성, 변경, 삭제) Create, Alter, Drop, Rename DCL 데이터 제어어 (데이터 베이스에 객체들을 사..

Database 2021.07.29