터미널이 이렇게 예쁠 수 있다고? Turbo Vision 2.0 완전 정복
터미널 화면에서 마우스 클릭이 되고, 창이 뜨고, 메뉴가 열린다면 믿으시겠습니까? 그것도 순수 텍스트 환경에서 말입니다. 처음 봤을 때 저도 눈을 의심했습니다. "이게 터미널이라고?" 소리가 절로 나왔습니다.
오늘 소개할 Turbo Vision 2.0은 1990년대 Borland가 만든 전설적인 TUI(Text User Interface) 프레임워크를 현대 환경에 완벽하게 부활시킨 오픈소스 프로젝트입니다. 유료 GUI 라이브러리 못지않은 완성도인데, 완전 무료입니다. 개발자라면, 특히 레트로 감성과 실용성 둘 다 원하신다면 오늘이 인생 바뀌는 날입니다.
Turbo Vision이 뭔데요? 30초 배경 설명
1991년, Borland는 Turbo Pascal과 함께 Turbo Vision이라는 TUI 프레임워크를 세상에 내놨습니다. DOS 시절 텍스트 화면에서 창(window), 메뉴바, 대화상자, 스크롤바까지 구현할 수 있게 해준 혁신적인 도구였습니다. 당시 Borland IDE 자체도 이 프레임워크로 만들어졌을 정도였으니까요.
문제는 세월이 흘렀다는 점입니다. 유니코드 없음, 256색 한계, Windows/Linux 최신 환경과의 호환 문제. 오랫동안 역사 속 유물로만 남아 있었습니다.
그런데 마우리시오 페레이라(magiblot)라는 개발자가 이것을 완전히 현대화했습니다. 결과물이 바로 Turbo Vision 2.0입니다. 추억의 틀에 현대 기술을 가득 채워 넣은 셈입니다.
핵심 기능 3가지 — 이래서 '보물'입니다
첫째, 유니코드 + 24비트 트루컬러 완전 지원. 옛날 Turbo Vision의 가장 큰 약점이 해소됐습니다. 한글, 일본어, 이모지가 터미널에서 깨지지 않고 표시됩니다. 배경색과 글자색도 무려 1,600만 가지 색상 중에서 고를 수 있습니다. 기존 256색과는 차원이 다른 시각적 품질입니다.
둘째, 마우스 완전 지원 + 이벤트 드리븐 구조. 터미널에서 마우스를 클릭하면 반응합니다. 창을 드래그해서 이동하고, 크기를 조절하고, 버튼을 눌러 작동시킬 수 있습니다. 내부 구조는 이벤트 드리븐 방식이라 Electron 같은 현대 GUI 프레임워크와 설계 철학이 비슷합니다. 복잡한 인터랙션도 깔끔하게 처리됩니다.
셋째, 크로스 플랫폼 — Linux, macOS, Windows 모두 됩니다. CMake 기반으로 빌드 시스템이 구성되어 있어서 어느 환경에서든 컴파일하고 사용할 수 있습니다. Windows에서는 Win32 콘솔과 WinPTY를 지원하고, Linux/macOS에서는 xterm 계열 터미널 에뮬레이터와 완벽하게 호환됩니다. "내 환경에선 안 되더라"는 말이 거의 안 나오는 수준입니다.
설치 방법 — 처음부터 끝까지 따라하세요
C++ 개발 환경(GCC 또는 Clang)과 CMake가 설치되어 있어야 합니다. 없으시다면 아래 순서대로 진행하세요.
Ubuntu/Debian 기준 설치:
# 빌드 도구 설치
sudo apt install build-essential cmake git
# 저장소 클론
git clone --recursive https://github.com/magiblot/tvision.git
cd tvision
# 빌드
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
빌드가 끝나면 build/ 폴더 안에 예제 실행 파일들이 생성됩니다. ./build/hello 같은 예제를 실행해보면 터미널 위에서 창이 뜨는 걸 직접 확인할 수 있습니다.
macOS(Homebrew) 기준:
brew install cmake
git clone --recursive https://github.com/magiblot/tvision.git
cd tvision
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
자신의 프로젝트에 라이브러리로 추가하는 방법: CMakeLists.txt에 아래 한 줄만 추가하면 됩니다.
add_subdirectory(tvision)
target_link_libraries(your_project PRIVATE tvision)
vcpkg나 Conan 같은 패키지 매니저로도 설치가 가능합니다. 프로젝트 형태에 따라 원하는 방식을 선택하시면 됩니다.
실제 써보니 — 어디에 쓸 수 있을까요?
가장 먼저 떠오르는 활용처는 서버 관리 TUI 도구입니다. 원격 서버에 SSH로 접속했을 때, 그래픽 환경 없이도 메뉴 기반의 깔끔한 관리 인터페이스를 띄울 수 있습니다. htop처럼 텍스트로 구성되어 있지만 훨씬 복잡한 인터랙션이 가능합니다.
저는 실제로 간단한 파일 관리자 프로토타입을 만들어봤습니다. Norton Commander나 Midnight Commander처럼 두 창을 나란히 띄워서 파일을 옮기는 구성인데, 생각보다 빠르게 구현됐습니다. 창 크기 조절, 키보드 단축키, 마우스 클릭이 모두 자연스럽게 동작했습니다.
또 다른 활용 예시로는 개발 툴 내장 디버거 UI가 있습니다. 실제로 Turbo Vision 기반으로 만들어진 turbo라는 텍스트 에디터도 있습니다. Scintilla 편집 컴포넌트를 붙여서 완성도 높은 TUI 편집기를 만든 사례입니다. "터미널에서 이 정도 에디터가 가능하다고?"라는 반응이 자연스럽게 나옵니다.
IoT 장치나 임베디드 리눅스처럼 GUI를 쓰기 어려운 환경에서도 빛을 발합니다. 디스플레이는 달려 있지만 X11 서버는 없는 상황, 혹은 리소스가 한정된 환경에서 Turbo Vision 2.0은 탁월한 선택입니다.
비슷한 대안과 비교 — 왜 Turbo Vision 2.0인가
TUI 프레임워크는 Turbo Vision 2.0 말고도 여럿 있습니다. 대표적인 것들과 비교해보겠습니다.
ncurses: 가장 오래되고 범용적인 TUI 라이브러리입니다. C 기반이라 어디서든 돌아가지만, 직접 레이아웃을 잡고 이벤트를 처리하는 코드를 짜야 합니다. 고수준 위젯이 없기 때문에 개발 생산성이 낮습니다.
FTXUI (C++): 모던 C++ 스타일의 TUI 라이브러리로 선언적 UI 방식을 씁니다. React와 유사한 개념을 차용해서 최근 인기가 높습니다. 다만 Turbo Vision의 이벤트 드리븐 + 마우스 인터랙션 완성도와 비교하면 아직 성숙도 면에서 차이가 있습니다.
Textual (Python): Python 개발자라면 Textual이 가장 접근하기 쉽습니다. 문서화가 잘 되어 있고 커뮤니티도 활발합니다. 다만 Python 런타임이 필요하고 성능에 민감한 시스템 도구에는 C++ 기반의 Turbo Vision이 유리합니다.
결론적으로, C++ 환경에서 완성도 높은 레트로 감성 TUI를 빠르게 구현하고 싶다면 Turbo Vision 2.0이 가장 강력한 선택입니다. 이미 수십 년 검증된 설계 위에 현대 기능을 얹었기 때문에 안정성도 높습니다.
GitHub 스타 수는 아직 크게 알려지지 않은 수준이지만, 코드 품질과 완성도는 메이저 오픈소스 프로젝트와 비교해도 전혀 꿀리지 않습니다. 바로 이게 '숨은 보물'인 이유입니다. 남들이 아직 모를 때 써보는 것, 그게 진짜 개발자 경쟁력입니다.
터미널이 이렇게 아름다울 수 있다는 걸 Turbo Vision 2.0이 증명해줍니다. 지금 바로 클론해서 예제를 실행해보세요. 그 순간의 감탄은 제가 보장합니다.
⚠️ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
댓글