본문 바로가기

전체 글

(128)
Throttle, Debounce Throttle와 Debounce는 DOM 이벤트를 기반으로 실행하는 자바스크립트의 이벤트 콜백을 제어 및 제한하는 방법을 말한다. - Throttle 함수가 밀리초마다 한번 이상 실행되지 않도록 제한하는 것을 말한다. Throttle는 적어도 x 밀리초마다 정기적으로 함수 실행을 보장한다. // Very simple example. // Probably you would want to use a // full-featured plugin like // https://github.com/infinite-scroll/infinite-scroll/blob/master/jquery.infinitescroll.js $(document).ready(function(){ // Check every 300ms the..
Lock DBMS는 각 트랜잭션의 오퍼레이션 별로 적당한 수준의 Lock을 자동으로 설정한다. 가장 기본이 되는 Lock 모드는 공유 Lock와 배타적 Lock이다. - 공유 Lock 공유 Lock은 데이터를 읽고자 할 때 사용하며 다른 공유 Lock와는 호환되지만 배타적 Lock와는 호환되지 않는다. 여기서 호환됨은 하나의 리소스에 두개 이상의 락을 동시에 설정할 수 있음을 말한다. 다른 사용자가 동시에 한 리소스를 읽을 수는 있으나 변경은 불가능하다. 반대로 다른 사용자가 읽고 있는 리소스를 동시에 읽을 수는 있어도 사용중인 리소스를 동시에 읽을 수는 없다. - 배타 Lock 데이터를 변경하고자 할 경우 사용되며 트랜잭션의 완료 시까지 유지된다. 해당 락이 해제되기 전까지 다른 트랜잭션은 해당 리소스에 접근할..
Oracle, SQL Server Architecture Oracle에서는 디스크에 저장된 데이터 집합(Datafile, Redo Log File, Control File 등)을 데이터베이스라고 칭한다. SGA 공유 메모리 영역과 이를 엑세스하는 프로세스 집합을 합쳐서 Instance라고 한다. 하나의 Instance는 하나의 데이터베이스만 엑세스하지만 RAC(Real Application Cluster) 환경에서는 여러 인스턴스가 하나의 데이터베이스를 엑세스할 수 있다. 하나의 인스턴스가 여러 데이터베이스를 엑세스할 수는 없다. SQL Server 는 하나의 Instance 당 최고 32767 개의 데이터베이스를 정의하여 사용할 수 있다. 기본적으로 시스템 데이터베이스가 만들어지며 사용자 데이터베이스를 추가로 생성하는 구조로 이루어져 있다. 데이터베이스를 만..
규칙 기반 옵티마이저(RBO), 비용 기반 옵티마이저(CBO) 규칙 기반 옵티마이저 (Rule Based Optimizer), 비용 기반 옵티마이저(Cost Based Optimizer) 에 대해 작성한다. 규칙 기반 옵티마이저는 규칙(우선 순위)을 가지고 실행 계획을 생성한다. 실행계획을 생성하는 규칙을 이해하면 누구나 실행계획을 비교적 쉽게 예측할 수 있다. 옵티마이저가 참조하는 정보에는 인덱스 유무와 종류, 연산자의 종류, 참조 객체의 종류 등이 있다. 이러한 참조 정보에 따라 우선순위의 규칙이 정해져 있고 이 순위를 기반으로 실행계획을 생성한다. 결과적으로 규칙기반 옵티마이저는 우선순위가 높은 규칙이 적은 일량으로 해당 작업을 수행하는 방법이라고 판단하는 것이다. 오라클의 규칙기반 옵티마이저의 15규칙은 다음과 같다. 순위 엑세스 기법 1 Single row..
CSS Pro-Processor(전처리기) SASS, SCSS, LESS CSS는 재사용 및 체계적인 코드를 작성하기 위한 복잡한 논리과 기능이 존재하지 않습니다. CSS 전처리기는 이러한 바닐라 CSS의 기본기능을 확장하는데 사용되는 도구입니다. 변수,함수,믹스인,코드 중첩 및 상속 과 같은 복잡한 논리 구문을 사용해 몇가지 이름을 지정하여 바닐라 CSS를 강화하여 사용할 수 있습니다. 그러나 브라우저는 바닐라 CSS 코드만 이해할 수 있으며 CSS 전처리기 구문을 해석할 수 없습니다. CSS 전처리기 구문은 네이티브 CSS 로 컴파일되어야 하며, 그 다음 브라우저에서 해석할 수 있습니다. 현재 가장 많이 사용되는 전처리기에는 Sass, LESS, Stylus 등이 있다 CSS 전처리기 사용의 장점 - 재사용성 : 공통 요소 또는 반복적인 항목을 변수 또는 함수로 대체할 수..
주요 렌더링 경로(Critical Rendering Path) Critical Rendering Path(CRP, 주요 렌더링 경로) CRP은 문서(HTML, CSS, Javascript)를 화면에 표현하기 위해 거치는 일련의 과정을 말한다. 1. HTML 마크업을 처리하고 DOM 트리를 빌드합니다. 2. CSS 마크업을 처리하고 CSSOM 트리를 빌드합니다. 3. DOM 및 CSSOM을 결합하여 렌더링 트리를 형성합니다. 4. 렌더링 트리에서 레이아웃을 실행하여 각 노드의 기하학적 형태를 계산합니다. 5. 개별 노드를 화면에 페인트합니다 1. 객체 모델 생성 바이트 → 문자 → 토큰 → 노드 → 객체 모델. HTML 마크업은 DOM(Document Object Model)으로 변환되고, CSS 마크업은 CSSOM(CSS Object Model)으로 변환됩니다. D..
Javascript 동기식/비동기식 처리 Javascript는 싱글 스레드 언어로 동기적 언어이고 브라우저 엔진에서 작동할 때 비동기적으로 처리된다. 동기 : 요청 처리 완료 후 다음 요청을 처리 하는 방식 비동기 : 하나의 요청 처리가 완료되기 이전에 다음 요청을 처리하는 방식 callback 콜백 함수는 다른 함수의 인자로 사용되거나 이벤트에 의해 호출되어지는 함수를 말한다. 함수의 요청 값을 콜백 하여 다음 함수에서 사용할 수 있는 것을 콜백이라고 한다. const arr = [0,1,2,3,4,5]; (arr.forEach(function(element){ //function이 for Each의 인자로 활용되고 있음 console.log(element); })(); setTimeOut 호출될 콜백 함수와 지연 시간 두가지 인자를 설정하여..
CTE(Common Table Expressions) CTE는 standard SQL feature 이며, SELECT, INSERT, UPDATE, DELETE 또는 CREATE VIEW 문 하나의 실행 범위 내에서 정의되늰 임시 결과 집합이다. CTE 는 개체로 저장되지 않고, 쿼리 지속 시간 동안만 존재한다는 점에서 파생 테이블과 비슷하나, CTE는 파생 테이블과 달리 자체 참조가 가능하며 동일 쿼리에서 여러 번 참조할 수 있다. CTE는 항상 결과 집합을 반환합니다. 예를들어 기본 쿼리 본문에서 파생 테이블을 제거하는데 사용할 수 있습니다. SQL Server 에서 CTE 는 SELECT 문에서 사용할 수 있는 임시 결과 집합을 정의합니다. 복잡한 쿼리를 관리하는 편리한 방법이 됩니다. 공통 테이블 표현식은 WITH 연산자를 사용하여 SQL문 내부에..