본문 바로가기

IT & AI

Go 코드만으로 데스크톱 UI를 만드는 Shirei

728x90

Go 코드만으로 데스크톱 UI를 만드는 Shirei

Shirei Go GUI 프레임워크 썸네일
Shirei Go GUI 프레임워크 썸네일

Go로 데스크톱 프로그램을 만들 때 UI 때문에 HTML과 JavaScript를 함께 쓰고 싶지 않은 개발자라면 Shirei를 살펴볼 만해요. 하나의 Go 코드베이스로 macOS, Windows, Linux용 프로그램을 만들고, 약 10MB 크기의 네이티브 실행 파일로 컴파일하는 오픈소스 GUI 프레임워크예요. 1

핵심 요약

구분내용개발자가 확인할 점
작성 방식UI와 동작을 Go 코드로 작성해요웹 프런트엔드 도구가 필요하지 않아요
지원 환경macOS, Windows, Linux를 주요 대상으로 삼아요iOS와 Android는 유틸리티형 앱용 개발 백엔드를 제공해요
상태 관리데이터에 맞춰 화면을 매번 선언하는 즉시 모드 API를 써요위젯 상태를 따로 동기화하는 코드를 줄일 수 있어요
배포 형태웹 페이지가 아닌 네이티브 실행 파일을 만들어요저장소 설명 기준 일반적인 바이너리는 약 10MB예요
텍스트 처리복잡한 문자 조합, 양방향 배치, 시스템 글꼴, IME를 지원해요한국어 입력이 필요한 앱도 검토할 수 있어요

1. Go 하나로 화면과 동작을 함께 작성해요

Shirei는 HTML이나 JavaScript 대신 Go 함수로 컨테이너, 레이블, 버튼 같은 UI를 구성해요. 저장소의 카운터 예제는 창을 만든 뒤 `RootView` 함수에서 화면을 선언하고, 버튼 클릭 결과를 Go 변수에 반영하는 흐름을 보여 줘요. 프런트엔드 런타임을 별도로 끼우지 않아도 되므로 작은 내부 도구나 시스템 유틸리티를 Go 프로젝트 안에서 끝내고 싶은 팀에 맞아요. 2

프레임워크가 내세우는 중심 개념은 즉시 모드예요. 현재 데이터에 따라 필요한 화면을 다시 설명하고, 더는 필요하지 않은 위젯의 생명주기나 상태를 개발자가 일일이 관리하지 않는 방식이에요. 단순히 캔버스에 그림만 그리는 API와 달리 버튼, 토글, 텍스트 필드, 스크롤바 같은 기본 동작도 제공해요. 화면의 처리 로직과 그리기 로직을 나눠 스타일을 바꾸면서도 클릭 판정까지 다시 만들 필요는 없어요.

728x90

데스크톱 3개 운영체제에 같은 외형을 내요

같은 코드로 macOS, Windows, Linux에서 같은 외형을 내는 것을 목표로 해요. Linux에서는 공유 라이브러리 의존성 없이 자체 완결형 GUI 프로그램을 만들 수 있다고 설명해요. 배포 대상 PC마다 웹뷰 버전이나 시스템 GUI 툴킷 차이를 관리하기 어려운 작은 도구에 특히 실용적인 선택지가 될 수 있어요.

모바일도 범위에 들어가지만 데스크톱과 똑같이 받아들이면 안 돼요. 프로젝트 문서는 iOS와 Android 백엔드를 유틸리티형 앱 대상으로 소개해요. 모바일 제품을 만들 계획이라면 터치 입력, 접근성, 플랫폼별 생명주기와 배포 절차가 필요한 수준까지 지원하는지 먼저 예제로 확인하는 편이 좋아요.

한국어 입력과 사용자 정의 위젯도 고려했어요

GUI 프레임워크는 버튼을 띄우는 데 성공해도 문자 입력에서 막히기 쉬워요. Shirei는 복잡한 문자 셰이핑, 오른쪽에서 왼쪽으로 쓰는 언어의 양방향 배치, 시스템 글꼴 접근, 동아시아 언어용 IME 지원을 기능 목록에 올려두고 있어요. 한국어 입력이 핵심인 데스크톱 도구라면 기본 예제뿐 아니라 조합 중인 글자 처리와 커서 이동을 직접 시험해 봐야 해요.

레이아웃과 스타일도 표준 위젯 목록에만 묶이지 않아요. 프로젝트가 제공하는 사용자 정의 위젯 방식으로 버튼이나 텍스트 필드의 외형을 바꿀 수 있어요. 다만 모든 운영체제에서 네이티브 위젯 모양을 따르는 방식이 아니라 같은 외형을 내는 방향이므로, 운영체제 고유 디자인과 동작을 얼마나 따라야 하는지도 선택 전에 따져봐야 해요.

도입 전에는 예제와 프로젝트 성숙도를 함께 봐야 해요

저장소에는 튜토리얼과 함께 레이아웃, 오디오, 가상 목록, 드래그 앤 드롭, 모바일 실행 예제가 있어요. 먼저 `haystack` 예제를 실행하면 렌더링 품질과 API 구성을 빠르게 볼 수 있어요. 그다음 실제 제품에 필요한 접근성, 키보드 탐색, 고해상도 화면, 패키징, 자동 업데이트 기능을 따로 확인하는 순서가 안전해요.

Shirei의 장점은 Go 코드만으로 UI를 작성하고 여러 운영체제에 같은 결과물을 내는 단순한 개발 흐름이에요. 반면 새 GUI 프레임워크를 고를 때는 기능 목록만큼 유지보수 속도와 생태계도 중요해요. 공개 저장소의 릴리스, 이슈, 예제 코드를 확인하고 작은 도구부터 시험하는 편이 부담을 줄여요.

왜 중요한가요

Go는 서버와 CLI 도구에서 널리 쓰이지만, 데스크톱 UI를 붙이는 순간 다른 언어나 웹 기술을 함께 선택하는 경우가 많아요. Shirei는 이 경계를 Go 코드 안으로 가져와 작은 GUI 유틸리티를 빠르게 만들 수 있는 경로를 제시해요. 특히 자체 완결형 Linux 바이너리, 약 10MB의 일반적인 실행 파일, 다국어 입력 지원은 배포가 단순한 내부 도구를 찾는 개발자에게 구체적인 비교 기준이 돼요. 2

아직은 실제 앱에서 필요한 접근성, 플랫폼 통합, 장기 유지보수 비용을 직접 검증해야 해요. 프레임워크를 바로 표준으로 정하기보다 동일한 작은 기능을 기존 후보와 각각 구현해 보고, 바이너리 크기와 메모리 사용량, 입력 처리, 패키징 난이도를 비교하면 판단하기 쉬워요.

참고 자료

  1. shirei - 실용적인 Go 기반 GUI 프레임워크 — GeekNews
  2. hasenj/go-shirei — GitHub
728x90