Online Go Compiler
Write, compile, run, and debug Go code online in a full-featured browser IDE. Work with multiple files, save your workspace, and collaborate in real time—no setup required.
📚 꼭 들어봐야 할 인기 Go 강의
로드 중…
💡 기술을 향상시키고 싶으십니까? 이러한 과정이 도움이 될 수 있습니다. AI 모델이 귀하의 요청을 처리하는 동안 확인해 보세요.
🐹 이 Go 온라인 실행기에 대해
CodeUtility Go Executor는 브라우저에서 바로 Go 코드를 작성하고 실행할 수 있게 해 줍니다 - 설치, 설정, 로컬 환경이 전혀 필요 없습니다. 보안 샌드박스 기반으로 실제 Go 컴파일러 버전 1.19, 1.20, 1.21을 지원합니다.
이 도구는 클라우드에서 실제 Go 프로그램을 컴파일하고 실행하여, 실제와 같은 Go 환경을 제공합니다. 짧은 스니펫을 테스트하고, 패키지를 실험하며, 고루틴과 채널을 활용한 Go의 강력한 동시성 기능을 탐구할 수 있습니다.
변수, 함수, 구조체, 슬라이스, 맵, 인터페이스, 에러 처리 등 Go의 핵심 개념을 학습하고 연습하기에 안성맞춤입니다 — 로컬에 어떤 도구도 설치할 필요가 없습니다.
처음 Go를 접하든, 백엔드 로직을 시험하든, 동시성이 어떻게 동작하는지 배우든, CodeUtility Go Executor는 깔끔하고 빠른 브라우저 기반 환경에서 Go 코드를 즉시 실행하는 방법을 제공합니다.
하나의 실행기에서 다중 파일 편집기, 격리된 실행 터미널, 런타임별 라이브러리, 영구 작업 공간, 공유 및 실시간 협업을 이용하세요.
이 실행기는 어떻게 사용하나요?
런타임을 선택하고 파일을 열거나 만든 다음 코드를 작성하고 실행을 선택하세요. 출력은 터미널에 표시되며, 로그인한 사용자는 작업 공간에 파일을 보관하고 라이브러리를 설치하며 공유를 통해 협업할 수 있습니다.
- 버전을 선택하고 현재 파일을 편집하거나 작업 공간의 다른 파일을 여세요.
- 코드를 실행하고 요청 시 터미널에 입력한 다음 저장된 실행 기록을 확인하세요.
- 작업에 둘 이상의 코드 조각이 필요하면 라이브러리, 작업 공간 도구, 공유 및 채팅을 사용하세요.
💡 위에서 바로 시도해 볼 수 있는 Go 기초와 예제
1. 변수와 상수 선언
var 또는 :=로 변수를 선언합니다. 상수는 const를 사용하세요.
package main
var x int = 10
const Pi = 3.14
func main() {
name := "Alice"
isActive := true
println(x, Pi, name, isActive)
}
2. 조건문 (if / switch)
Go는 간결한 문법의 if-else와 switch 문을 지원합니다.
x := 2
if x == 1 {
println("하나")
} else if x == 2 {
println("둘")
} else {
println("기타")
}
switch x {
case 1:
println("하나")
case 2:
println("둘")
default:
println("기타")
}
3. 반복문
Go에는 for 하나만 있지만, while처럼 사용할 수도 있습니다.
for i := 0; i < 3; i++ {
println(i)
}
n := 3
for n > 0 {
println(n)
n--
}
4. 배열
배열은 크기가 고정입니다. 동적 리스트에는 슬라이스를 사용하세요.
var nums = [3]int{10, 20, 30}
println(nums[1])
5. 슬라이스 다루기
슬라이스와 내장 append, len, copy, 슬라이싱 문법을 사용하세요.
fruits := []string{"apple", "banana"}
fruits = append(fruits, "cherry")
fruits = fruits[1:] // 슬라이스
println(len(fruits))
for _, fruit := range fruits {
println(fruit)
}
6. 콘솔 입출력
fmt.Print, fmt.Scan, fmt.Println을 사용하세요.
import "fmt"
var name string
fmt.Print("이름을 입력하세요: ")
fmt.Scan(&name)
fmt.Println("안녕하세요", name)
7. 함수
함수는 func로 선언하며, 여러 값을 반환할 수 있습니다.
func greet(name string) string {
return "안녕하세요, " + name
}
message := greet("Alice")
println(message)
8. 맵
맵은 키-값 저장소입니다. make()로 선언합니다.
ages := map[string]int{"Alice": 30}
ages["Bob"] = 25
println(ages["Alice"])
9. 에러 처리
Go는 예외 대신 다중 반환값으로 에러를 처리합니다.
import "errors"
func fail() error {
return errors.New("문제가 발생했습니다")
}
err := fail()
if err != nil {
println(err.Error())
}
10. 파일 입출력
파일 읽기/쓰기는 os와 io/ioutil 패키지를 사용하세요.
import (
"fmt"
"os"
"io/ioutil"
)
ioutil.WriteFile("file.txt", []byte("안녕, 파일"), 0644)
data, _ := ioutil.ReadFile("file.txt")
fmt.Println(string(data))
11. 문자열 다루기
strings 패키지로 문자열을 처리하세요.
import "strings"
text := " Hello World "
println(strings.TrimSpace(text))
println(strings.ToUpper(text))
println(strings.ReplaceAll(text, "Hello", "Hi"))
words := strings.Split(text, " ")
fmt.Println(words)
12. 구조체와 객체
구조체를 사용해 메서드를 가진 사용자 정의 타입을 만들 수 있습니다.
type Person struct {
Name string
}
func (p Person) Greet() string {
return "안녕하세요, 저는 " + p.Name
}
p := Person{Name: "Alice"}
println(p.Greet())
13. 참조(포인터)
Go는 *와 &를 이용한 포인터를 지원합니다.
x := 10
ptr := &x
*ptr = 20
println(x) // 20