전체 글

전체 글

    어댑티브 해시 인덱스(Adaptive Hash Index)

    어댑티브 해시 인덱스 일반적으로 '인덱스'라고 하면 흔히 사용자가 생성한 B-Tree 인덱스를 떠올릴 것이다. 반면, 어댑티브 해시 인덱스는 사용자가 수동으로 생성하는 인덱스가 아니라 InnoDB 스토리지 엔진에서 사용자가 자주 요청하는 데이터에 대해 자동으로 생성하는 인덱스이다. 어댑티브 해시 인덱스는 innodb_adaptive_hash_index 시스템 변수를 이용해 기능을 활성화할 수 있다. 흔히 우리가 알고 있는 B-Tree 인덱스는 특정 값을 찾기 위해 루트 노드를 거쳐 브랜치 노드, 리프 노드까지 찾아가야 원하는 레코드를 읽을 수 있다. 따라서 이러한 B-Tree 인덱스는 자주 사용되는 데이터라도 매번 B-Tree를 타야한다는 아쉬운 부분이 있다. 어댑티브 해시 인덱스의 성능 향상 어댑티브 ..

    도커 스웜(Docker Swarm) 알아보기

    본 글은 시작하세요! 도커/쿠버네티스(용찬호 저, 위키북스)를 기반으로 정리한 글입니다. 이전 포스팅에서 도커와 도커 사용법에 대해서 알아보았는데, 지금까지 알아본 도커 사용법은 하나의 호스트를 기준으로 한다. 그런데 만약 하나의 호스트 머신에서 도커 엔진을 구동하다가 CPU나 메모리, 디스크 용량과 같은 자원이 부족해진다면 이를 어떻게 해결할까? 서버를 하나 더 구매해서 컨테이너를 분산하는 방법이 있을 것이다. 그러나 서버를 추가하면 이러한 서버들을 하나의 자원 풀로 만들어야 하는데, 이는 쉬운 작업이 아니다. 예를 들어 새로운 서버나 컨테이너가 추가됐을 때 이를 발견(Service Discovery)하는 작업부터 어떤 서버에 컨테이너를 할당할 것인가에 대한 스케줄러와 로드밸런서 문제, 클러스터 내의 ..

    Docker란 무엇인가

    본 글은 시작하세요! 도커/쿠버네티스(용찬호 저, 위키북스)를 기반으로 정리한 글입니다. 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 그렇다면 기존에 쓰이던 가상화 방법인 가상 머신과는 어떤 차이가 있을까? 가상 머신 기존의 가상화 기술은 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었다. 이렇게 하이퍼바이저에 의해 생성되고 관리되는 운영체제를 Guest OS라고 하며, 각 Guest OS는 다른 Guest OS와는 완전히 독립된 공간과 시스템 자원을 할당받아 사용한다. 그러나 각종 시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 하이퍼바이저를 반드시 거치기 때문에 일반 호스트에 비해 성능의 손실이 발생한다. 그뿐만 아니라 가상 머신은 Guest OS를..

    Webpack 정리

    Webpack Webpack은 의존 관계에 있는 모듈들을 하나의 자바스크립트 파일로 번들링하는 모듈 번들러이다. 자바스크립트 파일 뿐만 아니라 CSS, Image 등도 전부 모듈로 관리하는데, Webpack은 자바스크립트 밖에 모르기 때문에 loader를 사용하여 CSS나 Image 파일들을 Webpack이 이해할 수 있도록 변경해주어야 한다. 번들링 여러 개의 파일 중 종속성이 존재하는 파일들을 하나의 파일로 묶어 패키징 시키는 과정을 의미한다. 번들링이 필요한 이유 1. 네트워크 병목을 줄여준다. HTML 파일 내에서 태그를 사용하여 자바스크립트 파일을 실행할 수 있는데, 이러한 자바스크립트 파일을 많이 작성하게 된다면 네트워크 병목 현상을 야기할 수 있다. 이를 해결하기 위해 하나의 자바스크립트 파..