지금까지 다룬 SSH는 텍스트 셸을 원격으로 다루는 방법이었다. 그러나 그래픽 환경(GUI)을 통째로 원격에서 쓰려면 다른 기술이 필요하다. 오늘은 화면을 그대로 전송하는 VNC와, 리눅스 GUI의 토대인 X 윈도 시스템을 다룬다. X 윈도의 핵심은 직관과 정반대인 클라이언트-서버 역전 개념이다. 이걸 똑바로 이해하지 못하면 실기에서 반드시 틀린다.
오늘의 핵심 통찰: X 윈도 시스템에서 "서버"는 화면·키보드·마우스를 가진 사용자 앞의 기기이고, "클라이언트"는 그림을 그려달라고 요청하는 응용프로그램이다. 우리의 상식("내 PC가 클라이언트, 멀리 있는 게 서버")과 정반대다. 이 역전을 받아들이는 것이 X 윈도 학습의 전부라 해도 과언이 아니다.
**VNC(Virtual Network Computing)**는 원격 컴퓨터의 화면을 그대로 내 화면에 띄우고, 내 키보드·마우스 입력을 원격으로 보내는 화면 공유 기술이다.
| 구성요소 | 역할 |
|---|---|
| VNC 서버 | 원격(접속 대상) 컴퓨터에서 실행, 자기 화면을 전송 |
| VNC 뷰어(클라이언트) | 사용자 앞 컴퓨터에서 실행, 원격 화면을 표시·조작 |
| RFB 프로토콜 | VNC가 화면·입력을 주고받는 프로토콜 |
VNC는 화면 번호(display)마다 포트가 정해진다: