본문 바로가기

전체 글333

Go - Go with TDD 참조: https://quii.gitbook.io/learn-go-with-tests/ - 개요 Go 는 자체적으로 testing 모듈을 내포하고 있기 때문에 TDD 를 이용하여 배우기가 수월하다. 참조의 URL 에서는 TDD 를 이용하여 Go 언어의 문법과 유용한 기능들을 다루고 있다. Go 의 공식문서인 A Tour of Go (https://go.dev/tour/list) 를 보고 참조를 학습해도 되지만 다른 프로그래밍 언어에 대한 개념이 있다면 오히려 더 자세한 설명을 해주기 때문에 처음부터 봐도 괜찮다고 생각한다. Go 에 대한 기본적인 모듈, package 개념과 기본적인 실행은 할 수 있다고 가정한다. - TDD cycle 해당 Site 에서는 TDD 의 프로세스 주기인 RED, GREEN,.. 2021. 12. 4.
Go - Go 와 Gin 을 활용한 RESTful API 개발 참조: https://go.dev/doc/tutorial/web-service-gin - 개요 이번 튜토리얼에서는 Go와 Gin Web Framework(Gin) 을 활용하여 RESTful 웹 서비스 API 의 기본작성법을 알아보도록 한다. Gin 은 웹서비스를 포함한 웹 어플리케이션을 구축하는데 있어 연관된 많은 작업들을 간소화시킨다. 이번 튜토리얼에서는 Gin을 이용해서 요청을 route 하고, 요청 세부사항을 추출하고 응답을 위해 JSON 을 마샬링한다. - API endpoints 설계 빈티지 레코딩을 파는 상점에 접근하는 API 를 제공해야 한다고 가정해보자. 이를 위해 사용자가 앨범을 가져오거나 추가할 수 있는 endpoint 를 제공하도록 한다. API 를 개발할때에는 일반적으로 endpoi.. 2021. 11. 28.
Go - compile 과 install 참조: https://go.dev/doc/tutorial/compile-install - 개요 이번에는 go 의 새로운 명령어 2 가지를 배워보도록 한다. go run 명령어는 프로그램을 자주 변경할 때 프로그램을 compile 하고 실행 시키는데 유용한 단축 명령어(shortcut)지만 실행 가능한 binary 를 생성하지는 않는다. go build 명령어는 package 를 compile 하지만 결과물을 설치하지는 않는다. go install 은 package 를 compile 하고 설치한다. - build hello directory 에서 go build 명령어를 실행하여 코드를 compile 하고 실행가능한 파일을 생성한다. go build ls go.mod hello hello.go ./hell.. 2021. 11. 28.
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.