Go 언어와 Fyne으로 GUI 앱 개발하기 (Windows 환경 기준)

VFX TD·2025년 8월 13일
0

Go 언어는 가볍고 빠르며 효율적인 프로그래밍 언어로, 최근에는 GUI (Graphical User Interface) 애플리케이션 개발에도 활용되고 있습니다. 이 가이드에서는 Go 언어와 Fyne 프레임워크를 사용하여 Windows 환경에서 GUI 애플리케이션을 만드는 과정을 단계별로 자세히 설명합니다. 특히 Python Qt에서 겪었던 느린 실행 속도 문제를 해결하고, Go 언어의 강력함을 활용하는 데 초점을 맞춥니다.


1. Go 언어 설치

가장 먼저 할 일은 Go 언어를 컴퓨터에 설치하는 것입니다.

1.1 Go 공식 웹사이트 방문 및 다운로드

  • 공식 웹사이트: https://go.dev/dl/ 에 접속합니다.
  • 다운로드: 본인의 Windows 운영체제에 맞는 최신 안정 버전의 설치 파일을 다운로드합니다. (예: go1.22.4.windows-amd64.msi 또는 그 이후 버전)

1.2 Go 설치 진행

  • 다운로드한 MSI 설치 파일을 실행합니다.
  • 대부분의 설정은 기본값을 유지하고 "Next"를 클릭하며 설치를 완료합니다. Go는 자동으로 환경 변수(PATH)를 설정해 줍니다.

1.3 Go 설치 확인

  • 명령 프롬프트(CMD) 또는 PowerShell을 열고 다음 명령어를 입력하여 Go가 성공적으로 설치되었는지 확인합니다.
    go version
  • go version go1.25.0 windows/amd64와 같은 버전 정보가 출력되면 성공입니다.

2. 개발 환경 설정 (Visual Studio Code 추천)

효율적인 Go 개발을 위해 적절한 코드 에디터 또는 IDE를 설정하는 것이 중요합니다.

2.1 Visual Studio Code (VS Code) 설치

2.2 Go 확장 설치

  • VS Code를 실행합니다.
  • 왼쪽 사이드바에서 확장(Extensions) 아이콘(네모 4개 모양)을 클릭합니다.
  • 검색창에 "Go"를 입력하고, "Go Team at Google"에서 제공하는 공식 Go 확장을 설치합니다. 이 확장은 코드 자동 완성, 디버깅, 포맷팅 등 다양한 개발 편의 기능을 제공합니다.

3. 필수 개발 도구 설치 (MSYS2 & GCC) ⚠️ 필수 단계!

Fyne은 내부적으로 C/C++ 라이브러리를 사용하므로, Go가 이를 컴파일할 수 있도록 C/C++ 컴파일러인 GCC가 필요합니다. Windows에서는 MSYS2를 통해 GCC를 가장 쉽게 설치하고 관리할 수 있습니다.

3.1 MSYS2 설치 프로그램 다운로드

  • 공식 웹사이트: https://www.msys2.org/ 에 접속합니다.
  • 다운로드: msys2-x86_64-*.exe 파일을 다운로드합니다.

3.2 MSYS2 설치 진행

  • 다운로드한 MSYS2 설치 파일을 실행합니다.
  • 설치 경로: 기본 경로인 C:\msys64를 권장합니다. 경로에 공백이나 한글이 포함되지 않도록 주의하세요.
  • 설치가 완료되면 "Run MSYS2 now"를 체크하고 "Finish"를 클릭하여 MSYS2 터미널을 실행합니다.

3.3 MSYS2 업데이트 및 기본 패키지 설치

  • MSYS2 터미널에서 다음 명령어를 입력하여 패키지 데이터베이스를 업데이트합니다.
    pacman -Syu
    • 중요: 이 과정에서 터미널 창이 자동으로 닫힐 수 있습니다. 창이 닫히면 MSYS2 터미널을 다시 실행하고 다음 명령어를 입력하여 나머지 업데이트를 완료합니다.
      pacman -Su
  • GCC (C/C++ 컴파일러) 설치:
    다음 명령어를 입력하여 Fyne이 필요로 하는 64비트 GCC 컴파일러를 설치합니다.
    pacman -S mingw-w64-x86_64-gcc
    "Proceed with installation? [Y/n]" 메시지가 나오면 Y를 입력하고 Enter를 누르세요.

3.4 시스템 PATH 환경 변수 설정

  • Go가 설치된 GCC를 찾을 수 있도록 시스템 PATH 환경 변수에 MSYS2의 MinGW bin 폴더 경로를 추가해야 합니다.
  • 경로 확인: MSYS2 터미널에서 echo /mingw64/bin을 입력하면 나오는 경로가 Windows에서는 C:\msys64\mingw64\bin에 해당합니다.
  • 환경 변수 추가:
    1. Windows 검색창에 "환경 변수"를 입력하고 "시스템 환경 변수 편집"을 선택합니다.
    2. "시스템 속성" 창에서 "환경 변수(N)..." 버튼을 클릭합니다.
    3. "환경 변수" 창의 "시스템 변수(S)" 섹션에서 Path를 찾아 선택한 후 "편집(I)..." 버튼을 클릭합니다.
    4. "새로 만들기(N)"를 클릭하고 C:\msys64\mingw64\bin을 입력합니다.
    5. 모든 창에서 "확인"을 클릭하여 설정을 저장합니다.

