오늘 Go 팀은 다운로드 페이지 를 방문하여 다운로드 받을 수 있는 Go 1.19를 출시하게 된 것을 기쁘게 생각합니다 .
Go 1.19는 올해 초 Go 1.18 릴리스 를 개선하였습니다. Go 1.19의 제네릭 개발은 커뮤니티에서 보고한 미묘한 문제와 코너 케이스를 해결하는 데 집중했으며 중요한 성능 향상(일부 제네릭 프로그램의 경우 최대 20%)을 제공했습니다.
문서 주석은 이제 링크, 목록 및 더 명확한 제목 구문을 지원합니다. 이 변경 사항은 특히 큰 API가 포함된 패키지에서 사용자가 더 명확하고 탐색하기 쉬운 문서 주석을 작성하는 데 도움이 됩니다. 이 변경 사항의 일부로 gofmt이 이제 문서 주석의 형식을 다시 지정하여 이러한 기능을 사용할 때 표준 형식을 적용합니다. 자세한 내용은 "Go Doc Comments"를 참조하십시오.
Go의 메모리 모델 은 이제 sync/atomic 패키지 의 동작을 명시적으로 정의합니다 . C, C++, Java, JavaScript, Rust 및 Swift에서 사용되는 메모리 모델에 맞게 이벤트 이전 관계의 공식 정의가 수정되었습니다. 기존 프로그램은 영향을 받지 않습니다. 메모리 모델 업데이트와 함께 sync/atomic 패키지의 atomic.Int64 및 atomic.Pointer[T] 와 같은 새로운 유형이 있어 Atomic 값을 더 쉽게 사용할 수 있습니다.
보안상의 이유로 os/exec 패키지는 더 이상 PATH 조회에서 상대 경로를 고려하지 않습니다. 자세한 내용은 패키지 설명서 를 참조하십시오. golang.org/x/sys/execabs 의 기존 사용은 Go 1.19 이상을 사용하여 빌드하는 프로그램에서만 다시 os/exec로 이동할 수 있습니다.
가비지 컬렉터는 새로운 가비지 컬렉션가이드에 자세히 설명되어 있는 소프트 메모리 제한에 대한 지원을 추가했습니다. 이 제한은 전용 메모리 용량이 있는 컨테이너에서 Go 프로그램을 최대한 효율적으로 실행하도록 최적화하는 데 특히 유용합니다.
새로운 빌드 제약 조건은 Unix-like 운영체제(GOOS)가 Unix와 유사한 시스템일때 모두 만족합니다. 이제 Unix-like는 다음(js,plan9,windows, 그리고 zos)을 제외하고 Go의 모든 타깃 운영체제를 의미합니다.
마지막으로 Go 1.19에는 스택복사를 줄이기 위한 초기 goroutine 스택의 동적 크기 조정, 대부분의 Unix 시스템에서 추가 파일 기술자의 자동 사용, x86-64 및 ARM64에서의 대규모 스위치 문의 점프 테이블, ARM64에서의 디버거 삽입 함수 호출 지원 등 다양한 성능 및 구현 개선이 포함되어 있습니다. RISC-V에서 ABI 지원을 등록하고 Loongson 64비트 아키텍처 LoongArch에서 실행되는 Linux를 시험적으로 지원합니다(GOARCH=loong64).
코드 작성, 버그 파일 작성, 피드백 공유, 베타판 및 릴리스 후보 테스트 등 이번 릴리즈에 기여한 모든 분들께 감사드립니다. Go 1.19가 가능한 한 안정적이 되도록 노력했습니다. 여느 때와 마찬가지로 문제가 발견되면, 문제를 제출해 주세요.
'프로그래밍(Basic) > Golang' 카테고리의 다른 글
defer와 GC의 상관관계 (0) | 2023.05.19 |
---|---|
Go 1.20 릴리즈 요약 (0) | 2023.05.17 |
[바미] Go의 signal에 대해 알아봅시다. (0) | 2022.04.11 |
[바미] Beyond OOP에 대해 알아보자. (0) | 2021.03.02 |
[바미] Go - ODD의 SOLID에 대해 알아보자. (0) | 2021.03.02 |