프로그래밍 기초

윈도 시스템, X 윈도 시스템, Xvfb

hs-archive 2023. 5. 31. 16:20

윈도 시스템, X 윈도 시스템, Xvfb

윈도 시스템, X 윈도 시스템, Xvfb는 모두 GUI(그래픽 사용자 인터페이스) 애플리케이션을 실행하고 조작하는 데 사용됩니다. 해당 글에서는 이 셋의 의미와 차이에 대해 알아볼 것입니다.

 

윈도 시스템

윈도 시스템은 사용자가 그래픽적인 방식으로 애플리케이션을 실행하고 조작할 수 있도록 합니다. 일반적으로 윈도 시스템은 창 관리자(Window Manager)라는 소프트웨어를 통해 창의 생성, 위치 조정, 크기 조정, 닫기 등을 관리합니다. 또한, 윈도 시스템은 입력 장치(마우스, 키보드 등)와 출력 장치(모니터)를 사용하여 사용자와 애플리케이션 간의 상호작용을 담당합니다.

 

윈도 시스템은 우리가 키보드를 누르거나 마우스를 움직이면 컴퓨터가 그것을 알아챌 수 있게 도와주는 것이므로, 우리가 유튜브에서 무언가를 클릭하여 영상을 보는것, 마우스 혹은 키보드를 조작하여 게임을 하는 것 등의 일들은 모두 기본적으로 원도 시스템이 있기 때문에 가능한 것입니다.

 

X 윈도 시스템

X 윈도 시스템은 윈도 시스템은 윈도 시스템인데 "네트워크 기반"의 윈도 시스템입니다. 주로 UNIX 계열의 운영 체제에서 사용됩니다. X 윈도 시스템은 클라이언트-서버 아키텍처를 기반으로 동작합니다. X 서버는 디스플레이와 입력 장치를 관리하고, 클라이언트 애플리케이션은 X 서버를 통해 화면 출력을 요청하고 입력 이벤트를 받을 수 있습니다. X 윈도 시스템은 다중 창 관리, 네트워크를 통한 원격 화면 공유 등의 기능을 제공합니다.

 

Xvfb

Xvfb는 "가상 프레임 버퍼"를 의미하는 "X virtual framebuffer"의 약자입니다. 가상이라는 뜻은 실제로는 없지만 마치 있는 것처럼 동작한다는 것입니다. 예를 들어, 상상 속에서 집을 만들어 보면 실제로는 없지만 마치 집이 있는 것처럼 생각할 수 있는 것과 동일합니다. 정리하면, Xvfb는 X 윈도 시스템을 가상으로 만들어 주는 프로그램입니다.

 

Xvfb는 X 윈도 시스템을 "가상"으로 만들어 주기 때문에, 실제 디스플레이 환경이 없는(Headless) 환경에서도 X 윈도 시스템을 사용하는 GUI 애플리케이션을 실행할 수 있으며, 이를 통해 CI/CD 환경이나 서버 환경에서 GUI 애플리케이션을 테스트할 수 있습니다.

 

만약 Github Actions에서 Xvfb를 사용하기를 원한다면 아래와 같이 XVFB Gitbub Action을 사용하면 됩니다. 링크 참조

 

...
jobs:
	build:
		...
		steps:
			...
			- name: Run headless test
			  uses: coactions/setup-xvfb@v1
			  with:
				run: npm test

 

정리

정리하자면, 윈도 시스템은 그래픽적인 방식으로 애플리케이션을 실행하고 조작하는 것이며, X 윈도 시스템은 네트워크 기반의 윈도 시스템입니다. Xvfb는 가상으로 X 윈도 시스템을 만들어 주는 프로그램으로, 실제 디스플레이 환경이 없는 환경에서 GUI 애플리케이션을 실행할 수 있도록 도와줍니다.

 

 

 

 

 


https://github.com/marketplace/actions/setup-xvfb

 

setup-xvfb - GitHub Marketplace

Run your headless tests with XVFB

github.com

'프로그래밍 기초' 카테고리의 다른 글

마이크로서비스 아키텍처(MSA, Microservice Architecture)  (0) 2023.06.19
콘텐츠 보안 정책(Content Security Policy, CSP)  (0) 2023.06.03
Docker Compose  (0) 2023.05.23
깃허브 액션  (2) 2023.05.15
CI/CD  (2) 2023.05.14