Trawling

개발 · 최신기사

언어와 프레임워크, SDK와 개발 방식·도구의 변화를 다룹니다.

발행

Go 1.27의 JSON v2, 구문 처리와 Go 값 변환을 분리

Go 1.27에는 `encoding/json/v2`와 `encoding/json/jsontext`가 안정판으로 포함됐습니다. `jsontext`는 JSON 토큰과 값을 스트리밍 처리하고, `json/v2`는 이를 Go 값과 연결합니다. 옵션과 사용자 정의 메서드도 이 구조를 따르며, 기존 `encoding/json`이 계속 지원돼 호출부별로 이전할 수 있습니다.

발행

TinyGo 개발 빌드에서 JSON·gob 구조체 왕복 변환 확인

TinyGo 저장소에서 2019년부터 이어진 직렬화 지원 요청 이슈 #447이 완료로 닫혔습니다. TinyGo 0.44.0-dev에서 encoding/json과 encoding/gob으로 기본 구조체를 인코딩한 뒤 다시 읽는 사례가 성공했지만, 모든 기능과 자료형의 호환성을 뜻하지는 않습니다.

발행

Go 1.28 HTTP/2 파킹: 유휴 연결 5,000개에서 RSS 85~93MiB 감소

Go 1.28 개발 버전은 HTTP/2 연결에서 처리할 일이 없을 때 연결 담당 goroutine을 종료하고, 새 작업이 오면 다시 실행하는 파킹 기능을 추가했습니다. 한 머신에서 유휴 연결 5,000개를 측정한 결과, 파킹을 켜면 같은 바이너리에서 RSS가 84.7~92.6MiB 줄고 goroutine은 5,000개 감소했습니다.

발행

Wails v3.0.0 출시: Go로 데스크톱·서버·모바일 앱 개발

Go 백엔드와 플랫폼 내장 WebView를 쓰는 앱 개발 프레임워크 Wails가 v3.0.0을 출시했습니다. 다중 창과 네이티브 메뉴, 서비스 바인딩 생성, 서버 빌드를 지원하며 모바일은 실험 단계입니다. v2에서 옮기려면 앱 구조와 바인딩을 포팅해야 합니다.

발행

Go의 리소스 누수와 동시성 문제를 찾는 정적 분석기

gohawk는 Go 코드에서 리소스 관리, 동시성, 오류 처리 문제를 찾는 정적 분석기입니다. 심벌릭 힙 모델로 객체 참조와 별칭을 추적하며, 개발자는 Docker와 Kubernetes 분석에 걸린 시간으로 각각 약 13초와 76초라고 밝혔습니다.

발행

gopls의 대화형 리팩터링

gopls가 사용자 입력을 받아 여러 단계로 진행하는 리팩터링을 지원합니다. Go 팀은 이를 특정 편집기에 묶이지 않는 LSP 표준 제안으로 설계했으며, 구조체 태그 수정과 인터페이스 메서드 생성 등을 지원합니다. gopls v0.24.0과 VS Code용 Go 확장 v0.56.0에서 사용할 수 있습니다.

발행

HTTP/1 연결 재사용 개선

Go 1.27의 net/http.Transport는 닫을 때 읽지 않은 HTTP/1 응답 본문을 최대 256KB, 50ms 동안 비동기로 읽어 연결 재사용을 돕습니다. 본문을 읽지 않고 상태 코드만 확인하는 예제는 Go 1.26보다 약 5배 빨라졌습니다.

발행

Go 컴파일러를 손봐 IPv4를 IPv6로 효율적으로 매핑하기

Go의 netip.Addr에는 IPv4 주소를 IPv4-mapped IPv6 주소로 바꾸는 To6() 메서드가 없습니다. 글쓴이는 권장되는 AddrFrom16(ip.As16()) 방식이 네이티브 구현보다 약 8배 느린 이유를 분석하고, 컴파일러 최적화로 성능 차이를 없애는 방법과 그 과정의 부작용을 설명합니다.

발행

Go 맵은 내부에서 어떻게 동작할까: Swiss Tables

Phuong Le의 영상은 Go 1.24 맵에 도입된 Swiss Tables 구조를 단계별로 설명합니다. 해시 분할과 제어 바이트 검사부터 테이블 확장, 기존 맵과의 벤치마크까지 다루며, Go 맵 내부 구조를 이해하려는 개발자에게 유용한 자료입니다.

발행

Go 코드를 GitHub에 종속시키지 마세요

Go 패키지 경로에 GitHub 같은 호스팅 주소를 직접 쓰면 저장소 이전 때 import 경로도 바꿔야 합니다. 글쓴이는 자체 도메인과 Go 메타 태그를 사용해 경로를 고정하고, 뒤에서 연결할 Git 호스팅 서비스를 바꾸는 방법을 소개합니다.

발행

Go 동시성 한눈에 정리하기

Go 동시성의 주요 개념을 실행 가능한 예제로 정리한 미니북입니다. 고루틴과 채널부터 동기화, 테스트, 스케줄링, 진단 도구까지 빠르게 훑으며, 데이터 경쟁과 경쟁 조건의 차이도 설명합니다.

발행

Go의 플랫폼 독립 SIMD 실험

Go 1.27은 CPU별 벡터 크기와 명령어 차이를 감추는 실험적 SIMD 패키지 `simd`를 도입합니다. 공통 연산과 에뮬레이션으로 여러 아키텍처에서 코드를 재사용하며, 성능과 지원 기능은 하드웨어와 연산에 따라 달라집니다.

발행

Go로 Microsoft Teams 초록 상태 유지하기

Go와 Windows API로 마우스·키보드 입력을 흉내 내 Teams 상태를 초록색으로 유지하는 도구를 소개합니다. 댓글에서는 PowerShell 한 줄로도 같은 동작을 구현할 수 있다는 의견과, 절전 방지 API만으로는 Teams 상태가 바뀌지 않는다는 지적이 나옵니다.