1. 가상화(Virtualization)란? [ 가상화(Virtualization)란? ] 가상화란 가상화를 관리하는 소프트웨어(주로 Hypervisor)를 사용하여 하나의 물리적 머신에서 가상 머신(VM)을 만드는 프로세스이다. Hypervisor는 가상화 층을 구현하여 물리적 머신의 컴퓨팅 리소스로부터 가상 환경을 분리하고 가상 머신(VM)을 생성한다. VM은 물리적 머신과 동일한 역할 및 성능을 수행하지만, cpu와 메모리 및 스토리지와 같은 물리적 머신의 컴퓨팅 리소스를 사용한다. Hypervisor는 필요에 따라 각 VM에 이러한 컴퓨팅 리소스를 할당한다. 최근에는 Docker와 같은 컨테이너 가상화 기술이 등장하기도 하였다. 도커를 윈도우에서 사용하는 경우에는 Hypervisor를 사용하지만,..
아래의 실습은 Ubuntu 20.04를 기반으로 포스팅하였습니다. 1. Xen 설치하기 [ 1. 관련 패키지 설치 ] 먼저 Xen을 설치하기 위해 필요한 패키지들을 설치하고 업데이트 후에 재부팅한다. // vim 에디터 설치 sudo apt install vim // Xen 관련 패키지 설치 sudo apt install xen-hypervisor-amd64 xen-tools // 네트워크 유틸 설치 sudo apt install net-tools // 패키지 업데이트 sudo apt update // 재부팅 sudo reboot [ 2. Xen 실행 여부 확인 ] 설치한 Xen 하이퍼바이저가 잘 실행되고 있는지 확인한다. 정상적으로 Xen이 설치되었다면 아래와 같은 도메인 0 가상머신이 생성되어 있을 ..
1. Xen이란? [ Xen이란? ] Xen이란 오픈소스 하이퍼바이저 중 하나로, 하드웨어 위에서 실행되는 Type1의 형태 또는 베어 메탈 형태의 가상화 기술을 의미한다. Xen은 CPU, Memory, Interrupt 등을 직접 다루고, 물리 자원을 추상화하여 가상화된 자원을 가상머신(Virtual Machine, VM)에게 제공한다. Xen 하이퍼바이저는 장치(Device)에 대한 처리는 직접 수행하지 않는 대신 장치를 관리하는 특권(Privilege)이 있는 가상 머신인 도메인 0에게 이러한 역할을 일임한다. 사용자 모드에 있는 어플리케이션이 커널의 기능을 이용할 수 있도록 커널이 시스템콜(syscall)을 제공하는 것처럼 도메인0이 하이퍼바이저의 기능을 요청하기 위해 하이퍼콜(hypercall..
1. 캐시(Cache)란? [ Cache ] Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이, 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. Cache는 아래와 같은 경우에 사용을 고려하면 좋다. 접근 시간에 비히 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터) 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일 등) Cache에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. 결국 Cache란 반복적으로 데이터를 불러오는 경우에, 지속적으로 DBMS 혹은 서버에 요청하는 것이 아니라 Memory에 데이터를 저장하였다..
현대 웹서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 이번에는 토큰 기반의 인증 시스템에서 주로 사용하는 JWT(Json Web Token)에 대해 알아보도록 하겠다. 1. JWT(Json Web Token)란? [ JWT 개념 ] JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 주로 회원 인증이나 정보 전달에 사용되는 JWT는 아래의 로직을 따라서 처리된다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 된다. static 변수에 저장되는 이유는..