[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에서 명령 실행과 외부 리소스를 다루는 방법에 대해 살펴보았습니다. 감사합니다!