본문 바로가기

Go46

Go - test 참조: https://go.dev/doc/tutorial/add-a-test - 개요 이번에는 Hello 함수에 대한 test 를 추가해보도록 한다. - test Go 는 test 를 쉽게할 수 있도록 unit testing 를 위한 모듈이 내장되어 있다. 명명규칙, Go. 의 testing package 그리고 go test 명령어를 통해 test 를 빠르게 작성하고 실행할 수 있다. greetings directory 에서 greetings_test.go 파일을 생성한다. 파일 이름을 _test.go 와 같이 지정하면 go test 명령어를 수행할 때 Go 가 해당 파일에 test 함수들이 포함되어있다고 인식한다. greetings.go 에 아래 내용을 복사한다. package greetings im.. 2021. 11. 28.
Go - multiple input 과 return 참조: https://go.dev/doc/tutorial/greetings-multiple-people - 개요 이번에는 여러 개의 이름을 함수로 넘겨서 각 이름에 대한 인삿말을 반환하도록 코드를 수정해보자. - slice와 map 지금은 학습을 목적으로 코드를 작성하고 있으므로 Hello 함수의 인자와 반환형을 곧바로 변경해도 큰일이 일어나지 않는다. 그래도 좀 더 그럴싸한 상황을 가정해서 이미 greetings 모듈이 배포되어 사용하고 있다고 가정해보자. 이럴 때 Hello 함수의 인자와 반환형을 변경해서 배포해버리면 기존 사용자들의 프로그램이 제대로 동작하지 않을 수 있다. 이런 상황에서는 여러 인삿말을 반환하는 신규 함수를 추가해야 한다. 이렇게 하면 기존 함수의 호환성을 그대로 유지할 수 있다... 2021. 11. 28.
Go - random 과 slice 참조: https://go.dev/doc/tutorial/random-greeting - 개요 이번에는 하나의 인삿말 대신 미리 정의된 몇 가지 인삿말중 랜덤으로 하나를 반환해본다. - slice 여러개의 정보를 저장하기 위해서 Go 의 slice 를 사용해본다. slice 는 array 와 비슷한데 요소를 추가하거나 삭제 함에 따라 크기가 동적으로 변한다는점이 다르다. slice 는 Go 에서 매우 유용한 타입이니 숙지해보도록 하자. 3 개의 인삿말 형식을 갖고 있는 slice 를 추가하고 그중 하나를 random 하게 반환한다. greetings.go 코드를 아래와 같이 수정해보자. package greetings import ( "errors" "fmt" "math/rand" "time" ) // .. 2021. 11. 28.
Go - Return 과 handle an error 참조: https://go.dev/doc/tutorial/handle-errors 개요 error 를 다루는것은 견고한 코드를 작성하는데 있어 필수요소라고 할 수 있다. 이번에는 greetings 모듈에서 error 를 반환해보고 caller 에서 이를 다루어보도록 한다. - error 반환 인사할 사람이 없다면 답장을 보내도 의미가 없다. 호출자가 이름을 빈값으로 호출했다면 caller 에게 error 를 반환해보도록 하자. greetings.go 파일을 아래와 같이 수정한다. package greetings import ( "errors" "fmt" ) // Hello returns a greeting for the named person. func Hello(name string) (string, .. 2021. 11. 28.
Go - called module 과 caller module 참조: https://go.dev/doc/tutorial/call-module-code 개요 이번에는 2 개의 Go 모듈을 만들어 본다. 처음에는 다른 라이브러리나 어플리케이션에서 import 되도록 하는 모듈을 만들고, 그 다음에 이를 호출하는 호출 어플리케이션 모듈을 만든다. 호출되는 모듈 만들기 Go 코드는 package 로 그룹화되고, package 는 module 로 그룹화 된다. 모듈은 코드를 실행하는데 필요한 종속성과 Go 버전, 해당 코드가 필요한 모듈의 집합을 정의한다. 일반적으로 모듈에 기능을 추가하거나 개선하면 모듈의 새로운 버전을 배포한다. 만약 내가 작성한 모듈의 기능을 호출한 사용자가 있다면 해당 사용자는 갱신된 package 를 import 하고 운영에 배포하기 전에 새로운 버.. 2021. 11. 28.
Go - hello world 와 external package 참조: Get started with go - https://go.dev/doc/tutorial/getting-started - 기본환경 Go 를 설치했다고 가정하고 글을 작성한다. 설치는 https://go.dev/doc/install 에서 진행한다. IDE 는 GoLand 를 이용하였다. - Hello world 내가 작성한 코드가 다른 모듈에 포함된 package 들을 import 해야할 때, 내가 작성한 코드의 자체 모듈을 통해 의존성 관리를 한다. 자체 모듈은 go.mod 파일에서 정의하며 import 해야하는 package 들을 제공하는 모듈을 추적한다. go.mod 파일을 생성하여 내 코드가 의존성을 추적할 수 있게 하려면 go mod init 명령어를 수행해야 하는데, 내 코드가 위치할 모.. 2021. 11. 28.