Google의 Go(Golang) 프로그래밍 언어는 최신 버전인 Go 1.19를 출시하여 제네릭 지원을 개선하고 향상된 메모리 모델을 도입하고 다양한 기타 기능을 제공합니다. 이 업데이트는 Go 1.18에서 처음 도입된 최근 추가된 제네릭을 개선하고 제네릭 코드의 성능을 최대 20%까지 최적화하는 데 중점을 둡니다.
Go 1.19의 개선 사항
8월 2일에 Go 1.19가 출시됨에 따라 제네릭 지원 개발은 성능 개선과 함께 커뮤니티에서 보고된 미묘한 문제 및 코너 케이스를 해결하는 데 집중됩니다. 언어에 대한 제네릭의 도입은 3월에 출시된 Go 1.18에 추가된 오랫동안 기다려온 기능이었습니다.
Go 메모리 모델이 동기화/원자 패키지의 동작을 명시적으로 정의하도록 업데이트되어 동기화 알고리즘을 구현하기 위한 저수준 원자 메모리 프리미티브를 제공합니다. 이전 발생 관계 의 공식적인 정의가 C, C++, Java, JavaScript, Rust 및 Swift에서 사용되는 메모리 모델에 맞게 수정되었습니다. 이 업데이트는 기존 프로그램에 영향을 미치지 않습니다.
메모리 모델 업그레이드의 일환으로 atomic.int64 및 atomic.Pointer(T)를 포함하여 sync/atomic 패키지에 새로운 유형이 도입되어 원자 값을 보다 편리하게 사용할 수 있습니다. Go 1.19는 이제 Windows, macOS 및 Linux용 go.dev 에서 다운로드할 수 있습니다.
Go 1.19의 추가 기능
제네릭 및 새로운 메모리 모델의 개선 사항 외에도 Go 1.19에는 다음과 같은 다른 기능이 도입되었습니다.
- 전용 메모리 할당이 있는 컨테이너에서 실행되는 Go 프로그램을 최적화하는 데 도움이 되는 가비지 수집기에 소프트 메모리 제한이 추가되었습니다.
- 스택 복사를 줄이기 위한 코루틴 스택의 동적 크기 조정, 대부분의 Unix 시스템에서 추가 파일 설명자 자동 사용, x86-64 및 ARM64에서 대규모 스위치 문에 대한 점프 테이블, 디버거 주입 함수 호출 지원과 같은 성능 및 구현 개선 ARM64.
- 기존 프로그램에 영향을 주지 않고 메서드 선언의 매개 변수를 입력하기 위해 약간의 수정이 이루어졌습니다.
- 문서 주석은 이제 링크, 목록 및 제목 구문을 지원하여 특히 광범위한 API가 포함된 패키지의 경우 문서 주석 구성을 더 명확하게 만듭니다.
- 보안을 위해 os/exec 패키지는 더 이상 PATH 조회에서 상대 경로를 허용하지 않습니다.
- 대상 OS가 Unix 계열 시스템에서 작동할 때 충족되는 새로운 빌드 제약 조건인 unix가 도입되었습니다.
AppMaster와 같은 no-code 및 low-code 플랫폼의 채택 AppMaster increases, it is essential for developers to stay up to date with the latest advancements in popular programming languages like Go. The integration of Go with AppMaster can speed up backend applications' development, offering enhanced scalability and cost-effectiveness. Go 1.19 brings substantial improvements to boost performance, security, and developer experience, strengthening its position as a vital tool for modern software development.