gRPC 파일 생성을 위해 컴파일을 할 때 생기는 에러 중 "program not found or is not executable" 에러에 대한 해결법이다. protoc --go_out=. --go_opt=paths=source_relative \ --go-grpc_out=. --go-grpc_opt=paths=source_relative \ helloworld/helloworld.proto 위 코드는 gRPC 공식 문서의 컴파일 커맨드인데 입력 시 아래와 같은 에러가 생기는 경우가 있다. protoc-gen-go: program not found or is not executable Please specify a program using absolute path or make sure the progr..
Go 개발자 로드맵의 첫 번째 챕터, Go CLI 프로그램을 만드는 방법입니다. CLI란 Command Line Interface의 약자로, 터미널을 통해 컴퓨터와 상호작용하는 방식을 말합니다.Go CLI 프로그램을 만드는 여러 패키지가 있습니다.cobragcligo-flagskingpingoptionsGo의 내장 패키지인 flags가 있지만 cobra를 사용하면 더욱 빠르고 쉽게 CLI 프로그램을 개발할 수 있습니다.설치다음과 같이 go get을 사용하여 cobra를 설치할 수 있습니다. -u는 최신 버전을 설치하는 플래그입니다.go get -u github.com/spf13/cobra또한 다음 명령어로 Code Generator를 설치하여 cobra를 쉽게 적용할 수 있습니다.go get -u git..
1. 구조체 구조체는 필드들의 집합이며, Go에서 Custom Data Type을 표현하는데 사용된다. Go는 객체 지향 프로그래밍(Object Oriented Programming, OOP) 언어가 가지는 클래스, 객체, 상속이 없지만, 구조체로 클래스와 같은 Custom Type을 정의할 수 있다. 하지만, OOP의 클래스는 기본 메서드를 갖지만 Go의 구조체는 기본 메서드를 가지지 않는다. 2. 사용법 예를 들어, 사람은 이름과 나이를 가질 수 있다. 여기서 사람이 구조체가 되고 이름, 나이는 필드가 되는 것이다. 그리고 Go에서 구조체의 이름과 필드 이름의 첫 글자를 대문자로 하면 다른 패키지에서도 사용할 수 있다. // 구조체 type person struct { // 필드 name string..
개요 이 글은 Building Go Web Application and Microservices Using Gin이라는 제목의 글을 번역한 글로 어색한 번역과 오역이 존재할 수 있습니다. 원문: https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin 이 튜토리얼에서는, Gin을 사용한 Go 언어로 일반적인 Web Applications과 Microservices를 만드는 법을 배울 것이다. Gin은 일반적으로 이러한 앱을 만들기 위해 사용되는 Boilerplate Code를 줄이는 프레임워크이다. 또한 재사용 가능한 코드를 만드는 데 도움이 된다. 💡 Microservice - h..
Problem (문제) The factorial of the integer n, written n!, is defined as: 정수 n의 팩토리얼, n!은 다음과 같다. n!=n*(n-1)*(n-2)*···*3*2*1 Calculate and print the factorial of a given integer. 주어진 정수의 팩토리얼을 계산하고 출력하세요. For example, if n=30, we calculate 30*29*28*···*2*1 and get 265252859812191058636308480000000. 예를 들어, n=30일 때, 30*29*28*···*2*1을 계산하면 265252859812191058636308480000000입니다. Function Description (함..
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다.(0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제 입력1 1 2 예제 출력1 3 풀이 package main import "fmt" func main() { var a, b int fmt.Scan(&a, &b) fmt.Print(a+b) } 해설 Go 언어의 fmt 패키지를 사용하여 입력과 출력을 하였다. fmt 패키지의 Scan 함수에 입력받을 변수 a와 b를 포인터 형태로 넣어주어야 한다. 그리고 Print 함수를 사용하여 a와 b를 더한 값을 출력해주었다.
문제 아래 예제와 같이 개를 출력하시오. 입력 없음. 출력 개를 출력한다. 예제 입력1 예제 출력1 |\_/| |q p| /} ( 0 )""" \ |"^"` | ||_/=\\__| 풀이 package main import "fmt" func main() { // 한 줄 fmt.Print("|\\_/|\n|q p| /}\n( 0 )\"\"\"\\\n|\"^\"` |\n||_/=\\\\__|") // 여러 줄 fmt.Println("|\\_/|") fmt.Println("|q p| /}") fmt.Println("( 0 )\"\"\"\\") fmt.Println("|\"^\"` |") fmt.Print("||_/=\\\\__|") } 해설 Go 언어의 fmt 패키지를 사용하여 출력하였다. 출력되지 않는 특수..
문제 아래 예제와 같이 고양이를 출력하시오. 입력 없음. 출력 고양이를 출력한다. 예제 입력1 예제 출력1 \ / \ ) ( ') ( / ) \(__)| 풀이 package main import "fmt" func main() { // 한 줄 fmt.Print("\\ /\\\n ) ( ')\n( / )\n \\(__)|") // 여러 줄 fmt.Println("\\ /\\") fmt.Println(" ) ( ')") fmt.Println("( / )") fmt.Print(" \\(__)|") } 해설 Go 언어의 fmt 패키지를 사용하여 출력하였다. 출력되지 않는 특수 문자에 유의하여 작성해야 한다.