2024년 6월에 출시된 Project IDX는 클라우드에서의 풀 스택 앱 개발을 위한 AI 지원 작업공간입니다. Project IDX는 다양한 프레임워크, 언어, 서비스를 지원하는 한편, Google 제품에 대한 통합을 통해 개발 워크플로를 간소화합니다.
Project IDX를 활용하여 단 몇 분 만에 Go로 애플리케이션을 개발하는 방법을 보여드리겠습니다. Project IDX에서 Go 개발 환경을 설정하고 첫 번째 서버 애플리케이션을 만들어 보겠습니다. IDX에서 Go 개발 환경을 설정하고 간단한 hello world 서버를 만드는 방법을 살펴보겠습니다.
IDX에서 작업공간을 만드는 방법에는 몇 가지가 있습니다. GitHub 저장소를 가져오거나, 처음부터 빈 작업공간을 새로 만들거나, 혹은 미리 구성된 템플릿을 사용할 수 있습니다. 먼저 처음부터 시작하는 방법을 보여드린 다음 템플릿을 살펴보겠습니다.
이 섹션에서는 IDX를 사용하여 환경을 설정하고 기본적인 Hello, World 서버를 작성하는 과정을 살펴보겠습니다.
idx.google.com/new/blank에서 IDX에 빈 프로젝트를 새로 생성하는 과정부터 시작해 보겠습니다. 이 프로젝트에는 리드미와 기본 dev.nix가 포함되어 있습니다.
환경 구성은 nix 환경 구성으로 맞춤설정할 수 있습니다. IDX의 Go 작업공간에 대한 최소 구성에서는 Go nix 패키지를 추가하고 Go 확장 프로그램을 설치합니다.
Go nix 패키지와 Go 확장 프로그램을 포함하도록 .idx/dev.nix를 업데이트합니다.
{ pkgs, ... }: {
packages = [
pkgs.go
];
idx = {
extensions = [
"golang.go"
];
};
}
이러한 변경 사항을 적용할 수 있도록 환경을 재구성하세요.
이제 작업공간이 Go 코드 개발을 할 수 있게 설정되었으므로 Go 서버 작성을 시작할 수 있습니다.
먼저 Go 코드를 포함할 모듈을 초기화해 보겠습니다. Command Palette에서 Go 확장 프로그램이 제공하는 > Go: Initialize go.mod
를 실행하거나 명령줄에서 go mod init
을 실행하여 이 작업을 수행할 수 있습니다.
$ go mod init github.com/myorg/helloWorld
“Hello, World!"를 반환하는 간단한 서버로 main.go
를 만들어보겠습니다.
package main
import (
"fmt"
"log"
"net/http"
"os"
)
func main() {
log.Print("starting server...")
http.HandleFunc("/", handler)
// HTTP 서비스용 포트를 결정합니다.
port := os.Getenv("PORT")
if port == "" {
port = "3000"
log.Printf("defaulting to port %s", port)
}
// HTTP 서버를 시작합니다.
log.Printf("listening on port %s", port)
if err := http.ListenAndServe(":"+port, nil); err != nil {
log.Fatal(err)
}
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "<!DOCTYPE html>\n")
fmt.Fprint(w, "Hello, World!\n")
}
이제 요청을 수신 대기할 수 있는 서버가 있으므로 미리보기를 만들어 테스트해 보겠습니다.
웹 미리보기 구성을 .idx/dev.nix에 추가합니다.
idx = {
previews = {
enable = true;
previews = {
web = {
command = ["go" "run" "main.go"];
manager = "web";
env = {
# 서버에 설정할 환경 변수
PORT = "$PORT";
};
};
};
};
};
웹 미리보기를 보려면 환경을 다시 구성하세요. > Project IDX: Show Web Preview
를 사용하여 Command Palette에서 미리보기를 열 수도 있습니다.
신속하게 시작할 수 있도록 필요한 모든 도구와 라이브러리로 사전 구성된 환경이 포함되어 있어 바로 사용할 수 있는 템플릿을 제공합니다.
Go 백엔드 서버 템플릿 중 하나로 시작하거나 Go 및 Gemini 템플릿으로 LLM 애플리케이션 개발을 시작해 보세요.
AI의 힘을 활용할 수 있도록 Gemini with Go 템플릿은 Gemini API와 통합됩니다. Gemini API 키를 연결하여 시작하세요.