Protocol Buffers: 아마추어의 재앙?

2025-09-05

이 글은 Protocol Buffers(protobuf)의 설계 결함을 비판하며, 타입 시스템이 부실하고 설계가 임시변통적이며 코드 전체에 문제를 일으킨다고 주장합니다. protobuf의 많은 제약은 이미 해결된 문제에 대한 부적절한 해결책에서 비롯되며, 합성성이 부족합니다. 예를 들어, oneof 필드를 반복할 수 없거나 map 필드의 다양한 제약 등이 있습니다. 이 글은 protobuf의 후방 및 전방 호환성 주장도 비판하며, 코드베이스를 오염시키고 코드 작성 및 유지보수를 어렵게 만든다고 언급합니다. 저자는 protobuf가 Google과 같은 대기업에는 적합하지만 대부분의 기업에는 적합하지 않으며, protobuf 사용을 포기할 것을 개발자들에게 권장합니다.

더 보기
개발

1년에서 몇 주로: 컴파일러의 프로그램 그래프 공유 최적화

2025-05-13

저자는 1년 넘게 컴파일러의 프로그램 그래프 직렬화 문제를 해결하기 위해 노력했습니다. 초기 해결책은 지저분하고 유지 관리가 어려웠습니다. 다른 사람들과 협력하여 문제를 그래프 내에서 가장 낮은 단일 공통 조상(LSCA)을 찾는 것으로 재정의함으로써 기존 LCA 알고리즘 라이브러리와 정교한 지연 평가 프로그래밍 기법을 활용했습니다. 결과적으로 원래 코드의 3분의 1 길이에 불과한 선형 시간의 우아한 솔루션을 얻었으며, 성능 병목 현상을 효과적으로 해결했습니다.

더 보기