hELLO.

    Go: 개발 환경과 도구, 크로스 컴파일

    환경변수 Go 를 사용하면서 알아두어야 할 일부 환경변수가 있는데, 알아보도록 하자. 콘솔에 go env 를 입력하면 아래와 같이 Go 에서 사용하는 환경변수 목록을 확인할 수 있다. 다 살펴볼 필요는 없지만, GOROOT, GOPATH, GOBIN, GOARCH, GOOS 정도는 알아두면 개발할 때 도움이 된다. 게다가 GOOS, GOAHCH 는 크로스 컴파일(Cross-Compile)을 할 때도 지정하는 환경변수이기도 하다. $ go env set GO111MODULE= set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\user\AppData\Local\go-build set GOENV=C:\Users\user\AppData\Roaming\go\env set GO..

    프로그래밍 언어를 선택하고 공부하기 위한 팁, ― 개발자가 되고 싶은 당신에게

    개발을 배우는 목적은 무엇인가? 당신은 왜 개발을 해보고 싶은가? 해보고 싶은 개발 분야는 무엇인가? 프로그래밍 언어를 선택하기에 앞서 자신이 무엇을 위해 개발을 배우려고하는지, 무엇을 하고 싶은지를 인지하는 것은 아주 중요하다고 할 수 있다. 그 이유는 주요 개발 분야마다 사용하는 메이저 프로그래밍 언어가 어느정도 다르기 때문이다. 아래의 표를 참고하여 주요 개발 업계에서 어떤 언어를 쓰는지 알아보자. 게임 C++/C# 웹 Javascript/Java/Kotlin/PHP 인공지능/데이터 분석 Python/R 앱 Java/Kotlin/Swift 블록체인 Go/C++/Solidity/Javascript 사무 자동화 Python 4차 산업혁명이 대두되면서 특히 인공지능/데이터 분석에 대한 관심이 급증하고 대..

    Go: path vs path/filepath

    path vs path/filepath Go 에서 경로를 핸들링 할 수 있는 패키지에는 path, path/filepath 패키지가 있다. 이 둘은 쓰임새가 달라서 조심씨 사용하여야 하는데, 둘이 경로라는 대상을 다루지만, 실은 핸들링하는 대상이 다르다. 결론부터 말하자면 path 는 HTTP, FTP 경로 등 논리적인 경로를 핸들링한다, 즉 슬래쉬로 구분되는 경로에 대해서 다루며, 반면 path/filepath 패키지는 이름 그대로 실질적인 파일 경로를 취급하게 된다. Windows 같은 경우에는 C:\ 등으로 파일 경로가 시작되기도 하기 때문에 각별히 주의해야 할 필요가 있다. data/hello.txt 파일에는 Hello, Go! 라는 텍스트가 입력되어 있다고 가정하고, 아래의 코드를 살펴보자. 파..

    Go: flag 패키지로 CLI 도구 만들기

    flag Go 의 flag 패키지는 CLI(Command Line Interface) 어플리케이션을 작성하기 위해 사용하는 내장 패키지이다. 주로 서브 커맨드가 없는 싱글 커맨드에 대해 옵션을 지정하여 사용할 때 사용한다. 가장 간단한 사용법은 아래와 같다. 예를 들어 사용자에게 --port, --p 옵션을 통해 포트를 지정할 수 있는 옵션을 지정하여 값을 받는다고 생각해보자. package main import ( "flag" ) func main() { var port int flag.IntVar(&port, "port", 3000, "") flag.IntVar(&port, "p", 3000, "") flag.Parse() } 어플리케이션의 코드가 main.go 라고 가정해보면 다음과 같이 사용할 수..

    Go: Go 답게 코드 작성하기

    Go 언어는 C언어를 일부 계승하였기 때문에 다른 언어와는 사용법이 상당히 달라서 자바와 같이 전통적인 객체지향적 프로그래밍에 익숙한 경우라면 적응하기 어려울 수도 있다. 특히 Go 에는 예외가 없고 에러로만 처리하는 것도 그렇지만, 에러의 처리 방식이 다소 호불호가 갈리는 방식이기 때문에 이를 단점으로 삼는 사람도 있는 것 같다. 에러에 대한 내 의견 또한 아래에서 언급해볼 것이다. Effective Go 을 읽어보면 더욱 좋겠지만, 그와 관련된 포스트는 이후에 이야기해보도록 하자. https://gosudaweb.gitbooks.io/effective-go-in-korean/content/ README · Effective Go in Korean gosudaweb.gitbooks.io panic 은 ..