안녕하세요. 오랫만에 인사드립니다. 거의 3달만에 신규 포스팅을 작성하게 되었습니다. 이전 마지막 포스팅이 6월 4일의 ChatGPT에 관한내용이더라구요. 한동안 공부와는 거리를 두고 지냈었습니다. 게임도하고 하반기에 있는 이벤트 준비도하고 그랬습니다. 그리고 이제 조금씩 다시 복귀하려고합니다.
개요
최근 회사 업무로 GoLang을 사용해불 수 있었습니다. Kotlin, React 이래로 제대로 하나의 언어를 공부하는것은 오랫만이었는데요. Golang 언어에 대해서 제가 얻었던 지식을 이번 포스팅부터 조금씩 풀어보려고합니다.
어떤 언어든 설치하고 Hello World는 찍어보는것이 그 언어에 대한 시작이라고 생각합니다. 오늘은 Mac에서 Go를 설치하고 IDE를 통해 Run을 해보는것까지 진행해보겠습니다.
Mac에서 Go를 설치하는 방법
- https://go.dev/dl/ 에서 각 운영체제에 맞게 다운로드
- 다운로드받은 pkg 파일을 엽니다
- 그러면 아래와 같이 설치를 진행할 수 있습니다.
- 아래의
go version
명령어를 통해서 정상적으로 설치되었는지 확인이 가능합니다.
➜ ~ go version
go version go1.20.2 darwin/arm64
Go의 코드를 작성하기위한 IDE 추천
Go 코드를 작성하는데 있어서 IDE는 아래 2가지를 추천합니다. 무료로 사용할 수 있는 visual studio code와 jetbrain에서 제공하고 있는 goland입니다.
- visual studio code
- 무료로 사용가능합니다.
- go extension을 추가로 설치합니다.
- goland
- 30일 무료이며 이후 비용이 필요합니다
- java의 intellij와 유사하게 사용할 수 있습니다.
intellij는 웹앱 등 프론트, 웹서버를 따로 띄어야하는 케이스에 대해서 상당히 편리하게 사용할 수 있습니다. 그것 아니라 Go 단독으로만 개발한다면 충분히 visual studio code 로도 쉬운 개발이 가능할것으로 보입니다.
간단한 go 코드 작성 및 분석
Go에서 Hello, World!를 출력하는 기본적인 코드를 작성해보도록 하겠습니다. 파일 이름은 main.go
으로 프로젝트 디렉토리를 하나 만들어서 그곳에 소속되게합니다. 파일의 코드는 아래와 같습니다.
package main // package
import "fmt" // import
func main() { // function
fmt.Println("Hello, World!")
}
위 코드가 goLang의 기본적인 구조입니다.
간단하게 자바와 비교해보면서 보도록하겠습니다.
가장 첫줄에 해당 파일이 속해있는 package를 선언합니다. main package는 go의 컴파일러가 해당 패키지가 실행 패키지라고 인식하게합니다. Java에서는 이러한 규칙은 없지만 Go에서는 꼭 지켜야하는 요소입니다.
그리고 해당 package에는 main function이 있을 수 있고 실행하면 실행되게 됩니다. 이는 변경이 불가능합니다. Java에서 public static void main(String[] args)
와 동일하다고 생각하시면됩니다. java에서는 아규먼트의 생략이 불가능합니다. go에서는 os package에 접근해서 파라미터를 가져오는것이 가능합니다.
마지막으로 fmt.Println("Hello, World!")
는 Java에서 System.out.println("Hello, World!")
과 동일한 메서드로 표준 출력을 담당합니다. 그리고 각 라인의 마지막에 ;(세미콜론)
을 찍을 필요가 없습니다.
go main Run
이렇게 코드를 작성해보았으니 이제 run을 해보도록 하겠습니다. run은 bash를 이용해서 간단하게 가능합니다. go run .
이라고 터미널에 입력하면 main.go 파일을 찾아 build를 진행한 후 main 함수를 실행합니다.
➜ go run .
Hello, World!
마무리
오늘은 이렇게 Mac에서 Go를 설치하는 방법과 IDE를 구성, 그리고 Hello, World!를 실행해서 출력 방법까지 알아보았습니다.
다음 포스팅에서는 Go의 Syntax가 Java와 어떻게 다른지 Go의 Syntax 선언문을 통해서 알아보도록 하겠습니다.
감사합니다.
참조
[1] https://go.dev/doc/tutorial/getting-started#prerequisites
'language, framework, library > golang' 카테고리의 다른 글
[Go] Java 개발자의 GoLang 튜토리얼 - Goroutine & GMP Model (1) | 2023.10.10 |
---|---|
[Go] Java 개발자의 GoLang 튜토리얼 - Interface와 Duck Typing (0) | 2023.10.02 |
[Go] Java 개발자의 GoLang 튜토리얼 - Method와 Receiver (0) | 2023.09.26 |
[Go] Java 개발자의 GoLang 튜토리얼 - New vs Make (0) | 2023.09.10 |
[Go] Java 개발자의 GoLang 튜토리얼 - 데이터 타입과 타입 변환 (Conversion) (2) | 2023.09.04 |
댓글