버전
2009년 11월에 첫 선을 보인 이래, 2012년 3월에 1.0 버전 발표에 이어 2015년 8월에 1.5 버전이 나왔다. 1.5 버전에서는 드디어 Go 컴파일러가 Go로 작성되었다.[3] 그 이전까지는 C언어로 작성되어 있었다. 자기 자신으로 구현된 컴파일러가 생겼다는 것은 개발 속도에 상당한 가속이 붙게 되었다는 뜻이라고 할 수 있다.[4] 2016년 2월 중순에는 HTTP/2가 기본으로 지원되고 템플릿 문법의 개선 등이 이루어진 1.6 버전이 출시되었고, 8월에는 컴파일 속도의 개선, 실행 퍼포먼스 향상, /x/net/context 패키지의 기본 패키지화 등이 이루어진 1.7 버전이 출시되었다.
2017년 2월 즈음에 32비트 MIPS 명령어 지원, 컴파일러 프론트엔드 추가[5], 가비지 컬렉션 개선, Cgo의 오버헤드 개선[6] 등의 변경점이 있는 1.8 버전이 출시되었다. 1.8 릴리즈 노트
2018년 8월에 발표된 1.11 버전에서 모듈이라는 패키지 관리 기능이 추가되었다. 그동안 약점이었던 패키지 버전 관리가 해결되었다. 그 대신 Windows XP와 Windows Vista를 더이상 지원하지 않는다.
1.16 버전부터 GOPATH가 먹히지 않는다. 모듈이 기본 옵션이 되어(GO111MODULE이 on), GO111MODULE 환경변수를 auto나 off로 하면 GOPATH를 사용할 수 있다. 1.17부터 모듈만 지원할 계획이었으나, go.mod가 있으면 모듈 없으면 gopath를 사용한다. 어쨌든 GOPATH와 non-modular 구조는 deprecated이므로 모듈 구조를 사용하는 것이 권장된다. 참고자료.
Windows에서 버전 업데이트 시 사용하고자 하는 버전의 msi 파일만 설치하면 기존 버전의 삭제와 신규 버전의 설치가 함께 이루어진다.
출처: 나무위키
01. Onboarding Tour
- GoLand 는 개선할 수 있는 코드를 highlights 합니다.
- Intensions 은 당신의 시간을 아끼고 코딩을 더 쉽게 합니다. 함수명의 앞글자를 대문자로 (exported) 만들 수 있습니다.
- Shift 를 두 번 누른 후 case 라고 검색해
Toggle Case
를 선택합니다. (Cmd Shift U)
Toggle Case 는 모두 소문자로 바꾼 후 한번 더 누르면 모두 대문자로 바꿉니다.
02. What's new in GoLand 2022.01
generic 을 사용하기 위해 Go 1.18 을 설치해야 한다.
적용하기 위해 go.mod 에서 버전을 1.18 로 바꾸거나 Option Enter 를 입력한다.
- go.mod
module learn-go-project
go 1.18
The Go Playground 란 ?
Option Cmd Shift O 를 누르면
우측 하단에 플레이그라운드 링크가 나온다.
타입이 있는 코드는 꼭 Go dev branch
로 가서 실행한다.
Go 1.17 에서는 에러가 나는 것을 볼 수 있다.
03. Code editing
Wrap amd delete code lines
Put arguments on separete lines: 인자를 각 라인으로 나눈다. (너무 길 경우)
Cmd Shift A: Actions 을 검색
soft wrap 을 검색: 토글로 긴 라인을 나눌 수 있다.
Working with JSON
JSON 을 복사하면 GO 타입으로 바꿔서 붙여넣기 할 수 있다.
Control T: Refactor
Introduce type 을 선택한다.
이것은 내장된 객체를 빼낸다.
change field name style in tags: 태그 스타일을 camel case 등으로 바꿀 수 있다.
Update key value in tags: 태그들을 한꺼번에 수정한다.
Add key to tags: xml 이라고 적으면 xml 만들 수 있다.
Autocompletion for JSON struct tags
04. Code completion
Basic Completion
fmtpri
fmt.Printf
GoLand 는 필요한 새로운 import 를 자동으로 추가한다.
the time package
포맷을 hh:mm 대신에 15:04 와 같이 작성한다.
suitable functions for a value
요소를 적용할 수 있는 함수를 모두 찾기 위해서는
Ctrl Space 를 두 번 누릅니다.
working with //go:embed
README.md 파일을 string 타입으로 넣어보자.
Ctrl Space 를 누르고 README.md 를 선택한다.
smart type completion
Smart Type Completion 은 추천 리스트를 필터합니다.
Ctrl Space 와 다르게 Ctrl Shift Space 를 눌러 타입에 맞는 추천리스트만 봅시다.
Smart type completion: pointers
GoLand 는 너에게 가능한 포인터와 변수주소의 리스트를 제안할 수 있습니다.
Ctrl Shift Space 를 눌러
Postfix completion
postfix 템플릿으로 당신은 이미 타입맺어진 식을 다른 postfix 로 바꿀 수 있다. 점, 표현식 타입, 문맥 뒤에
너는 이미 정의된 postfix completion 템플릿을 사용할 수 잇고 새로운 템플릿을 만들 수도 있다.
더 많은 커스텀 postfix 템플릿에 관한 정보는 아래에 있다.
https://www.jetbrains.com/help/go/auto-completing-code.html#custom_postfix_templates
package main
import (
"fmt"
"sort"
"strings"
)
func main() {
letters := []string{"D", "E", "F", "X", "S", "Y", "Z", "G", "H", "I", "J", "K", "V", "W", "L", "M", "N", "O", "P", "B", "C", "Q", "R", "A", "T", "U"}
sortLetters(letters)
filter(letters)
}
func sortLetters(l []string) {
l
fmt.Printf(strings.Join(l, " "))
}
func filter(letters []string) {
letters.
}
우리의 알파벳 슬라이스가 복잡한 상태이다.
문자열의 슬라이스를 바르게 정렬하기 위해 sort 패키지의 Strings 함수를 슬라이스에 적용할 수 있다.
우리는 이미 타입이 정해져있다.
앞뒤로 가지 않고 postfix 템플릿을의 정렬을 적용해보자.
l 변수 뒤에 dot ( . ) 을 타이핑 한 후 postfix completion 제안의 리스트를 보자.
sort 를 선택하거나 sort 를 타이핑한 후에 식을 완성하기 위해 Enter 를 누르자.
GoLand 는 for 나 forr 가 들어간 변수이름들을 도와줄 수 있다.
예를 들어, 너가 만달 수 있는 i 나 index 같은 제안과 string 의 s 와 같은 제안들이다.
자동완성 리스트에서 forr 를 타이핑 하고 forr postfix 템플릿을 골라보자.
Postfix completion: convert strings to numbers
GoLand 는 니가 문자열들을 숫자들로 바꿔주는 것을 돕는 특별한 postfix 템플릿을 가진다.
dot ( . ) 을 타이핑하고 parseFloat 를 선택해보자.
05. Intention actions
Rename, create, variables, and change Println to Printf
Println 함수는 변수들의 리스트들을 출력한다.
반면에 Printf 함수는 당신이 출력의 포맷을 정할 수 있게 한다.
우리는 %0.3f 와 같이 소수들을 포매팅한다.
변수를 선언하는 다른 방법들이 있다.
함수가 선언된 후에는 당신은 등호 (=) 로 단순히 aasign 해주기만 하면 된다.
우리는 arr 는 이미 정의했지만, root 는 아직 정의하지 않았다.
GoLand 에서 당신은 요소의 이름을 바꿀 수 있고 변화를 적용할 수 있다.
추출된 함수 리팩토링에서 당신은 코드조각을 가져와 분리된 함수에 넣고 오래된 코드를 함수를 call 하는 것으로 변경할 수 있다.
함수로 분리해보자.
Cmd Opt M 을 눌러보자.
Ezternal documentation 은 필요한 정보를 웹브라우저로 연다.
그래서 당신이 관련된 심볼을 찾아가고 동시에 더 많은 래퍼런스를 볼 수 있다.
Errorf 함수에서 Shift F1 을 눌러 pkg.go.dev 에 있는 Errorf 문서를 열어보자.
Working with parameters
06. Generating code
07. Search
08. Navigation
09. Code style
10. Debugging
11. Testing
12. Refactorings
13. Error handling
14. Advanced
15. Git
'Others > 시작하기' 카테고리의 다른 글
Go 프로젝트 디렉토리 구조 잡기 (0) | 2023.04.30 |
---|---|
Create go app 시작하기 (0) | 2023.04.28 |
리눅스 시작하기 (0) | 2022.08.22 |
MDN 으로 JavaScript 공부하기 (0) | 2022.07.30 |
Go Gopher 길들이기 (0) | 2022.06.23 |