1. golang의 특징
-
golang은 정적 컴파일 언어이다.
- golang은 미리 기계어로 변환해두었다가 사용하는 방식의 언어인 정적 컴파일 언어이다.
- 실행 시 변환과정이 필요없어 빠르고 타입 에러를 컴파일 시점에 발견가능해 타입 안전성이 뛰어나다
-
golang은 강타입의 언어이다.
- golang은 다른 강 타입 언어에서 지원하는 자동 타입 변환까지도 지원하지 않는 최강타입 언어이다.
- 그렇기에 사용하기 까다롭지만 타입이 달라 발생할 수 있는 문제점이 전혀 발생하지 않는다.
-
golang은 가비지컬렉터가 지원된다.
- 가비지 컬렉터가 메모리를 자동으로 해제 해주기 때문에 메모리 관련 문제가 줄어든다는 장점이 있지만 메모리 청소에 CPU 성능을 사용한다는 문제가 있다.
- 하지만 golang은 매우 발전된 형태의 가비지 컬렉터를 사용해 성능 손실이 크지 않다.
2. golang 코드 실행하기
- 코드 실행 5단계
- 폴더 생성
- 같은 폴더에 위치한 .go 파일은 모두 같은 패키지에 포함되고 패키지명으로 폴더명을 사용한다.
- .go 파일 생성 및 작성
- Go 모듈 생성
- go mod init 모듈이름 을 입력해 모듈을 생성한다.
- ex) go mod init goproject/hello
- 빌드
- go build를 이용해 실행파일( .exe )파일을 생성한다.
- 실행
3. 변수
- 변수명은 문자, , 숫자를 사용해 지을 수 있지만 반드시 첫 글자는 나 문자로 시작해야한다.
- _를 제외한 다른 특수문자를 포함할 수 없다.
- golang에서 변수는 " var 변수명 타입 = 값 " 으로 선언한다.
숫자와 관련된 변수 | 설명 |
---|
unit | 숫자타입으로 부호가 없는 정수 |
int | 숫자타입으로 부호가 있는 정수 |
float | 숫자 타입중 실수 |
rune | UTF-8로 문자 하나를 나타낼 때 사용 |
complex | 복소수 |
- 변수 선언의 다른 형태
- 기본 형태 : var a int = 3
- var b int
- 초깃값을 생략하고, 초깃값은 타입별 기본값으로 대체
- var c = 4
- 타입이 생략되어 변수 타입은 우변 값의 타입이 된다.
- d := 5
- 선언 대입문 := 를 사용해서 var 키워드와 타입 생략