Diesel 쓰는 사람 지금 멈춰

Tech Digest 5월 14일 - 소프트웨어 아키텍처, Rust ORM, goshs
DIGEST
  • rust-analyzer가 주말 기여자를 모은 진짜 구조
  • Diesel·SQLx·SeaORM·Rusqlite, 1년 운영 후기
  • goshs, python http.server를 끝낸 단일 바이너리

5월 14일 GeekNews TOP3는 전부 “현장 감각”으로 묶인다. 강의가 아니라 책임을 떠안았을 때 배우는 아키텍처, 마케팅 문구가 아니라 운영 코드를 굴려본 ORM 비교, python3 -m http.server로는 안 되는 순간을 메우는 단일 바이너리 도구. 셋 다 결정의 비용을 줄여주는 글들이다.

rust-analyzer는 왜 주말 기여자를 끌어모았나

아키텍처는 책임을 떠안았을 때 배운다

rust-analyzer 메인테이너 matklad가 정리한 글. 핵심은 한 줄이다. 소프트웨어 설계는 강의나 사이드 프로젝트가 아니라 “문제가 자기 일이 되는 순간” 본격적으로 학습된다. 본인도 IntelliJ Rust에서야 설계가 자기 책임이 되면서 실수와 학습의 사이클이 돌기 시작했다고 회고한다.

인센티브 구조부터 설계한다

Conway’s Law를 인용하며 더 나아간다. 산업 코드와 과학 코드의 차이는 지식이 아니라 “PhD가 3개월 안에 논문을 내야 한다” 같은 인센티브에서 온다는 것. 그래서 rust-analyzer는 의도적으로 ① rustc 빌드 불필요 ② stable에서 빌드 ③ C 의존성 제거 ④ 전체 테스트 몇 초 안에 완료를 고집했다. 풀타임 컴파일러 엔지니어와 “주말 한두 시간”을 쓰는 기여자를 동시에 끌어들이기 위한 사회적 설계였다.

기능과 spine을 다른 기준으로 다룬다

PR 진입 장벽은 “해피 패스 동작 + 테스트”로 낮촤다. 단, 두 가지 안전장치가 깔려 있다. 각 기능은 catch_unwind로 격리되고, 데이터는 불변 스냅샷으로만 다뤄 다른 부분을 오염시킬 수 없다. 반면 그 위를 떠받치는 핵심 spine 코드에는 훨씬 엄격한 품질 기준이 적용된다. “어디는 느슨하고 어디는 빡빡한지” 분리한 것이 기여자 풀과 안정성을 동시에 잡은 비결이다.

Tech Insight — “오픈소스 기여자가 안 모인다”는 문제는 보통 코드가 아니라 빌드 시간, 테스트 속도, PR 머지 정책 같은 사회적 마찰에서 비롯된다. 사내 프로젝트에 외부 기여자나 주니어를 끌어들이고 싶다면 README보다 먼저 “한 줄 변경 PR이 머지되기까지 몇 분이 걸리는가”를 측정해야 한다.


Rust DB 라이브러리 4종, 1년 운영 후기

컴파일러로 SQL을 검증한다는 것

2026년 2월 기준, Diesel 2.3.6 / SQLx 0.8.6 / SeaORM 2.0 / Rusqlite 0.38을 직접 프로덕션에 굴려본 비교 글이다. Diesel은 스키마에서 Rust 타입을 생성해 컴파일 타임에 모든 쿼리를 검증한다. 컬럼 3개 이름을 바꾸자 수정이 필요한 모든 쿼리가 컴파일러 에러로 한 번에 드러났다는 일화가 핵심이다. 비동기는 diesel-async로 가능하지만 “덼붙인 것” 수준이고, 동적 쿼리에서 타입 시스템과 싸우는 비용이 크다.

DSL 없이 검증을 받는 SQLx

SQLx는 ORM이 아니다. raw SQL 문자열을 컴파일 시점에 실제 DB에 연결해 검증한다. 새 DSL 학습 없이 컴파일 타임 안전성을 얻고, 비동기는 첫날부터 네이티브다. 단점은 컴파일에 DB가 필요하다는 점(오프라인 모드는 .sqlx 캐시 파일 관리 필요)과 관계 로딩이 없어 복잡한 데이터 그래프는 SQL을 일일이 써야 한다는 것.

