Skip to main content

Command Palette

Search for a command to run...

24년 3월 전반기 뉴스레터

Published
4 min readView as Markdown

강력하고 빠른 우선 순위 큐!

디스크 백업 기능이 포함된!

필요하십니까?

JustinTimperio/gpq: GPQ is a high performance embeddable double priority queue with complex priority ordering guarantees (github.com)


고 프로그램에 내장시킬 수 있는 분산 캐시 라이브러리는 어떤가요?

레디스를 두는 의미가 퇴색되는 건 아니지만, 데이터의 실시간 정합성이 중요한 케이스가 아니라면 충분히 유용할 것으로 기대됩니다.

buraksezer/olric: Distributed in-memory object store. It can be used as an embedded Go library and a language-independent service. (github.com)

EchoVault/EchoVault: Distributed in-memory data store with an emphasis on speed and reliability. (github.com)


자기만의 미디어 라이브러리 갖고 싶지 않나요?

전 과거 Lux라는 웹 라이브러리 셋을 구성할 때, 미디어도 서빙할 수 있는 기능을 추가하고 싶었습니다.

그때 생각해보니 저장이나 다른 무언가에 대한 대비가 하나도 안 되어 있었네요.

그런 저 같은 사람들을 위한 솔루션!

zoriya/Kyoo: A portable and vast media library solution. (github.com)


고에 드디어 QUIC가 std로!

들어옵니다.

quic package - golang.org/x/net/quic - Go Packages


이미 고에는 엑셀을 편집할 수 있는 라이브러리가 있습니다.

하지만 docx도 있으면 더 유용하겠군요.

gomutex/godocx: Go library for reading and writing Microsoft Docx (github.com)

qax-os/excelize: Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets (github.com)


고에서 다른 언어 가져와 쓰기

WASM을 끼얹은

tetratelabs/wazero: wazero: the zero dependency WebAssembly runtime for Go developers (github.com)


최근 추가된 제네릭 슬라이스 패키지에 대해 얼마나 알고 계신 가요?

Robust generic functions on slices - The Go Programming Language


sqlc, 좋은 툴입니다, 그쳐?

postgres도 섹시한 DB구요.

go도 훌륭한 언어입니다.

Go application setup with PostgreSQL, sqlx, goose migrations - YouTube


저는 필드를 좀 더 제대로 보고 싶습니다

마치 프로그램에 X-ray라도 찍은 듯이요.

yassinebenaid/godump: Go library to dump variables and data structures. (github.com)


postgresql을 이용할 때 장애 대응을 어떻게 하시나요?

저는 RDB는 레플리케이션 외에는 그다지 좋은 선택지가 막 떠오르진 않습니다.

샤딩도 장애로부터 데이터를 완전히 보호하는 것과는 거리가 있는 선택지니까요.

Writing a Postgres Logical Replication System in Golang | DoltHub Blog


데이터 전송을 위한 객체의 스펙은 명시적이야 합니다

이 분야에서 가장 유명한 건 프로토콜 버퍼라고 생각합니다.

그리고 잘 안 쓰이지만 뒤이어 등장한 플랫버퍼같은 게 존재하죠.

또 다른 선택지인 karmen이나 bebop은 또 어떨까요?

Protocol Buffers Documentation (protobuf.dev)

FlatBuffers: FlatBuffers

inkeliz/karmem: Karmem is a fast binary serialization format, faster than Google Flatbuffers and optimized for TinyGo and WASM. (github.com)

Bebop


아마도 저는 B 트리이어야 합니다,

아님 말고.

Prolly Trees | DoltHub Blog


EdgeDB라고 아시나요?

그거 말고, postgres 위에 구성된 그래프 형태의 데이터베이스입니다.

EdgeQL이랑 독자적인 쿼리 언어를 가지고 있으며, 이 언어는 예전 SQL도 잘 모르던 저 조차도 DB를 다룰 수 있게 해준 친절한 친구입니다.

EdgeDB | The post-SQL era has arrived


message queue, 하지만 postgres를 베이스로 한.

postgres만 있으면 그렇게 고성능과 안정성이 필요하지 않다면, nats와 kafka 대신 간단하게 구성해 보는 건 어떤가요??

Devious SQL: Message Queuing Using Native... | Crunchy Data Blog

LISTEN & NOTIFY 명령으로 구현하는 비동기식 작업: 한국 포스트그레스큐엘 홈페이지 (postgresql.kr)


시스템 콜을 이용해서 더 빠른 패킷 전송 구현 하기

High-Speed Packet Transmission in Go: From net.Dial to AF_XDP (toonk.io)


Go 1.22에 for range에 올릴 수 있는 함수 스펙이 정의 되었습니다

아직 실험적 단계에 지나지 않지만, 머지 않아 알아야 할 수 있으니 배워 볼까요?

Exploring Go's Functional Iterators (Range-over Functions) | Perfects.Engineering Blog


고에는 사실 매우 성능이 좋은 웹 프레임워크가 있습니다

근데 중국에서 만든 거 아니냐 구요?

걱정 되면 오픈소스니까 검사하고 쓰시면 되죠.

gnet - A high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go | gnet


더 확실한 추적을 위해!

More powerful Go execution traces - The Go Programming Language


OpenAPI를 생성하는 웹 프레임워크

go-fuego/fuego: Golang Fuego - web framework generating OpenAPI 3 spec from source code (github.com)


Go 1.22에는 라우팅 관련 기능도 추가되었습니다

서드파티에게 큰 위협이에요.

Routing Enhancements for Go 1.22 - The Go Programming Language


노션과 옵시디언, 좋다고 생각합니다.

전 못 쓰지만요.

Logseq: A privacy-first, open-source knowledge base

zadam/trilium: Build your personal knowledge base with Trilium Notes (github.com)

Outline – Team knowledge base & wiki (getoutline.com)


Super Fast Web Framework in Zig

zigzap/zap: blazingly fast backends in zig (github.com)

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