연습 - Hello World
이 섹션에서는 화면에 메시지를 출력하는 첫 번째 Go 프로그램을 작성합니다. 이 연습은 프로그래밍 언어로 시작하는 일반적인 방법입니다. Go 명령줄 인터페이스(CLI)와 Go 애플리케이션을 빌드하고 실행하는 방법에 대해 자세히 알아봅니다.
CLI에서 열리도록 IDE 구성
CLI 프롬프트에서 Visual Studio Code IDE를 열고 현재 작업 영역에서 파일 편집을 시작할 수 있습니다. 이 IDE 기능은 $PATH(또는 $Path) 시스템 환경 변수를 사용하여 구현됩니다. 기능을 사용하면 CLI에서 code .
명령을 사용하여 IDE를 열고 현재 디렉터리의 파일을 편집할 수 있습니다.
일부 Visual Studio Code 설치에서는 기본적으로 $PATH 변수에 CLI에 대한 지원을 추가합니다. 설치 프로세스 중에 이 옵션이 표시될 수 있습니다. 이 설정이 이미 구성되어 있으면 모두 설정된 것입니다. 그렇지 않으면 다음 단계를 거쳐야 이 기능을 사용할 수 있습니다.
Linux 또는 macOS
$PATH 환경 변수에 Visual Studio Code CLI를 등록하려면 다음 단계를 따릅니다.
Visual Studio Code를 엽니다.
보기아래에서 명령 팔레트를 선택합니다.
검색 상자에 shell 명령을 입력합니다. 입력하면 결과 필터가 표시됩니다.
셸 명령: PATH에서 'code' 명령 설치 명령을 선택합니다.
열려있는 명령 또는 터미널 프롬프트를 닫습니다.
중요
이전 연습에서 열린 프롬프트가 있는 경우 프롬프트를 닫고 새 프롬프트를 엽니다. 새 $PATH 값을 적용하려면 이 단계를 수행해야 합니다.
Visual Studio Code를 닫습니다.
Windows
$Path 시스템 환경 변수에 Visual Studio Code CLI의 위치를 추가하려면 다음 단계를 따릅니다.
참고
환경 변수에 익숙하고 $Path 시스템 변수에 새 위치를 추가하는 방법을 알고 있는 경우 가장 적합한 방법을 사용할 수 있습니다. 다음 절차는 약간 길지만 변수가 올바르게 업데이트되었는지 확인하는 방법입니다.
Windows 제어판을 엽니다.
시스템을 선택한 다음, 고급 시스템 설정을 선택합니다.
시스템 속성 대화 상자의 고급아래에서 환경 변수를 선택합니다. 환경 변수 편집 대화 상자가 열립니다.
환경 변수 편집 대화 상자에는 다음 두 목록이 표시됩니다.
- <user-name>에 대한 사용자 변수: 특정 사용자에 대한 지역 변수 정의입니다.
- 시스템 변수: 모든 사용자에 대한 시스템 변수 정의입니다.
이 절차에서는 시스템 변수로 작업합니다.
환경 변수 대화 상자의 시스템 변수 목록 상자에서 스크롤하여 경로 변수를 찾습니다.
경로 변수를 선택하여 행을 강조 표시합니다. 편집을 선택합니다. 환경 변수 편집 대화 상자가 열립니다. 대화 상자에는 변수에 정의된 모든 폴더 위치가 나열됩니다.
환경 변수 편집 대화 상자에서 새로 만들기를 선택합니다. 목록 끝에 빈 행이 열립니다.
빈 행에 Visual Studio Code CLI 실행 파일의 위치를 입력합니다.
<user-name>
을 사용자 이름으로 바꿉니다.C:\Users\<user-name>\AppData\Local\Programs\Microsoft VS Code\bin
확인을 선택하여 각 대화 상자를 닫습니다.
시스템 속성 대화 상자와 Windows 제어판을 닫습니다.
1단계: Go 작업 영역과 IDE 열기
CLI에서 Visual Studio Code를 사용할 준비가 되었는지 확인한 후 Go 작업 영역을 열 수 있습니다.
새 명령이나 터미널 프롬프트를 엽니다.
다음 명령어를 실행하여 Go 작업 영역 디렉터리를 엽니다.
cd $GOPATH/src
cd %GOPATH%/src
다음 명령을 사용하여 작업 영역에서 Visual Studio Code를 엽니다.
code .
Visual Studio Code가 시작됩니다. 탐색기 보기는 왼쪽에 표시되고, 시작 페이지가 오른쪽에 표시됩니다.
탐색기 보기에서 Go 프로젝트의 SRC 섹션이 열려(확장) 있어야 합니다. 이 섹션은 프로젝트의 /src 폴더입니다. 현재 비어 있지만 다음 단계에서 일부 콘텐츠를 추가할 것입니다.
2단계: 새 폴더와 Go 파일 만들기
Go 프로젝트에 폴더와 파일을 추가해 보겠습니다. Visual Studio Code에서 새 항목을 만드는 방법에는 여러 가지가 있습니다.
- 도구 모음 메뉴에서의 작업:
- 파일>폴더 열기를 선택한 다음, 새 폴더를 만듭니다.
- 파일>새 파일을 선택하고 새 파일을 시작합니다.
- 도구 모음 메뉴 작업과 유사한 시작 페이지의 링크입니다.
- SRC 섹션 오른쪽에 있는 탐색기 보기의 아이콘:
- 새 폴더 아이콘을 선택합니다. 텍스트 상자에 폴더 이름을 입력하고 Enter 키를 누릅니다.
- 새 파일 아이콘을 선택합니다. 텍스트 상자에 파일 이름을 입력하고 Enter 키를 누릅니다.
Visual Studio Code에서 다음 단계를 완료합니다. 새 파일 및 폴더를 만들려면 가장 적합한 프로세스를 사용합니다.
helloworld라는 새 폴더를 만듭니다.
앱 코드에 대해 main.go라는 새 파일을 생성합니다.
탐색기>SRC 보기를 확장하여 폴더 구조 트리를 표시합니다. 다음 예제와 같이 표시됩니다.
SRC/
helloworld/
main.go
Go 확장 도구 설치
main.go가 Visual Studio Code에서 연 첫 번째 Go 파일인 경우 Go 확장을 위한 다른 도구를 설치하라는 메시지가 표시될 수 있습니다. 메시지가 나타나면 설치를 선택합니다. IDE 하단에 터미널이 열리고 프로세스의 출력이 표시됩니다. 다음 예제와 같은 출력이 표시됩니다.
도구 환경: GOPATH=C:\Projects\Go
모듈 모드에서 C:\Projects\Go\bin에 5개의 도구를 설치합니다.
github.com/uudashr/gopkgs/v2/cmd/gopkgs(C:\Projects\Go\bin\gopkgs.exe) 설치 성공
설치 프로세스 중에 Visual Studio Code에서 상태 표시줄을 확인합니다. 오른쪽 하단에 "모든 도구가 설치되지 않았습니다."와 같은 메시지가 표시되면 메시지를 선택합니다. 팝업에서 설치를 선택합니다.
설치 프로세스가 성공적으로 완료되면 터미널 출력에 다음과 같은 요약이 표시됩니다.
모든 도구가 설치되었습니다. Go를 사용할 준비가 되었습니다 :).
3단계: Go 파일에 코드 추가
이제 Go 파일에 코드를 추가해 보겠습니다.
main.go 파일에서 다음 코드를 추가합니다.
package main import "fmt" func main() { fmt.Println("Hello World!") }
파일을 저장합니다.
탭이나 공백과 같은 코드 서식에 대해서는 걱정할 필요가 없습니다. Visual Studio Code는 파일을 저장할 때마다 자동으로 코드 서식을 지정합니다.
4단계: Go 프로그램 실행
Go 프로그램은 명령이나 터미널 프롬프트에서 또는 Visual Studio Code 내에서 실행되는 터미널에서 실행할 수 있습니다.
기존 프롬프트를 사용하거나 새 프롬프트를 열 수 있습니다. 새 프롬프트를 여는 경우 디렉터리 위치를 Go 작업 영역으로 변경해야 합니다. 또한 Go 파일이 있는 폴더($GOPATH/src/helloworld)에서 프로그램을 실행해야 합니다.
Visual Studio Code 내에서 터미널 열기
독립 실행형 명령 또는 터미널 프롬프트가 아닌 Visual Studio Code 내에서 프로그램을 실행하려면 다음과 같이 하세요.
Visual Studio Code에서 터미널을 선택한 다음, 새 터미널을 선택합니다.
터미널의 오른쪽 위에 있는 드롭다운 상자에서 새 명령 프롬프트를 선택합니다.
터미널에서 다음 명령을 실행하여 디렉터리 위치를 Go 작업 영역과 Go 파일이 있는 폴더로 변경합니다.
cd $GOPATH/src/helloworld
cd %GOPATH%/src/helloworld
Go 앱 실행
Go 앱을 실행하려면 터미널 또는 프롬프트에서 다음 명령을 사용합니다.
go run main.go
다음 출력이 표시됩니다.
Hello World!
go run
명령은 두 가지 작업을 수행합니다. 앱을 컴파일하고, 컴파일이 성공하면 앱을 실행합니다.
실행 파일 빌드
프로그램 실행 파일을 생성하려면 다음 명령을 사용합니다.
go build main.go
go build
명령이 완료되면 추가 처리 없이 언제든지 실행할 수 있는 실행 가능 앱을 생성합니다. 이 명령은 실행 파일만 생성합니다. go run
명령처럼 프로그램을 실행하지 않습니다.
/src 내용 검토
이제 탐색기>SRC 보기에서 보이는 프로젝트의 모습은 다음과 같습니다.
SRC/
helloworld/
main
main.go
탐색기 보기에서 확장자가 없는 파일의 이름은 프로그램을 실행하는 데 사용할 수 있는 실행 파일입니다. (Windows에서 이 파일은 실제로 .exe 확장자를 갖습니다.) 개발할 때 go run
명령을 사용합니다. 애플리케이션의 이진 파일을 빌드하려면 go build
명령을 사용하여 이진 실행 파일을 적절한 환경에 배포합니다.
방금 Go에서 무엇을 작성했나요?
첫 번째 Go 앱을 만들고 컴파일 및 실행되었는지 확인했습니다. 코드를 한 줄씩 살펴보겠습니다.
Go 파일의 첫 번째 명령문으로 시작하겠습니다.
package main
package main
문은 만들고 있는 앱이 실행 가능한 프로그램(실행할 수 있는 파일)임을 Go에 알리는 방법입니다. "Hello World!" 앱은 main
패키지의 구성 요소입니다. 패키지란 일련의 소스 코드 파일을 가리킵니다. 모든 실행 파일에는 이 첫 번째 줄이 있습니다. 프로젝트나 파일이 다른 이름을 갖는 경우에도 마찬가지입니다.
다음 모듈에서는 이러한 개념에 대해 자세히 살펴보겠습니다. 지금은 모든 실행 프로그램이 main
패키지의 일부여야 한다는 것을 알아야 합니다.
챌린지: 패키지 이름 변경
main
패키지의 중요도를 확인할 수 있나요?
- Go 파일에서 첫 번째 줄의 패키지 이름을 변경합니다.
- 파일을 저장하고 터미널에서 프로그램을 다시 실행합니다.
어떻게 되나요? "Hello World!"가 표시되나요? 이진 실행 파일이 생성되었습니까?
답 표시
"Hello World!" 이(가) 표시되지 않습니다. 이진 실행 파일이 생성되지 않습니다. 'go run: 기본이 아닌 패키지는 실행할 수 없음' 오류가 표시될 것입니다. 그 이유는 모든 실행 프로그램은 'main' 패키지의 일부여야 합니다.
Go 파일의 다음 줄은 다음과 같습니다.
import "fmt"
import
문은 다른 패키지의 다른 코드에 대한 프로그램 액세스를 제공합니다. 이 경우 fmt는 표준 라이브러리 패키지입니다. 공식 Go 설명서 사이트에서 fmt 패키지에 대해 읽어볼 수 있습니다.
이 import
문은 프로그램의 뒷부분에서 이 패키지의 함수를 사용하여 화면에 메시지를 출력할 것이기 때문에 필요합니다. 프로그램에는 import
문을 원하는 만큼 또는 필요한 만큼 포함할 수 있습니다. 단, Go는 이러한 측면에서 관용적입니다. 패키지를 가져오지만 패키지에서 해당 함수를 사용하지 않으면 앱이 컴파일되지 않습니다. Visual Studio Code의 뛰어난 기능은 파일을 저장할 때 프로그램에서 사용하지 않는 가져오기를 자동으로 제거한다는 것입니다.
파일을 저장했을 때 Visual Studio Code가 이 import를 제거했나요? Visual Studio Code를 사용하지 않고 파일을 편집한 다음 앱을 실행해 보세요. 이번에는 어떤 출력이 표시되나요?
챌린지: 다른 import 추가
사용하지 않는 import에 대해 배운 내용을 확인할 수 있나요?
- Go 파일을 원래 코드로 복원합니다.
math
와io
같은 다른 import 문을 추가합니다.- 파일을 저장하고 터미널에서 프로그램을 다시 실행합니다.
어떻게 되나요? Visual Studio Code가 사용하지 않는 import를 제거하나요? 그렇다면 언제 제거되나요?
- Go 파일을 다시 편집하지만 Visual Studio Code를 사용하지 않습니다.
- 파일을 저장하고 새 프롬프트에서 프로그램을 실행합니다.
어떻게 되나요? 이번에는 어떤 출력이 표시되나요?
답 표시
IDE에서 Go 파일을 편집하는 경우에는 파일을 저장할 때 Visual Studio Code에서 미사용 패키지를 검색하고 관련 'import' 문을 제거합니다. Visual Studio Code 외부에서 Go 파일을 편집하면 코드가 실패하게 됩니다. `# command-line-arguments .\main.go:5:2: imported and not used: "math"` 같은 오류가 표시될 것입니다.
Go 파일의 코드 블록을 살펴보겠습니다.
func main() {
fmt.Println("Hello World!")
}
func
문은 함수를 선언하는 데 사용되는 예약어입니다. 이 첫 번째 함수는 프로그램의 시작점이기 때문에 "main"이라고 합니다. package main
(첫 번째 줄에서 정의한 함수)에 하나의 main()
함수만 있을 수 있습니다. main()
함수에서 fmt
패키지의 Println
함수를 호출했습니다. 화면에서 보고 싶은 문자 메시지를 보냈습니다.
함수에 대한 자세한 내용은 다음 모듈에서 살펴보겠습니다.