[go] 명령 실행 외부 리소스

안녕하세요! 이번에는 Go로 명령을 실행하고 외부 리소스를 다루는 방법에 대해 알아보겠습니다. Go는 명령 실행, 파일 시스템 작업, HTTP 호출 등 다양한 외부 리소스와 상호작용할 수 있는 강력한 기능을 제공합니다.

1. 명령 실행

Go에서는 os/exec 패키지를 사용하여 명령을 실행할 수 있습니다. 아래는 간단한 예제 코드입니다.

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("ls", "-l")
    output, err := cmd.Output()
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(string(output))
}

위 예제는 ls -l 명령을 실행하고 그 결과를 출력하는 간단한 프로그램입니다.

2. 파일 시스템 작업

Go는 파일과 디렉토리를 다루는데 유용한 많은 함수들을 제공합니다. 예를 들어, os 패키지의 Open, Read, Write, Close 함수를 사용하여 파일을 열고 읽고 쓸 수 있습니다.

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("example.txt")
    if err != nil {
        fmt.Println(err)
    }
    defer file.Close()

    // 파일 읽기
    data := make([]byte, 100)
    count, err := file.Read(data)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(string(data[:count]))
}

위 예제는 example.txt 파일을 열고 내용을 읽어오는 간단한 프로그램입니다.

3. HTTP 호출

Go는 표준 라이브러리로 HTTP 호출을 간단하게 수행할 수 있는 기능을 제공합니다. net/http 패키지를 사용하여 HTTP GET 또는 POST 요청을 보낼 수 있습니다.

package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {
    resp, err := http.Get("https://example.com")
    if err != nil {
        fmt.Println(err)
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(string(body))
}

위 예제는 https://example.com 에 HTTP GET 요청을 보내고 응답을 출력하는 간단한 프로그램입니다.

이렇게 Go는 명령 실행 및 다양한 외부 리소스와의 상호작용을 지원하여 다양한 응용프로그램을 구현할 수 있습니다.

이상으로 Go에서 명령 실행과 외부 리소스를 다루는 방법에 대해 살펴보았습니다. 감사합니다!