Skip to main content

Command Palette

Search for a command to run...

23년 2월의 두번째 뉴스레터

Published
2 min readView as Markdown

아직은 실험적인 코드 생성 기반 빠른 직렬화 라이브러리

lemon-mint님의 gobe는 아직은 개발 단계에 있지만, 코드 생성 기반의 직렬화/역직렬화를 제공합니다.
실 프로젝트에 바로 도입하기에는 부담이 있을 수 있겠지만, 코드 제너레이트에 대해 공부하기에 좋은 프로젝트라고 생각합니다.
lemon-mint/gobe: GOBE: Go Binary Encoding (github.com)


QUIC와 HTTP3를 구현한 라이브러리

quic-go는 고 언어에서 현재는 지배적인 위치에 있는 QUIC 라이브러리입니다.
간단한 설정으로 HTTP3로도 사용할 수 있게 작성할 수 있는 유용한 라이브러리입니다!
한번 레이턴시가 중요한 서버는 QUIC를 통해 제공해 보는 건 어떨까요?
quic-go/quic-go: A QUIC implementation in pure go (github.com)


고에서 오픈텔레메트리를 사용하는 방법

여러분들은 자체적인 APM 툴을 개발하고 적용한 적이 있으신가요?
그때 다른 APM 툴과의 호환은 어떻게 보장 하셨었나요??
오픈텔레메트리는 그 고민을 해결해줄 기술일 겁니다.
그리고 Komu Wairagu는 고에서 오픈텔레메트리를 다루는 가이드를 자신의 블로그에 기고 했습니다.
한번 따라가며 적용해봅시다!
The complete guide to OpenTelemetry in Golang. (komu.engineer)


귀여운 로그 라이브러리

한번 쯤 로그를 귀엽고 예쁘게 남기고 싶지 않으신가요?
charm은 단순히 귀엽고 예쁜 포맷으로 로그를 남기는 게 아닌 유용한 기능까지 제공해서 귀엽고 예쁘게 로그를 남겨 줍니다!
사용 예시 마저 귀여운 charm, 한번 츄라이 해보세요!
charmbracelet/log: A minimal, colorful Go logging library 🪵 (github.com)


안전하지 않은 문자열 처리

go 1.20에 unsafe 패키지 내에 String과 StringData 함수가 추가되었습니다.
각각 byte 포인터를 받아서 string을 만들거나, string 내의 byte 포인터를 반환합니다.
주의해야할 것은 문자열은 기본적으로 불변이기 때문에 함부로 수정을 가하면 안됩니다.
마찬가지로 같은 역할을 하는 Slice와 SliceData도 있으니 한번 확인해 보시기 바랍니다.
unsafe package - unsafe - Go Packages(String)
unsafe package - unsafe - Go Packages(Slice)


redis 공식 Go 클라이언트로의 승격

레디스의 고 클라이언트 중 가장 인지도와 인기가 높은 go-redis가 레디스 공식 클라이언트로 내정되었습니다.
go-redis가 공식 redis organization에 합류하게 되면서 더욱 발전된 클라이언트가 되기를 기대합니다.
Go-Redis Is Now an Official Redis Client | Redis
redis/go-redis: Type-safe Redis client for Golang (github.com)


한번 쯤 어셈블리를 보고 싶지 않으신가요?

lensm은 고 언어 어셈블리 뷰어로 여러분이 작성한 고 언어 프로그램의 코드의 어셈블리를 분석해서 보여줍니다.
고 컴파일러에도 소스 코드 내의 어셈블리를 다룰 수 있는 부분이 있으니, 이참에 한번 공부해 볼까요?
loov/lensm: Go assembly and source viewer (github.com)


Goland 부럽지 않은 vscode 만들기

tooltitude는 기존에 고랜드가 제공하고 있던 코드 상의 편의 기능을 제공하는 익스텐션 입니다.
레퍼런스 렌즈, 디프리케이티드 체크, 쉐도우된 심볼 감지, 에러 핸들링 코드 작성 등등의 편리한 기능을 제공합니다!
Tooltitude

More from this blog

[GDC] Weekly Newsletter September 2nd

[GDC] Weekly Newsletter September 2nd Go 애플리케이션 성능 향상: 프로파일 기반 최적화 활용하기 소개 Go 컴파일러는 실행 시 어떤 코드가 자주 사용되는지 알 수 없기 때문에, 정적인 추측에 의존하여 최적화를 수행합니다. 이로 인해 실제 실행 환경에서 성능이 저하될 수 있습니다. 프로파일 기반 최적화(PGO)는 Go 컴파일러에게 애플리케이션 실행 프로파일을 제공하여 컴파일러가 더 정확한 최적화를 수행할 수 있...

Sep 8, 202417 min read

[GDC] Weekly Newsletter September 1st

Go 언어에서의 모델 검증 요약 Go 언어에서 모델 검증은 소프트웨어 개발에서 필수적인 부분입니다. 적절한 검증을 통해 데이터 유효성을 보장하고 이후 작업을 간소화할 수 있습니다. 이 글은 Go 언어에서 모델 검증을 수행하는 다양한 방법과 validator v10 라이브러리에 대해 설명합니다. 소개 Go 언어는 강력한 타입 시스템을 제공하지만, 모델 검증을 위한 내장 기능은 부족합니다. 따라서 개발자는 직접 검증 로직을 작성하거나 외부 라이브러...

Sep 1, 202428 min read

[GDC] Weekly Newsletter August 5th

BleuIO와 Go를 사용하여 BLE 애플리케이션 구축하기 Summary 이 글은 BleuIO USB 동글과 Go 프로그래밍 언어를 사용하여 Bluetooth 저에너지(BLE) 개발을 시작하는 방법을 단계별로 안내합니다. BleuIO는 사용하기 쉬운 AT 명령어로 BLE 애플리케이션 개발을 단순화하는 다재다능하고 사용자 친화적인 BLE USB 동글입니다. Description 이 글은 개발 환경을 설정하고 BLE 동글과 상호 작용하는 간단한 ...

Aug 25, 202435 min read

# [GDC] Weekly Newsletter August 3rd

본 아티클은 시험삼아 모두 Gemini Flash로 생성했습니다. 잘못된 부분은 제 메일로 알려주셨으면 합니다! gRPC over HTTP/3: 차세대 분산 시스템을 위한 혁신 요약 gRPC over HTTP/3는 분산 시스템의 성능과 효율성을 향상시키기 위한 새로운 기술입니다. gRPC는 이미 빠르고 효율적인 RPC 프레임워크로 알려져 있으며, HTTP/3는 최신 HTTP 프로토콜로서 낮은 지연 시간과 높은 성능을 제공합니다. 이 조합은 네...

Aug 18, 202461 min read

Go 언어 뉴스레터: //go:linkname 사용 제한에 대한 논의

이 기사는 Gemini를 이용해 작성된 것입니다. 토론 Go 표준 라이브러리 내부(특히 런타임 내부)에 접근하기 위해 //go:linkname을 과도하게 사용하면 Go 생태계의 많은 패키지에 의존하는 패키지가 표준 라이브러리 내부를 변경할 때 문제가 발생할 수 있습니다. 예를 들어, https://go.dev/cl/583756는 github.com/goccy/go-json이 런타임의 내부 타입 API를 대부분 복사했기 때문에 해당 패키지를 ...

Jun 22, 20241 min read
G

Go Developer Community

28 posts