Go 1.27 출시, 제네릭 메서드·encoding/json/v2 도입
요약
Go 팀이 Go 1.27을 정식 출시했다.
메서드가 자체 타입 매개변수를 선언할 수 있는 제네릭 메서드가 언어에 추가됐다.
표준 라이브러리에는 새 JSON 패키지 encoding/json/v2, uuid 패키지, 양자내성 서명 ML-DSA를 구현한 crypto/mldsa가 들어갔다.
Go 1 호환성 약속에 따라 기존 프로그램은 대부분 그대로 컴파일·실행된다.
주요 내용
- 제네릭 메서드:
math/rand/v2의Rand에 정수 타입별 메서드 대신 하나의 제네릭N메서드가 추가된 것이 대표 예다. 인터페이스 메서드는 여전히 타입 매개변수를 가질 수 없다. - 구조체 리터럴의 키로 임베디드 구조체의 필드 등 유효한 필드 선택자를 쓸 수 있게 됐고, 제네릭 함수의 타입 추론이 모든 대입 문맥으로 넓어졌다.
encoding/json/v2는 잘못된 UTF-8과 중복 키를 기본으로 거부하는 등 더 엄격해졌으며, 기존encoding/json도 v2 구현 위에서 동작한다.- 80바이트 미만 소형 객체의 할당 비용을 최대 30% 줄이는 크기별 특화 할당이 도입됐다. 할당이 많은 프로그램 기준 전체 개선 폭은 약 1%다.
- 영원히 블록된 고루틴을 찾는
goroutineleak프로파일이 정식 기능이 됐고,go fix에 새 modernizer들이 추가됐으며go doc은package@version조회를 지원한다. - macOS에서는 13 Ventura 이상이 필요하다.
왜 중요한가
제네릭 메서드는 제네릭 도입 이후 꾸준히 요청돼 온 기능으로, 라이브러리 API를 설계하는 방식에 변화를 줄 수 있다. JSON v2와 표준 UUID 패키지는 그동안 외부 라이브러리에 기대던 영역을 표준으로 가져온다는 점에서 의존성 관리 부담을 덜어준다.
AI와 함께 작성한 글이에요.
0
댓글 0
아직 댓글이 없어요. 첫 댓글을 남겨보세요.
로그인하고 대화에 참여해보세요.