아래의 실습은 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 변수에 저장되는 이유는..
기존의 시스템에서는 서버 기반의 인증방식을 사용하였다. 하지만 시스템의 규모가 커짐에 따라 서버 기반의 인증 방식은 한계점을 보이기 시작하였고, 토큰 기반의 인증 방식이 등장하게 되었다. 현대 웹서비스에서 API를 이용한 웹서비스를 개발할 때, 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 이번에는 서버 기반의 인증 시스템과 토큰 기반의 인증 시스템의 차이점을 알아보고 토큰 기반 인증 시스템의 장점을 알아보도록 하겠다. 1. 서버(세션) 기반의 인증 시스템 [ 서버(세션) 기반 인증 시스템이란? ] 기존의 인증 시스템은 서버 기반의 인증 방식으로, 서버 측에서 사용자들의 정보를 기억하고 있어야 한다. 사용자들의 정보를 기억하기 위해서는 세션을 유지해야 하는데, 메모리나 디스크..