2023.04.30 - [CS/Go] - [프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world
대부분의 프로그램은 입력을 통해 출력을 생성하며
프로그램에서의 입력 데이터는 파일, 네트워크, 키보드 입력, 커맨드라인 인수 등으로 받을 수 있습니다.
이번 포스팅에서는 프로그램에서 받을 수 있는 입력 중 하나인
커맨드 라인 인수에 대해 다뤄보겠습니다.
커맨드라인 인수
한글로 작성하다 보니
커맨드라인 인수라는 말이 다소 와닿지 않는 것 같습니다.
영어로 하면 Command line arguments 인데
명령어에 입력된 argument로 이해하시면 될 것 같습니다.
아래 위키를 참고하시면 이해하시는데 도움이 될 것 같아요.
https://en.wikipedia.org/wiki/Command-line_interface#Arguments
Go 언어에서 커맨드라인 인수는
os 패키지에 포함되어 있는 Args 변수로 사용이 가능합니다.
따라서 os 패키지 밖에서는
os.Args로 사용됩니다.
os.Args
os.Args 변수는 문자열의 슬라이스입니다.
간단히 설명하면 C에서의 고정 크기의 배열을
생각하시면 될 것 같습니다.
슬라이스는 Go에서 기본 개념으로 여겨지며 자세한 내용은 추후 포스팅에 작성하도록 하겠습니다.
os.Args의 첫 번째 원소는 명령어 이름을 의미합니다.
아래 간단한 예시를 보고 넘어가겠습니다.
go build cla.go
./cla 1 2 3 4
위 예시처럼 명령어를 입력한다고 하면
os.Args[0] 는 ./cla 가 됩니다.
그리고 다음 원소인 os.Args[1] 은 1을 의미하게 될 것입니다.
대충 감이 오시나요?
잘 와닿지 않더라도 다음 예시를 보면
os.Args가 어떤 값을 가지고 있는지, 어떻게 사용되는지를 이해하는데
더 도움이 될 것입니다.
그럼, os.Args를 이용하여
커맨드라인 인수 전체를 출력하는 프로그램을
만들어 보겠습니다.
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Args)
}
빌드하고 실행한 결과를 확인합니다.
결과를 확인하기 전에
어떤 출력이 나오게 될지 한번 예상해 보시기 바랍니다.
우선 빌드합니다.
go build args_echo1.go
./args_echo1 1 2 3 4
출력 결과는 다음과 같습니다.
./args_echo1 1 2 3 4
[./args_echo1 1 2 3 4]
아직 슬라이스 사용에 대한 내용을 다루지 않았기에
이번 포스팅에서는 os.Args에 어떤 데이터가 담기는지
확인하는 예제를 끝으로 마무리하려고 합니다.
다음 포스팅으로 또 찾아뵙겠습니다.
감사합니다.
wh.
'CS > Go' 카테고리의 다른 글
[Go programming] Requesting http get method to an url from an argument (0) | 2023.06.24 |
---|---|
[Go언어연습] 중복 된 내용이 있는 파일명 리스트를 출력하는 프로그램 (0) | 2023.06.06 |
[Go언어] 중복 줄 찾기 프로그램, 입/출력에 활용하는 bufio 패키지 (0) | 2023.05.18 |
[Go언어기초] go 언어 반복문, for 문 사용하기 (0) | 2023.05.07 |
[프로그래밍 언어] Go 언어 시작하기, 환경설정 - Hello world (0) | 2023.04.30 |