Django/Rails 출신을 위한 SeaORM 2.0

SeaORM 2.0은 런타임 동적 쿼리, 일대다·다대다 관계, Entity Loader로 N+1 해결까지 풀 ORM 경험을 제공한다. 약점도 명확하다. 스키마 불일치는 컴파일이 아닌 런타임 에러로 드러나고, 생태계가 아직 작아 Stack Overflow 답이 적다. 동적 쿼리 빌드의 약간의 런타임 오버헤드도 있지만 99% 애플리케이션에서는 무의미한 수준이다.

SQLite라면 Rusqlite, 끝

CLI·데스크톱·임베디드 시스템에서 SQLite를 쓴다면 논쟁할 필요가 없다. bundled 피처로 SQLite를 바이너리에 직접 컴파일해 시스템 의존성이 사라지고, 사용자 정의 함수·가상 테이블·전문 검색·JSON 확장 같은 SQLite 고유 기능이 그대로 노출된다. 비동기는 안 되니 웹 서버라면 SQLx의 SQLite 지원을 쓰는 편이 낫다.

Tech Insight — 글의 마지막 결론이 더 중요하다. “대부분의 프로젝트에서는 어떤 걸 골라도 잘 돌아간다.” 선택 기준은 성능 벤치마크가 아니라 팀의 사고방식이다. SQL로 사고하면 SQLx, 컴파일러에 맡기고 싶으면 Diesel, 익숙한 ORM 패턴을 원하면 SeaORM. 분석 마비에 빠지지 말고 빌드부터 시작하라는 메시지가 핵심이다.


goshs, 단일 바이너리로 끝내는 파일 서버

python3 -m http.server로는 안 되는 순간

goshs는 Go로 작성된 단일 바이너리 파일 서버다. HTTP/S부터 WebDAV, SFTP, SMB, LDAP/S까지 한 명령어로 띄운다. Apache·nginx 설정 파일을 만지지 않아도 HTTPS 서빙·인증·파일 공유가 한 줄로 끝난다. 자체 서명 TLS는 물론 Let’s Encrypt 자동 발급, 사용자 인증서, IP 화이트리스트, 파일 기반 ACL까지 다층 보안이 기본 탑재.

공유와 보안 기능이 풍부하다

드래그 앤 드롭 업로드, 대량 ZIP 압축 다운로드, QR 코드 생성, Webhooks, localhost.run 터널링, JSON API까지 들어 있다. 토큰 기반 공유 링크는 다운로드 횟수 제한과 시간 제한을 걸 수 있어 임시 파일 전달에 유용하다. 서버 모드도 다양하다. 읽기 전용, 업로드 전용, 삭제 불가, 사일러트, 인비저블 모드를 상황에 맞춰 고를 수 있다.

모의 침투 기능까지 내장

레드팀·페네트레이션 테스트 도구로도 쓸 수 있다. SMB NTLM 해시 캐프쳐와 크래킹, LDAP 자격 증명 캐프쳐, DNS/SMTP 콜백 수신이 가능하다. LDAP 캐프쳐 시 JNDI 모드로 Log4Shell까지 활용할 수 있고 리버스 셰 캐처와 페이로드 생성기도 포함된다. 설치는 macOS Homebrew, 리눅스 apt, 윈도우 Scoop, Go install, Docker 모두 지원, 라이선스는 MIT.

Tech Insight — 사내 PoC, 고객사 데모, 데이터 임시 전달 같은 “5분짜리 파일 서버” 요구가 잦다면 nginx 설정을 들이는 것보다 goshs 한 줄이 압도적으로 빠르다. 다만 모의 침투 기능이 내장된 만큼 사내 보안 정책에서 설치 가능 여부를 먼저 확인할 것. 같은 바이너리가 합법적 도구이자 공격 도구가 될 수 있다.

관련 글

출처

  1. matklad – Learning Software Architecture
  2. Aarambh Dev Hub – Rust ORMs in 2026
  3. GitHub – patrickhener/goshs
  4. GeekNews (hada.io) TOP3

AI Biz Insider · Tech Digest · aibizinsider.com


AI Biz Insider에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.

코멘트

댓글 남기기

AI Biz Insider에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기

AI Biz Insider에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기