24년 2월 전반기 뉴스레터

·

3 min read

1월 하반기 뉴스레터를 예고도 없이 쉬어 죄송합니다. <(_ _)>


postgres에서 full text search engine를 추구하면 안 되는 걸까?

라고는 했지만 이미 GIN 인덱스를 이용해서 한국어 full text search도 가능하고, 그 성능도 꽤 좋은 것같습니다.

데이터 삽입 성능만 앞으로 어떻게 해결할 수 있다면 ES의 아성에 도전해볼 수 있을까요?

PostgreSQL GIN 인덱스를 통한 LIKE 검색 성능 개선 | by 김병묵 | VUNO SW Dev | Medium

Postgres is Enough (github.com)

When does Postgres stop being good enough for full text search? (meilisearch.com)


고 언어에서 인터페이스 모킹 어떻게 하시나요?

일일이 항상 true를 반환하는 거라도 만드시나요?

그런 단순한 반환값이라면 자동으로 만들어주면 좋을 텐데 말이죠?

Meet Moq: Easily mock interfaces in Go | by Mat Ryer | Medium

matryer/moq: Interface mocking tool for go generate (github.com)


저도 풀 텍스트 서치 엔진에 대한 꿈이 있습니다.

선행되어야 하는 것 중 하나가 이 문장이 어떤 언어로 되어 있는가 판단하는 것이지요.

pemistahl/lingua-go: The most accurate natural language detection library for Go, suitable for short text and mixed-language text (github.com)


파이썬으로 만들어보는 검색 엔진

A search engine in 80 lines of Python (alexmolas.com)


라인에서 고 자료구조 라이브러리를 낸 적 있는 거 아십니까?

High performance! Thread safe! Lock free! 합니다만 자바 향이 좀 있네요.

하지만 내부 구현체들은 하나하나 좋은 것같습니다.

line/garr: Collection of high performance, thread-safe, lock-free go data structures (github.com)


Zanzibar라고 들어 보셨을 겁니다.

구글에서 발표했던 글로벌 권한 인증 시스템인데, ory에서 고 언어로된 구현체를 하나 내줬군요.

ory/keto: Open Source (Go) implementation of "Zanzibar: Google's Consistent, Global Authorization System". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. (github.com)


이런 로드 밸런싱은 어때요?

외부 연결이 아니라 내부 서비스 간 로드 밸런싱에 유용해 보이는 도구입니다.

https://github.com/YanKawaYu/go-socket


Embedded Redis for go?

레디스가 진짜 고랭 앱에 임베딩된 건 아니지만 비슷한 느낌은 낼 수 있어 보입니다.

심지어 이 친구는 고랭 앱에 올라가면서 분산 저장소로도 활용할 수 있다구요?

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


API를 만드는 새로운 방법

마이크로소프트가 typespec이라는 물건을 새로 출시했습니다.

독자적인 IDL을 기반으로 openapi 문서나 protobuf 파일 등을 생성하는 문서로, 기존의 openapi 문서를 작성하는 것의 불편한 점을 잘 해소할 수 있지 않을까 생각합니다.

TypeSpec

deepmap/oapi-codegen: Generate Go client and server boilerplate from OpenAPI 3 specifications (github.com)


고 언어 객체에서 타입스크립트 객체로

하다 못해 고 언어로 된 구조체를 타입스크립트 클래스로 바꿔주기만 해도 전 매우 만족스러울 것같았습니다.

여태 만족스러운 물건을 찾진 못 했는데, 이 친구라면 제 꿈을 이뤄줄지도...?

gzuidhof/tygo: Generate Typescript types from Golang source code (github.com)


고 언어와 타입스크립트 사이의 브릿지

그래서 전 고 언어와 타입스크립트 서버 간 통신도 가능했으면 좋겠습니다.

BlueRPC : End-to-End Go-Typescript Type Safety (bluerpc-docs.onrender.com)


Yet Another HTTP Server

hossein1376/grape: Modern, zero-dependency HTTP library for Go (github.com)


리액트 어떻게 공부하시나요?

관리자 대시보드 한번 만들어 보시는 것도 좋지 않을까요?

How to Build an Admin Dashboard with React (freecodecamp.org)


20060102150405

Golang - Advanced Date-Time Utility functions | by Dharti R | Jan, 2024 | Canopas

maniartech/gotime: The gotime is a Go library for simplified date and time processing, offering intuitive parsing, formatting, and relative time calculations. (github.com)


컨테이너의 네트워크가 어떻게 동작하는 지 알고 계신 가요?

전 대충만 아는데...

How Container Networking Works: a Docker Bridge Network From Scratch (iximiuz.com)


자바...는 너무 어렵지만

postgres에 관련된 내용이니 읽어 봐야...

@Transactional의 해로움 (channel.io)


리액트 맛 고 언어 UI 라이브러리

햝짝

goui-org/goui: An experimental web framework for creating user interfaces (github.com)


Very Fast Stream Multiplexer for Golang

xtaci/smux: A Stream Multiplexing Library for golang with least memory usage(TDMA) (github.com)


언제나 SIMD 최적화를 보면 신기해요.

하지만 제가 할 순 없죠.

From slow to SIMD: A Go optimization story (sourcegraph.com)