Learning
레슨 8 / 8·15분

Go 레퍼런스

기본 타입과 제로 값

go
// 기본 타입과 제로(zero) 값
// bool       -> false
// int, float -> 0
// string     -> ""
// pointer    -> nil
// slice, map -> nil

// 타입 변환 (명시적 캐스팅 필요)
var i int = 42
var f float64 = float64(i)
var s string = fmt.Sprintf("%d", i)

// strconv 패키지
// strconv.Itoa(42)       -> "42"
// strconv.Atoi("42")     -> 42, error
// strconv.ParseFloat("3.14", 64) -> 3.14, error

슬라이스와 맵 조작

go
// 슬라이스 (Slice)
nums := []int{1, 2, 3}
nums = append(nums, 4, 5)     // 추가
sub := nums[1:3]              // 슬라이싱 [2, 3]
length := len(nums)           // 길이
capacity := cap(nums)         // 용량
copied := make([]int, len(nums))
copy(copied, nums)            // 복사

// 맵 (Map)
m := map[string]int{
    "alice": 90,
    "bob":   85,
}
m["charlie"] = 92             // 추가/수정
delete(m, "bob")              // 삭제
val, ok := m["alice"]         // 존재 여부 확인
if ok {
    fmt.Println(val)  // 90
}
for key, value := range m {   // 순회
    fmt.Println(key, value)
}

주요 표준 라이브러리

  • fmt -- 포맷 입출력 (Println, Printf, Sprintf, Scanf)
  • strings -- 문자열 조작 (Contains, Split, Join, Replace)
  • strconv -- 문자열/숫자 변환 (Atoi, Itoa, ParseFloat)
  • os -- 파일, 환경 변수, 프로세스 (ReadFile, WriteFile, Args)
  • io -- 입출력 인터페이스 (Reader, Writer, Copy)
  • encoding/json -- JSON 직렬화 (Marshal, Unmarshal)
  • net/http -- HTTP 서버/클라이언트 (ListenAndServe, Get)
  • time -- 시간, 타이머 (Now, Sleep, Format)
  • sync -- 동기화 (Mutex, WaitGroup, Once)
  • context -- 취소, 타임아웃 (WithCancel, WithTimeout)
  • log -- 로깅 (Println, Fatal, SetFlags)
  • testing -- 테스트, 벤치마크 (T, B, Run)

Go 명령어 모음

go
// 빌드와 실행
// $ go run main.go          # 실행
// $ go build -o app .       # 빌드
// $ go install              # $GOPATH/bin에 설치

// 모듈 관리
// $ go mod init myapp       # 모듈 초기화
// $ go mod tidy             # 의존성 정리
// $ go get pkg@version      # 패키지 추가

// 코드 품질
// $ go fmt ./...            # 코드 포맷팅
// $ go vet ./...            # 정적 분석
// $ go test ./...           # 테스트 실행
// $ go test -cover ./...    # 커버리지

// 도구
// $ go doc fmt.Println      # 문서 조회
// $ go env                  # 환경 변수 확인
💡

Go 공식 사이트(go.dev)에서 표준 라이브러리 문서와 Go Playground를 활용하세요. go doc 명령으로 터미널에서도 문서를 바로 확인할 수 있습니다.