Golang CLI 컴파일러 온라인
브라우저에서 바로 Go 코드를 실행하고 테스트하세요. 설정 필요 없이, CLI 환경에서 학습과 디버깅을 간편하게!
✨ 많은 사람들이 선택한 Go 강의
Loading...
🐹 이 Go 온라인 실행기에 대해
CodeUtility Go Executor는 브라우저에서 바로 Go 코드를 작성하고 실행할 수 있게 해 줍니다 - 설치, 설정, 로컬 환경이 전혀 필요 없습니다. 보안 샌드박스 기반으로 실제 Go 컴파일러 버전 1.19, 1.20, 1.21을 지원합니다.
이 도구는 클라우드에서 실제 Go 프로그램을 컴파일하고 실행하여, 실제와 같은 Go 환경을 제공합니다. 짧은 스니펫을 테스트하고, 패키지를 실험하며, 고루틴과 채널을 활용한 Go의 강력한 동시성 기능을 탐구할 수 있습니다.
변수, 함수, 구조체, 슬라이스, 맵, 인터페이스, 에러 처리 등 Go의 핵심 개념을 학습하고 연습하기에 안성맞춤입니다 — 로컬에 어떤 도구도 설치할 필요가 없습니다.
처음 Go를 접하든, 백엔드 로직을 시험하든, 동시성이 어떻게 동작하는지 배우든, CodeUtility Go Executor는 깔끔하고 빠른 브라우저 기반 환경에서 Go 코드를 즉시 실행하는 방법을 제공합니다.
⚙️ 이 도구 사용 방법
- 1. 에디터 상단의 드롭다운에서 Go 버전(1.19, 1.20, 또는 1.21)을 선택하세요.
- 2. 에디터 영역에 Go 코드를 작성하거나 붙여넣으세요.
- 3. 실행을 클릭하면 프로그램을 컴파일하고 실행합니다 — 출력은 아래 콘솔에 표시됩니다.
- 4. 실행 중에는 중지 버튼이 표시됩니다 — 클릭하면 실행을 일찍 멈출 수 있습니다.
- 5. 코드 고치기로 사소한 포맷팅이나 문법 문제를 자동으로 수정하세요.
- 6. 수정 후에는 수정 내역 버튼이 나타납니다 — 클릭하여 최근 수정 사항을 확인하세요.
- 7. 업로드 버튼으로 로컬 파일에서 코드를 가져오거나, 다운로드 버튼으로 현재 코드를 저장하세요.
- 8. 각 실행은 최대 20초 동안 동작하며, 이후 자동으로 종료됩니다.
🧠 팁: 이 환경은 브라우저에서 실제 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