먼저 mkdir -p ~/projects/box 명령어로 디렉토리를 만들고 cd로 들어가자
그리고 go mod init example/box 명령어로 프로젝트를 초기화하고 go 모듈을 생성한다.
이제부터 main.goo 파일을 작성해보자
1. 가장 처음에 해야할 것은 package main을 선언해야 한다.
2. 실습에 필요한 fmt패키지를 import 한다.
3. 함수 선언은 func 키워드로 한다. 이를 이용해서 main함수를 선언한다.
4. go 파일을 실행할 때는 go run [파일명] 명령어를 입력하면 된다.
다음으로 외부 패키지를 포함한 코드 실행 실습을 해보자
1. package main을 선언을 하고 fmt와 외부패키지를 선언한다.
2. 현재 rsc.io/quote라는 패키지가 없기 때문에 import error가 발생한다.
이를 해결하기 위해 패키지 의존성 관리를 하는 명령어인 go mod tidy를 입력한다.
3. 이제 go run . 명령어로 다시 실행해보면 quote 패키지가 가지고 있는 Hello() 함수의 내용이 잘 출력된다.
이번에는 동시성 프로그램을 작성해보자
1. 우선 패키지로 fmt와 time를 선언했다.
2. 메인함수를 보면 defer 키워드가 있다. 이는 함수가 종료되기 전까지 특정 구문의 실행을 지연시켰다가, 함수가 종료되기 직전에 지연시켰던 구문을 수행한다
3. 메인함수에 go printchar함수가 있는데
함수 앞에 go 키워드를 지정하면 go 루틴에서 스레드가 생성된다.
printchar 함수는 for문을 돌며 2초에 한번씩 "."을 출력한다.
4. 메인함수에 make함수가 있다.
make는 go루틴을 통해 만들어진 스레드 간의 통신을 할 수 있는 채널을 만든다. chan string은 string 형태의 채널이다.
그리고 readword라는 함수를 실행했다.
readword 함수는 Scanf를 통해 단어를 입력받고 채널로 그 값을 전달한다.
5. 메인함수에 select 키워드가 있다.
이는 switch와 같은 역할을 하는데 한가지 차이점은 ch이라는 채널 변수를 받을 수 있다.
select를 통해 메시지를 받으면 바로 출력하도록 하였다.
6. go run . 을 해보면 2초마다 . 을 출력하고 단어를 입력하면 바로 그 값이 출력되고 종료되는 걸 볼 수 있다.
+) 전체 코드는 아래와 같다.
주요 go 명령
go build : go 바이너리를 빌드
go run : 코드를 빌드하고 실행
go mod init : 새로운 모듈 생성
go mod tidy : 필요한 의존성 설치 및 필요 없는 의존성 삭제
'리눅스 > Part1. Ch03. 나만의 컨테이너 환경 만들기' 카테고리의 다른 글
07. (실습) 나만의 컨테이너 생성 - cgroup (0) | 2022.06.27 |
---|---|
05. (실습) 나만의 컨테이너 생성 - 소개 (0) | 2022.06.27 |
03. go 개발 환경 구성 추가 (0) | 2022.06.27 |
02. go 기반 프로젝트 소개 (0) | 2022.06.27 |
01. go 언어 소개 (0) | 2022.06.27 |