본문 바로가기

전체 글

(137)
PSR-0, PSR-1, PSR-2 (PHP Standards Recommendations) PSR(PHP Standards Recommendations)는 PHP의 표준 규약을 의미한다. PHP-FIG(PHP-FrameWork InteropGroup)에서 만든 표준 권고안이다. 1. PSR-0 Autoloading Standard 2014-10-21 기준으로 사용 중단, PSR-4 사용 권장. 오토로더 상호 운용성을 위해 반드시 준수해야하는 필수 요구사항에 대해 설명. 정규화된 네임스페이스 및 클래스는 다음과 같은 구조를 따라야 합니다. \\(\)* 각 네임스페이스의 최상위 네임스페이스에는 공급자(Vendor)의 이름을 사용해야 합니다. 각 네임스페이스는 원하는 만큼의 하위 네임스페이스를 가질 수 있습니다. 각 네임스페이스의 구분기호는 DIRECTORY_SEPARATOR로 변환됩니다. CLAS..
PHP 7 엄격한 타이핑 (strict mode) PHP 에서 "declare(strict_types = 1);" 지시문은 엄격한 타입 체크 모드를 활성화합니다. Strict 모드에서는 정확한 유형의 변수만 허용되며 정확하지 않은 유형일 경우 TypeError 가 발생합니다. 기본적으로 PHP는 약한 타입 체크 모드에서 작동하며 가능한 경우 다른 유형의 값을 예상되는 유형으로 캐스팅하여 처리합니다. 예를 들어 다음의 경우 정수를 문자열로 변환이 가능하여 문자열을 예상하는 함수는 정수 인수를 사용하여 호출할 수 있습니다.
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..

반응형