Go에 대한 10년간의 불만: 이 프로그래머가 여전히 Go를 싫어하는 이유

2025-08-22

한 프로그래머가 10년 동안 Go 언어를 비판하면서 여러 가지 답답한 결함을 강조합니다. 문제는 가독성 및 버그 문제로 이어지는 비논리적인 에러 변수 범위, 복잡성을 증가시키는 두 가지 유형의 nil, 서투른 조건부 컴파일로 인한 낮은 이식성, 예측할 수 없는 append 함수 동작, 리소스 관리를 위한 유연성이 부족한 defer 문, 예외를 무시하는 표준 라이브러리, UTF-8 이외의 인코딩에 대한 불충분한 지원, 비효율적인 메모리 관리 등이 있습니다. 저자는 이것들이 기술적인 문제가 아니라 근본적인 설계 결함이라고 주장하며 Go가 훨씬 더 뛰어날 수 있었을 것이라고 말합니다.

더 보기
개발

시스템 콜 제로: io_uring을 사용한 고성능 웹 서버 구축

2025-08-22

이 글에서는 고성능 웹 서버 구축의 발전 과정을 설명합니다. 초기 pre-forking부터 select/poll, epoll을 거쳐, 마침내 io_uring을 사용하여 시스템 콜 제로를 달성했습니다. 저자는 io_uring을 사용하여 모든 작업을 비동기적으로 커널 큐에 추가함으로써 빈번한 시스템 콜 오버헤드를 피하는 실험적인 웹 서버인 tarweb을 개발했습니다. kTLS와 디스크립터리스 파일을 결합하여 성능을 더욱 향상시켰습니다. 메모리 관리 및 io_uring의 안전성 문제와 같은 과제가 남아 있지만, 이 프로젝트는 고병렬 환경에서 웹 서버 성능을 크게 향상시킬 수 있는 가능성을 보여줍니다.

더 보기