24년 3월 전반기 뉴스레터
Table of contents
- 강력하고 빠른 우선 순위 큐!
- 고 프로그램에 내장시킬 수 있는 분산 캐시 라이브러리는 어떤가요?
- 자기만의 미디어 라이브러리 갖고 싶지 않나요?
- 고에 드디어 QUIC가 std로!
- 이미 고에는 엑셀을 편집할 수 있는 라이브러리가 있습니다.
- 고에서 다른 언어 가져와 쓰기
- 최근 추가된 제네릭 슬라이스 패키지에 대해 얼마나 알고 계신 가요?
- sqlc, 좋은 툴입니다, 그쳐?
- 저는 필드를 좀 더 제대로 보고 싶습니다
- postgresql을 이용할 때 장애 대응을 어떻게 하시나요?
- 데이터 전송을 위한 객체의 스펙은 명시적이야 합니다
- 아마도 저는 B 트리이어야 합니다,
- EdgeDB라고 아시나요?
- message queue, 하지만 postgres를 베이스로 한.
- 시스템 콜을 이용해서 더 빠른 패킷 전송 구현 하기
- Go 1.22에 for range에 올릴 수 있는 함수 스펙이 정의 되었습니다
- 고에는 사실 매우 성능이 좋은 웹 프레임워크가 있습니다
- 더 확실한 추적을 위해!
- OpenAPI를 생성하는 웹 프레임워크
- Go 1.22에는 라우팅 관련 기능도 추가되었습니다
- 노션과 옵시디언, 좋다고 생각합니다.
- Super Fast Web Framework in Zig
강력하고 빠른 우선 순위 큐!
디스크 백업 기능이 포함된!
필요하십니까?
고 프로그램에 내장시킬 수 있는 분산 캐시 라이브러리는 어떤가요?
레디스를 두는 의미가 퇴색되는 건 아니지만, 데이터의 실시간 정합성이 중요한 케이스가 아니라면 충분히 유용할 것으로 기대됩니다.
자기만의 미디어 라이브러리 갖고 싶지 않나요?
전 과거 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)
고에서 다른 언어 가져와 쓰기
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)
아마도 저는 B 트리이어야 합니다,
아님 말고.
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
고에는 사실 매우 성능이 좋은 웹 프레임워크가 있습니다
근데 중국에서 만든 거 아니냐 구요?
걱정 되면 오픈소스니까 검사하고 쓰시면 되죠.
더 확실한 추적을 위해!
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)