Go 1.22 Release Notes - The Go Programming Language Go 1.22 Release Notes Introduction to Go 1.22 The latest Go release, version 1.22, arrives six months after Go 1.21. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise o go.dev 지난 2024년 2월 6일 Go 1.22.0 버전이 릴리즈 되었습니다. 대부분 툴체인, 런타임 그리고 라이브러리와 관련된 내용이기는 합니다만, 중요..
⚠ Vault란? HashiCorp Vault는 ID 기반 시크릿 및 암호화 관리 시스템입니다. 여기서 시크릿은 API 암호화 키, 비밀번호, 인증서 등 액세스를 엄격하게 제어하고자 하는 모든 것을 아우릅니다. Vault는 인증(authentication) 및 인가(authorization) 방법에 따라 게이트화된 암호화 서비스를 제공합니다. Vault의 UI, CLI 또는 HTTP API를 사용하여 기밀 및 기타 중요 데이터에 대한 액세스를 안전하게 저장 및 관리하고, 엄격하게 제어(restrict)하며, 감사(audit)할 수 있습니다. 🎮 초기화 $ go mod init vault-example $ touch main.go $ touch docker-compose.yml $ go get github..
📑 context 패키지 Go의 context 패키지는 API의 경계를 넘어, 프로세스 간의 종료 시점, 취소 신호 그리고 요청 범위 값을 전달하는 Context 타입을 정의합니다. 쉽게 말해, Context 타입을 사용하여 작업 흐름을 제어할 수 있습니다. type Context interface { // context가 취소되어야 하는 시점을 반환합니다. // 만약 취소되어야 하는 시점이 없다면, ok는 false를 반환합니다. Deadline() (deadline time.Time, ok bool) // context가 취소되었을 때 닫히는 채널을 반환합니다. // 만약 취소될 수 없는 context라면, Done은 nil을 반환합니다. Done()
Package names 패키지를 임포트하면, 패키지 이름은 해당 패키지에 포함된 컨텐츠에 대한 접근자로 사용됩니다. import "bytes" func main() { _ = bytes.NewBuffer([]byte{}) } 좋은 패키지 이름은 짧고 간결하며 관련된 컨텐츠들을 연상시킬 수 있어야 합니다. 네이밍 컨벤션에 따라 패키지 이름은 소문자, 단일 단어여야 하며 _언더스코어나 대문자를 혼합할 필요는 없습니다. 패키지 이름은 유니크할 필요는 없으며, 만약 동일한 이름의 패키지를 사용할 경우 별칭(alias)을 붙여줍니다. 패키지를 임포트할 때 붙여준 이름이 사용중인 패키지를 결정하므로 충돌은 거의 발생하지 않습니다. 임포트한 패키지의 경로가 hello/world일지라도, 패키지 이름은 원본 디렉토리..