공부집
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 1주차 후기 본문
필수링크: https://bit.ly/3D9XCOz
1주차 Go 언어
환경변수 설정
% go env | grep "GOPATH"
GOPATH="/Users/park/go"
init: go.mod,go.sum 패키지 관리 파일을 생성함
% go mod init go-test
go: creating new go.mod: module go-test
tidy: 불필요 모듈을 정리하는 명령어?
vendor: 패키지들을 보관해두는 곳, 외부 패키지가 아닌 필요한 패키지만 보관하여 용량이 줄어듬
go.mod: 모듈을 정의한 파일
go.sum: go.mod에 정의된 모듈의 해시값을 저장
패키지 관리를 위해서 노드단에서 볼륨 마운트는 비효율적
배열은 고정된 크기를 가지고, 슬라이스는 동적인 크기
array := [6]int //<- 배열임
slice := []int //<- 크기를 지정해주지 않으면 슬라이스
slice2 := make([]int, 3, 3) //make로 슬라이스 만들 수 있음 ([]T, length, capacity)
슬라이스는 배열을 참조할 뿐 데이터를 저장할 수 없음, 그래서 수정하면 다른 슬레이스의 요소도 수정됨
Generic: 여러 타입에서 동작하는 함수를 만들 수 있음
type Float interface {
float32 | float64
}
func add[T Float](a, b T) T {
return a + b
}
// 타입 파라미터는 일반적으로 대문자 알파벳 한 글자 "T"
Async
goroutine: Go 런타임에 의해 관리되는 경량 쓰레드라서 컨텍스트 스위칭이 발생해도 OS단 쓰레드에서 발생하는 스위칭보다 큰 비용이 발생하지 않음 => 고루틴 많이 써도 성능 크게 저하되지 않음

・고루틴의 동시성 문제는 sync.Mutex 의 Lock으로 해결 가능
・wg.Add(1) // 작업 갯수 1개 추가
・wg.Done() // 각 고루틴이 끝났음을 알림, defer를 넣어서 마지막에 실행되도록 함
・wg.Wait() // 작업 갯수가 0이 될 때 까지 대기
Channel: 비동기 돌아가는 관(파이프) [FIFO], 채널 연산자 "<-"
채널을 사용하면 고루틴에서 뮤텍스를 사용안해도 됨
'comento > Kubernetes' 카테고리의 다른 글
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 6주차 후기 (0) | 2022.10.07 |
---|---|
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 5주차 후기 (1) | 2022.10.07 |
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 4주차 후기 (0) | 2022.10.07 |
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 3주차 후기 (0) | 2022.10.07 |
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 2주차 후기 (0) | 2022.10.07 |
Comments