3.5 설치 확인

  • 새로운 명령 프롬프트 또는 PowerShell을 열고 다음 명령어를 입력하여 GCC가 제대로 인식되는지 확인합니다.
    gcc --version
    버전 정보가 출력되면 성공입니다.

4. 새 Go 모듈(Module) 초기화 및 Fyne 추가

Go 프로젝트는 모듈 단위로 관리되며, Fyne 라이브러리를 사용하기 위해 이를 프로젝트에 추가해야 합니다.

4.1 프로젝트 폴더 생성

  • 원하는 위치에 새 프로젝트 폴더를 생성합니다.
    mkdir my-fyne-app
    cd my-fyne-app

4.2 Go 모듈 초기화

  • 프로젝트 폴더 안에서 다음 명령어를 실행하여 Go 모듈을 초기화합니다. your_module_name은 프로젝트의 고유한 이름으로 지정하세요.
    go mod init your_module_name
    (예: go mod init github.com/your-username/my-fyne-app 또는 go mod init my-fyne-app)
  • 이 명령어를 실행하면 go.mod 파일이 생성됩니다.

4.3 Fyne 라이브러리 추가

  • 프로젝트 폴더에서 다음 명령어를 실행하여 Fyne 라이브러리의 최신 안정 버전을 가져옵니다.
    go get fyne.io/fyne/v2
    이 명령어를 실행하면 go.mod 파일에 Fyne 종속성이 자동으로 추가되고, 필요한 모듈들이 캐시됩니다.

5. 첫 Fyne UI 애플리케이션 작성

이제 Go 코드를 작성하여 간단한 Fyne UI 앱을 만들어 봅니다.

5.1 main.go 파일 생성 및 코드 작성

  • 프로젝트 폴더 안에 main.go 파일을 생성하고 다음 코드를 입력합니다.

    package main
    
    import (
    	"fyne.io/fyne/v2"
    	"fyne.io/fyne/v2/app"
    	"fyne.io/fyne/v2/container"
    	"fyne.io/fyne/v2/widget"
    )
    
    func main() {
    	// 1. 새 Fyne 애플리케이션 생성
    	myApp := app.New()
    
    	// 2. 새 윈도우 생성 및 제목 설정
    	myWindow := myApp.NewWindow("나의 첫 Fyne 앱")
    
    	// 3. UI 위젯 생성
    	helloText := widget.NewLabel("안녕하세요, Fyne!")
    	myButton := widget.NewButton("클릭하세요!", func() {
    		helloText.SetText("버튼이 클릭되었습니다!") // 버튼 클릭 시 텍스트 변경
    	})
    
    	// 4. 위젯들을 컨테이너에 배치 (수직 배치)
    	content := container.NewVBox(
    		helloText,
    		myButton,
    	)
    
    	// 5. 윈도우에 컨텐츠 설정 및 크기 조절
    	myWindow.SetContent(content)
    	myWindow.Resize(fyne.NewSize(300, 200)) // 윈도우 크기 (가로 300, 세로 200)
    
    	// 6. 윈도우를 표시하고 애플리케이션 실행
    	myWindow.ShowAndRun()
    }

6. Fyne 애플리케이션 실행 및 빌드

코드를 작성했으니, 이제 실행하고 .exe 파일로 빌드해 봅니다.

6.1 애플리케이션 실행

  • 프로젝트 폴더가 열린 터미널에서 다음 명령어를 실행합니다.
    go run .
  • 잠시 후 Fyne으로 만들어진 작은 GUI 윈도우가 나타날 것입니다. 버튼을 클릭하여 텍스트가 변경되는지 확인해 보세요.
  • 참고: "build constraints exclude all Go files" 오류가 다시 발생하면, 3단계의 MSYS2/GCC 설치 및 PATH 설정이 제대로 되었는지 다시 한번 확인하고, 터미널을 새로 열어서 시도해 보세요.

6.2 실행 파일 (.exe) 빌드

  • 애플리케이션을 단독 실행 가능한 .exe 파일로 만들려면 다음 명령어를 사용합니다. Windows에서 콘솔 창이 뜨지 않도록 -ldflags 옵션을 추가합니다.
    go build -ldflags="-H windowsgui" -o myapp.exe .
  • 빌드가 성공하면 프로젝트 폴더 안에 myapp.exe 파일이 생성됩니다. 이 파일을 실행하여 GUI 애플리케이션이 정상적으로 작동하는지 확인할 수 있습니다.

추가 팁 💡

  • Fyne 데모 앱: Fyne이 제공하는 다양한 위젯과 기능을 탐색하고 싶다면, 다음 명령어로 데모 애플리케이션을 설치하고 실행해 보세요.
    go install fyne.io/fyne/v2/cmd/fyne_demo@latest
    fyne_demo
  • Go 모듈 정리: 프로젝트를 진행하며 불필요해진 종속성들을 정리할 때 go mod tidy 명령어를 사용할 수 있습니다.
    go mod tidy

이 과정을 통해 Go 언어와 Fyne을 사용하여 빠르고 효율적인 GUI 애플리케이션을 개발할 수 있을 것입니다.

0개의 댓글