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.

사전 설치 라이브러리
🚀 206,970 총 실행 (799 이번 달)
퍼가기
출력

Go 코딩 챌린지로 연습하기

이 에디터에서 직접 문제를 풀고, 샘플 테스트 실행 및 제출, AI 코드 리뷰를 받아보세요.

모든 Go 챌린지
쉬움

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

배우는 내용 산술반환값
BeginnerLearning-pathVariables
쉬움

Distance Between Points

Compute the straight-line distance between two points.

배우는 내용 피타고라스 정리제곱근
BeginnerFunctionsLearning-pathmath
쉬움

세 수의 평균

세 개의 정수를 평균하세요.

배우는 내용 산술나눗셈
BeginnerLearning-pathVariables
쉬움

두 벡터의 내적

두 벡터를 원소별로 곱한 뒤 모두 더합니다. 모든 뉴런의 핵심 연산입니다.

배우는 내용 벡터내적
신경망ai머신 러닝
쉬움

Largest of Three

Pick the largest of three numbers without a built-in max.

배우는 내용 비교조건 결합
BeginnerConditionsLearning-path
쉬움

소수 판별

숫자가 소수인지 판별하세요.

배우는 내용 나누어떨어짐 판별반복문 최적화
BeginnerLoopsNumbersStudent-beginner
쉬움

Number Triangle

Build a triangle of increasing numbers.

배우는 내용 길어지는 행행을 넘나드는 카운터
BeginnerLearning-pathNested-loopsPatterns
쉬움

암스트롱 수

숫자가 각 자릿수를 자릿수 개수만큼 거듭제곱한 합과 같은지 확인하세요.

배우는 내용 자릿수 추출거듭제곱
BeginnerNumbersStudent-beginner
쉬움

Row Sums

Add up every row of a grid.

배우는 내용 2차원 리스트중첩 반복문
BeginnerGridsLearning-path
쉬움

Min and Max Together

Find the smallest and largest value in one pass.

배우는 내용 한 번의 순회여러 반환값
ArraysBeginnerFunctionsLearning-path
쉬움

Count Pairs With a Sum

Count pairs of positions whose values add up to a target.

배우는 내용 인덱스 쌍중복 세기 피하기
ArraysBeginnerLearning-pathNested-loops
쉬움

Hollow Square

Draw the outline of a square with * characters.

배우는 내용 테두리 판별문자열 만들기
BeginnerLearning-pathNested-loopsPatterns

🐹 이 Go 온라인 실행기에 대해

CodeUtility Go Executor는 브라우저에서 바로 Go 코드를 작성하고 실행할 수 있게 해 줍니다 - 설치, 설정, 로컬 환경이 전혀 필요 없습니다. 보안 샌드박스 기반으로 실제 Go 컴파일러 버전 1.19, 1.20, 1.21을 지원합니다.

이 도구는 클라우드에서 실제 Go 프로그램을 컴파일하고 실행하여, 실제와 같은 Go 환경을 제공합니다. 짧은 스니펫을 테스트하고, 패키지를 실험하며, 고루틴과 채널을 활용한 Go의 강력한 동시성 기능을 탐구할 수 있습니다.

변수, 함수, 구조체, 슬라이스, 맵, 인터페이스, 에러 처리 등 Go의 핵심 개념을 학습하고 연습하기에 안성맞춤입니다 - 로컬에 어떤 도구도 설치할 필요가 없습니다.

처음 Go를 접하든, 백엔드 로직을 시험하든, 동시성이 어떻게 동작하는지 배우든, CodeUtility Go Executor는 깔끔하고 빠른 브라우저 기반 환경에서 Go 코드를 즉시 실행하는 방법을 제공합니다.

단순한 코드 실행기 그 이상

하나의 실행기에서 다중 파일 편집기, 격리된 실행 터미널, 런타임별 라이브러리, 영구 작업 공간, 공유 및 실시간 협업을 이용하세요.

이 실행기는 어떻게 사용하나요?

런타임을 선택하고 파일을 열거나 만든 다음 코드를 작성하고 실행을 선택하세요. 출력은 터미널에 표시되며, 로그인한 사용자는 작업 공간에 파일을 보관하고 라이브러리를 설치하며 공유를 통해 협업할 수 있습니다.

  1. 버전을 선택하고 현재 파일을 편집하거나 작업 공간의 다른 파일을 여세요.
  2. 코드를 실행하고 요청 시 터미널에 입력한 다음 저장된 실행 기록을 확인하세요.
  3. 작업에 둘 이상의 코드 조각이 필요하면 라이브러리, 작업 공간 도구, 공유 및 채팅을 사용하세요.

💡 위에서 바로 시도해 볼 수 있는 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