No Story, No Ecstasy

대시보드, 도커, 컨테이너 본문

Shallow Series

대시보드, 도커, 컨테이너

heave_17 2021. 3. 12. 23:14

D3.js

D3.js: Data-Driven Documents. JavaScript

자바스크립트 기반의 라이브러리 언어로, 사용자가 정의한 시각화 규칙을 바탕으로 데이터를 웹에 시각화해준다. HTML5 SVG (Scalable Vector Graphic)을 활용하여 다양한 크기의 화면에서 깨짐 없이 시각화할 수 있다.

Loading, Selecting/Binding, Transform, Transition 동작으로 이루어진다.

 

SVG

웹 용 벡터 그래픽으로, 인터넷 익스플로러 8 이하를 제외한 모든 브라우저에서 HTML 문서에 직접 포함/삽입할 수 있다.

D3 메서드는 입력으로 출력의 참조를 활용한다. 메서드 체인을 구성하여, 코드 한 줄에 여러 동작을 실행하도록 개발한다.

 

Grouping Elements

append() 메서드는 여러 개의 도형을 하나의 그룹으로 묶어주는 역할을 한다. svg 객체를 생성한 후 append() 메서드를 활용하여 해당 객체에 새로운 도형을 추가해준다.

 

Data 연결

data() 메서드는 svg 객체를 데이터와 연결시켜준다. 객체에 data를 연결한 후 attr() 메서드를 활용하면 data의 값을 활용하여 도형의 특성(너비, 높이, 색 등)을 결정할 수 있다.

 

가상 DOM (Document Object Model)

브라우저는 (1) html 태그를 파싱하여 DOM 트리 구성, (2) 스타일시트에서 css를 파싱하여 스타일 규칙 생성, (3) DOM 트리에 스타일 규칙을 적용하여 렌더 트리 생성을 통해 화면을 구성한다. 이 때 화면의 여러 변경 사항들을 한 번에 반영하는 가상 DOM을 활용하면 불필요한 렌더링을 줄여준다. enter()

 

 

Docker?

Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 다양한 프로그램과 환경을 컨테이너로 추상화하고, 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다.

 

Image

Image란 컨테이너 실행에 필요한 파일과 설정 값 등을 포함하고 있는 변하지 않는 상태를 의미한다(컨테이너는 이미지를 실행한 상태).

 

Docker vs. VM (Virtual Machine)

가상머신은 운영체제 위에 하드웨어를 에뮬레이션하고 그 위에 운영체제를 올리고 프로세스를 실행하는 반면에, 도커 컨테이너는 하드웨어 에뮬레이션 없이 리눅스 커널을 공유해서 바로 프로세스를 실행한다.

가상화를 위해 추가적인 OS를 가상화하는 VM과 달리, Docker는 프로세스만을 격리함으로써 오버헤드를 줄이고 성능을 높였다. Docker Image 파일은 git처럼 변경 사항만 저장하기 때문에 컨테이너를 여러 개 띄어도 추가적인 용량이 거의 들지 않는다.

 

컨테이너를 위한 2가지 기술 (OCI 스펙)

- Cgroup: CPU, 시스템 메모리, 네트워크 대역폭과 같은 자원을 시스템에서 실행 중인 프로세스에 할당하는 기술

- namespace: 리소스들을 서로 격리시키는 기술

 

Kubernetes

컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼이다. 관리자가 desired state를 선언하고, 쿠버네티스가 desired state를 다양한 object label에 붙여 정의(yaml)하고 API 서버로 전달한다.

'Shallow Series' 카테고리의 다른 글

강화학습 기초  (0) 2021.05.26
서버 관련 - VM, MongoDB, WAS  (0) 2021.03.12
구글 빅쿼리  (0) 2021.03.12
텍스트마이닝 - 디리클레, 깁스 샘플링  (0) 2021.03.12
Python 2차원 배열 (list of list) 선언 방법  (0) 2021.01.21