검색하기귀찮아서만든블로그

[GO] IDE 구성하기 본문

개발

[GO] IDE 구성하기

hellworld 2023. 9. 28. 09:01

golang (이하 go) 은 2007년 구글에서 개발이 시작되었는데 대규모 네트워크 서비스와 같은 분산 시스템 설계에 용이하게 설계되었다고 한다. go 언어는 C++과 같이 정적 타입을 가지고 있으면서도 비동기를 지원하는 기능과 가비지 컬렉터와 같은 기능을 포함하고 있어 개발에 용이하다. go는 간결성을 중심 철학으로 코드는 단순하고 읽기 쉬우며 유지 보수가 용이하게 만들 수 있다. 그래서 복잡한 상속 구조 대신에 인터페이스를 사용해서 코드 재사용성을 높였다.

비동기 처리를 위해서 'Goroutine' 이라는 경량 스레드와 'Channel'이라는 통신 매커니즘을 제공한다. 파이썬과는 다르게 인터프리터 언어가 아니기 때문에 컴파일을 해야 한다. 그래서 비교적 런타임에서 좋은 성능을 제공하며 가비지 컬렉터 기능으로 메모리 관리에 수월하다. 그뿐만 아니라 go는 강력한 표준 라이브러리를 제공하는데 웹 서버 구축, 데이터 암/복호화, 파일 I/O 등 다양한 기능이 내장되어 있다고 한다.

 

[go 언어의 장점]

  . 간결한 문법: 문법이 간결하며, 이해하기 쉬움. 이는 코드의 가독성을 높이고, 유지 보수를 용이함
  .  정적 타입 체크: 정적 타입 언어라서 컴파일 시점에 대부분의 오류를 검출. 런타임 오류가 적고 안정성이 높음

  .  강력한 표준 라이브러리: 네트워킹, 데이터 처리, 암호화 등 다양한 기능을 제공하는 표준 라이브러리를 포함
  .  동시성 지원: Goroutine과 Channel 같은 도구들로 복잡한 동시성 작업을 손쉬운 처리 가능
  .  가비지 컬렉션: 메모리 관리를 자동으로 처리해 주기 때문에 메모리 관리에 용이함
  .  빠른 컴파일 속도: 매우 빠르게 컴파일되므로 개발-테스트 사이클이 단축되고 생산성이 높음
  .  크로스 컴파일 지원: 다양한 플랫폼과 아키텍처에서 실행 가능한 바이너리를 생성할 수 있는 크로스 컴파일의 지원
  .  단일 바이너리 출력: 외부 의존성 없이 하나의 실행 파일만으로 배포가 가능

 

 

이제 go 언어에 대해 간략하게 알아보았으니 개발 환경 구성을 해보자.

먼저 go 언어를 다운로드한다. (go 다운로드 웹페이지 : All releases - The Go Programming Language)

 

All releases - The Go Programming Language

 

go.dev

golang 다운로드 웹 페이지

환경 변수를 어떻게 구성해야 할지 몰라 포터블 버전을 사용하지 않고 go1.21.1.windows-amd64.msi를 다운로드하였다. 다운로드한 msi 설치 패키지를 실행하면 설치가 시작된다.

 

go 설치 화면
GOPATH 환경 변수와 path 환경 변수 go 설치 경로 추가 확인

(참고) 포터블 버전을 사용할 경우 상위와 같이 path 환경 변수가 생성되니 참고하면 된다.

go 명령어 실행 화면

cmd 창에서 go를 입력하면 다음과 같은 go 도움말이 출력되는 것을 알 수 있다. (path 환경 변수에 go 경로가 포함되어 있기 때문에 어떤 경로에서든 go를 사용할 수 있음) 

이제 go 설치가 되었으니 vscode를 실행해서 go 언어 개발 확장을 설치하고 몇 가지 개발 도구들을 설치한다.

vscode 마켓플레이스에서 go 언어 개발 확장 설치

[cmd]
go install golang.org/x/tools/gopls@latest
go install github.com/uudashr/gopkgs/v2/cmd/gopkgs@latest
go install github.com/ramya-rao-a/go-outline@latest
go install github.com/cweill/gotests/...@latest
go install github.com/fatih/gomodifytags@latest
go install golang.org/x/tools/cmd/goimports@latest

- gopls : go 언어 서버로서 코드 편집기와 상호작용하여 코드 완성, 문법 하이라이팅, 오류 검사 기능 제공
 - go-outline :소스 파일에서 함수 및 변수와 같은 식별자를 추출, 구조화된 형식으로 제공
 - gopkgs : 현재 프로젝트 또는 패키지에 대한 정보를 검색하는 도구로서, 자동 완성 및 패키지 임포트에 사용
 - gotests : 주어진 함수나 메서드에 대한 테스트 코드를 자동으로 생성해 주는 도구
 - gomodifytags : 구조체 필드 태그를 수정하고 업데이트하는 데 사용. JSON, XML 태그 등을 추가/수정할 때 사용
 - goimports : 필요한 패키지 임포트를 자동으로 추가하고 정리해주는 도구

go 추가 개발 도구 설치 화면

이제 IDE 준비는 되었으니 간단한 코드를 작성하고 컴파일 및 구동해 보자.

main.go 파일을 생성하고 "Hello World!"를 출력하는 간단한 코드를 작성한다. 터미널 (cmd)에서 go run main.go 명령을 실행하여 main.go 가 컴파일되고 실행된다. 터미널 화면을 보면 "Hello World!"가 출력되는 것을 볼 수 있다.

 

지금까지 go 언어 개발을 위한 IDE를 구성하고 간단하게 돌려보는 실습까지 진행해 보았다. 다음 포스팅에서는 go 언어를 사용하여 proxy server를 만들어볼 예정이다.

'개발' 카테고리의 다른 글

[GO] 간단한 proxy 서버 만들기  (0) 2023.09.28
[mariadb] 양방향 replication  (0) 2023.06.17
[mariadb] replication  (0) 2023.06.17
[Docker] mariadb 컨테이너 구축  (0) 2023.06.17
[ML] CNN 알고리즘에 대한 이해와 고찰  (0) 2022.11.29