본문 바로가기
Golang

[Golang]언어 기초 다지기

by 다다면체 2025. 2. 4.
728x90
반응형
반응형

Go 언어는 간결한 문법과 강력한 동시성 지원으로 개발자들에게 많은 사랑을 받고 있습니다. 특히 백엔드 개발, 시스템 프로그래밍, DevOps 분야에서 두각을 나타내고 있죠. 이번 글에서는 Go 언어의 핵심 문법을 정리하고, 실습 예제를 통해 Go 언어의 매력을 직접 느껴보실 수 있도록 준비했습니다.

1. Go 언어, 왜 특별할까? ✨

Go는 구글에서 개발한 오픈소스 프로그래밍 언어로, 컴파일 언어이면서도 높은 생산성을 제공합니다. Go 언어의 주요 특징은 다음과 같습니다.

✅ 간결하고 읽기 쉬운 문법

Go 언어는 C와 유사한 문법을 가지고 있지만, 더욱 간결하고 현대적인 디자인을 채택하여 코드 작성과 이해가 용이합니다.

✅ 강력한 동시성(concurrency) 지원

Go 언어는 고루틴(goroutine)과 채널(channel)을 통해 효율적인 동시성 프로그래밍을 지원합니다. 이를 통해 I/O 작업이나 병렬 처리를 효과적으로 수행할 수 있습니다.

✅ 빠른 컴파일과 실행 속도

Go 언어는 컴파일 속도가 매우 빠르며, 실행 속도 또한 C/C++에 버금가는 성능을 제공합니다.

✅ Garbage Collection(GC) 지원

Go 언어는 자동 메모리 관리 기능인 Garbage Collection을 제공하여 개발자가 메모리 관리에 신경 쓰지 않고 개발에 집중할 수 있도록 도와줍니다.

✅ 다양한 플랫폼에서 실행 가능

Go 언어는 Windows, macOS, Linux 등 다양한 플랫폼에서 실행 가능하며, 크로스 플랫폼 개발에 용이합니다.

2. Go 개발 환경 구축 ️

Go 설치

Go 공식 웹사이트에서 OS에 맞는 설치 파일을 다운로드하여 설치합니다.

Go 다운로드

설치 후 터미널에서 다음 명령어를 실행하여 설치가 정상적으로 되었는지 확인합니다.

go version

Go 개발 도구

Go 언어로 개발할 때 사용하기 좋은 에디터는 다음과 같습니다.

  • VS Code + Go 플러그인
  • GoLand (JetBrains에서 제공하는 IDE)
  • Vim/Neovim (Go 플러그인 추가 가능)

3. Go 핵심 문법 파헤치기

3.1. 변수와 상수

Go에서 변수를 선언하는 방법은 다양합니다.

package main

import "fmt"

func main() {
    var name string = "Go 언어" // 변수 선언 및 초기화
    age := 10 // 타입 자동 추론
    const PI float64 = 3.14 // 상수 선언

    fmt.Println("이름:", name)
    fmt.Println("나이:", age)
    fmt.Println("파이 값:", PI)
}

3.2. 데이터 타입

Go는 정적 타입 언어이며, 주요 데이터 타입은 다음과 같습니다.

타입설명예제 값
int 정수형 42
float64 실수형 3.14
string 문자열 "Hello"
bool 참/거짓 true, false
Sheets로 내보내기

3.3. 제어문 (조건문, 반복문)

조건문 (if, switch)

func main() {
    num := 10

    if num > 0 {
        fmt.Println("양수입니다.")
    } else {
        fmt.Println("음수입니다.")
    }

    switch num {
    case 10:
        fmt.Println("숫자는 10입니다.")
    default:
        fmt.Println("다른 숫자입니다.")
    }
}

반복문 (for)

Go는 for 루프 하나만 제공하지만, 다양한 형태로 사용할 수 있습니다.

func main() {
    for i := 0; i < 5; i++ {
        fmt.Println("반복:", i)
    }
}

4. 함수와 패키지

4.1. 함수 정의 및 호출

func add(a int, b int) int {
    return a + b
}

func main() {
    sum := add(5, 3)
    fmt.Println("합계:", sum)
}

4.2. 여러 개의 값 반환

func swap(a, b string) (string, string) {
    return b, a
}

func main() {
    x, y := swap("hello", "world")
    fmt.Println(x, y) // world hello
}

5. 실습 예제

5.1. Hello, World! 프로그램

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

5.2. 간단한 계산기

package main

import "fmt"

func main() {
    var a, b int
    fmt.Print("첫 번째 숫자 입력: ")
    fmt.Scanln(&a)

    fmt.Print("두 번째 숫자 입력: ")
    fmt.Scanln(&b)

    fmt.Println("덧셈 결과:", a+b)
    fmt.Println("뺄셈 결과:", a-b)
    fmt.Println("곱셈 결과:", a*b)
    fmt.Println("나눗셈 결과:", a/b)
}

5.3. 반복문 활용 (1부터 10까지 합)

func main() {
    sum := 0
    for i := 1; i <= 10; i++ {
        sum += i
    }
    fmt.Println("1부터 10까지의 합:", sum)
}

6. 마무리

이번 글에서는 Go 언어의 기본 문법을 학습했습니다. Go는 배우기 쉽고 강력한 기능을 제공하는 언어입니다. 앞으로 더 많은 실습과 프로젝트를 통해 Go 언어에 익숙해지세요!

다음 학습 주제

  • Go 고급 문법 (구조체, 인터페이스, 포인터 등)
  • Go 동시성 프로그래밍 (고루틴, 채널)
  • Go 웹 개발 (net/http 패키지)
728x90
반응형