제 87호

Ruby on Rails 87번째 소식

터미널, self-hosting, 그리고 더 작은 추상화까지 — Ruby는 지금 더 단순하고 강력한 방향으로 진화하고 있어요.

이번 주 Ruby와 Rails 소식은 묘하게 하나의 흐름으로 이어져 있어요. 웹 브라우저를 벗어나 터미널로 향하는 Sidekiq의 kiq, self-hosting을 더 쉽게 만들려는 ONCE, Basecamp의 CLI와 Agent Skills, 그리고 IRB의 작은 사용성 개선까지 살펴보면, 요즘 Ruby 생태계는 더 가볍고, 더 직접적이고, 더 개발자 친화적인 도구를 향해 움직이고 있다는 생각이 들어요. 여기에 Rails 코어를 떠난 뒤에도 자신만의 방식으로 생태계를 넓혀가고 있는 Kasper Timm Hansen의 이야기는, Rails의 힘이 꼭 프레임워크 본체 안에서만 나오는 것이 아니라는 점도 다시 보여줘요.

이번 소식에서는 단순히 “새로운 릴리스가 나왔어요”를 넘어서, Ruby 커뮤니티가 어떤 방향을 바라보고 있는지 함께 느껴보시면 좋겠어요. 터미널, self-hosting, 더 작은 추상화, 더 나은 개발 경험, 그리고 Rails 바깥에서 Rails를 확장하는 시도까지, 이번 주에도 Ruby는 여전히 흥미로운 방식으로 진화하고 있어요.

🎧 10분 요약 오디오로 들어보시겠어요? → YouTube로 듣기

새로운 소식

Sidekiq, 웹을 떠나 터미널로 가요 — ‘kiq’가 보여주는 새로운 가능성

Sidekiq를 만든 Mike Perham이 터미널에서 실행되는 새로운 관리 도구 ‘kiq’ 를 공개했어요. 최근 Charm과 Ratatui 같은 프레임워크 덕분에 텍스트 기반 인터페이스(TUI)를 만드는 것이 훨씬 쉬워지면서, 다시 한 번 터미널 UI가 주목받고 있어요. 과거 메인프레임 시절처럼 키보드만으로 빠르게 작업을 처리할 수 있는 환경이 실제 업무에서는 더 효율적일 수 있다는 점을 강조하고 있어요.

이번에 공개된 kiq는 Sidekiq의 Web UI를 완전히 대체하는 것은 아니지만, 작업 목록을 조회하고 필터링한 뒤 선택한 작업을 삭제하거나 재실행하는 등의 주요 기능을 키보드만으로 빠르게 처리할 수 있게 해줘요. 아직은 베타 단계라서 프로덕션 환경에서 사용하기에는 부족하지만, 방향성 자체는 꽤 인상적이에요.

Mike는 웹 브라우저가 많은 업무에 있어서 오히려 과도하게 복잡한 인터페이스라고 이야기해요. HTML, CSS, JavaScript를 모두 다뤄야 하는 개발 복잡도뿐 아니라 보안 측면에서도 부담이 있기 때문이에요. 반면 터미널 기반 인터페이스는 단순하고 빠르며, 반복적인 업무를 처리할 때 훨씬 효율적일 수 있어요. 특히 CRUD 중심의 어드민 작업이나 운영 도구에서는 이런 장점이 더 크게 드러나요.

이 실험은 Rails 생태계에도 흥미로운 질문을 던져요. ActiveAdmin이나 RailsAdmin 같은 기존 웹 기반 어드민 도구를 꼭 유지해야 할까, 혹은 일부 영역은 터미널 UI로 더 잘 해결할 수 있을까 하는 고민이에요. 실제로 Sidekiq 관리나 커뮤니티 모더레이션 같은 작업은 텍스트 기반 인터페이스가 더 잘 맞을 수도 있어요.

더 나아가 Ratatui 위에 Ruby 전용 애플리케이션 프레임워크가 등장할 가능성도 언급되고 있어요. Rooibos 같은 시도가 이미 나오고 있고, 이 영역은 아직 초기 단계라서 새로운 오픈소스 기회도 많아 보여요. 이번 kiq는 단순한 실험을 넘어서, Rails 이후의 인터페이스 방향성에 대한 힌트를 주는 움직임이라고 볼 수 있어요.

블로그 보기: https://www.mikeperham.com/2026/03/10/sidekiq-in-the-terminal/

DHH, ONCE를 다시 꺼내 들었어요 — Docker 앱을 위한 가장 쉬운 self-hosting

DHH가 Docker 기반 웹 애플리케이션을 손쉽게 운영할 수 있도록 돕는 ONCE를 다시 공개했어요. 이번에는 단순한 실험 수준이 아니라, 실제 서비스 운영까지 가능한 풀스택 애플리케이션 서버 형태로 발전했어요. Basecamp 내부에서 사용하는 Campfire, Writebook 같은 서비스뿐 아니라, 개인이 만든 다양한 앱까지 동일한 방식으로 운영할 수 있도록 설계되어 있어요.

ONCE의 핵심은 “self-hosting을 최대한 쉽게 만든다”는 점이에요. Docker로 구성된 앱이라면 별도의 복잡한 인프라 설정 없이도 배포하고 운영할 수 있고, 무중단 배포(Zero-downtime), 자동 백업, 그리고 터미널 기반 TUI 인터페이스까지 기본으로 제공해요. 특히 TUI를 통해 서버 상태를 직관적으로 확인하고 제어할 수 있는 점이 인상적인데, 최근 터미널 UI 흐름과도 맞닿아 있는 흐름이에요.

함께 공개된 Writebook도 주목할 만해요. Basecamp가 만든 글쓰기/출판 도구로, 이번에 MIT 라이선스로 오픈소스화되면서 누구나 자유롭게 사용할 수 있게 되었어요. ONCE와 함께 사용하면, 직접 호스팅하는 퍼블리싱 플랫폼을 매우 간단하게 구축할 수 있는 조합이에요.

이번 발표는 단순히 새로운 툴 하나가 아니라, DHH가 계속 강조해온 방향성을 잘 보여줘요. 클라우드에 종속되지 않고, 개인이 직접 소유하고 운영하는 소프트웨어를 더 쉽게 만들자는 흐름이에요. Kamal 이후로 이어지는 Basecamp의 메시지가 ONCE를 통해 한층 더 명확해졌다고 볼 수 있어요.

발표 트윗 보기: https://x.com/dhh/status/2033580762402902188?s=20
ONCE 레포 보기: https://github.com/basecamp/once

IRB, 시작 화면이 더 친절해져요 — 작은 변화지만 개발 경험을 바꿔요

Ruby의 REPL 도구인 IRB에 새로운 시작 화면 기능이 추가될 예정이에요. Stan Lo가 공유한 PR에 따르면, 앞으로 IRB를 실행하면 단순한 프롬프트 대신 3줄짜리 스타트 배너가 표시돼요. 여기에는 브라유(점자) 스타일의 Ruby 로고, 현재 Ruby 버전 정보, 그리고 유용한 팁이 함께 보여지고, 현재 작업 디렉토리까지 확인할 수 있어요.

이 변화는 단순한 UI 개선처럼 보이지만, 개발자 경험 측면에서 꽤 의미가 있어요. IRB를 실행했을 때 지금 어떤 환경인지 빠르게 파악할 수 있고, 매번 바뀌는 팁을 통해 IRB의 다양한 기능을 자연스럽게 익힐 수 있기 때문이에요. 특히 초보자에게는 진입 장벽을 낮추고, 숙련자에게도 작은 생산성 향상을 제공할 수 있는 변화예요.

또한 이 배너는 irb 명령으로 실행할 때만 표시되고, binding.irb나 IRB.start처럼 디버깅 용도로 사용하는 경우에는 나타나지 않아요. 필요하다면 .irbrc에서 설정을 통해 언제든지 비활성화할 수 있도록 배려도 되어 있어요.

이처럼 IRB는 눈에 띄지 않는 작은 개선을 꾸준히 쌓아가면서, Ruby 개발 경험을 더 매끄럽게 만들고 있어요. 이번 업데이트 역시 화려하진 않지만, 매일 사용하는 도구를 조금 더 즐겁고 유용하게 만들어주는 변화라고 볼 수 있어요.

Stan Lo의 트윗보기: https://x.com/_st0012/status/2033173507337572667?s=20️

Basecamp, CLI와 AI 에이전트를 연결해요 — ‘basecamp-cli’ 출시

Basecamp가 새로운 도구인 basecamp-cli를 공개했어요. 이 도구는 단순한 CLI를 넘어서, AI 에이전트와 함께 Basecamp를 다룰 수 있는 ‘Agent Skills’ 개념을 도입한 것이 핵심이에요. 이제 Basecamp의 다양한 작업을 터미널에서 직접 실행하거나, AI가 대신 수행하도록 연결할 수 있는 기반이 마련된 셈이에요.

기존에는 Basecamp를 사용하려면 웹 UI를 중심으로 작업해야 했지만, basecamp-cli를 사용하면 프로젝트 조회, 할 일 관리, 메시지 확인 같은 작업을 터미널 환경에서 빠르게 처리할 수 있어요. 특히 스크립트나 자동화와 결합하면 반복적인 업무를 훨씬 효율적으로 다룰 수 있는 가능성이 열려요.

여기서 더 흥미로운 부분은 ‘Agent Skills’ 개념이에요. 단순히 CLI 명령을 실행하는 수준이 아니라, AI 에이전트가 이해할 수 있는 형태로 기능을 정의해서 AI가 Basecamp 작업을 직접 수행할 수 있도록 만든 구조예요. 즉, “이 프로젝트 상태를 정리해줘” 같은 요청을 AI가 이해하고, CLI를 통해 실제 작업까지 이어지게 할 수 있는 방향이에요.

이 흐름은 최근 Basecamp가 보여주고 있는 방향성과도 이어져요. ONCE, Writebook, 그리고 이번 basecamp-cli까지 모두 공통적으로 터미널 중심 경험과 AI를 결합하려는 시도라고 볼 수 있어요. 웹 UI 중심의 협업 도구에서 벗어나, 개발자 친화적인 인터페이스와 자동화를 강화하는 흐름이에요.

basecamp-cli 레포지토리 보기: https://github.com/basecamp/basecamp-cli

Rails 코어를 떠난 뒤에도, Rails는 계속 확장되고 있어요

Kasper Timm Hansen이 “Rails 코어를 그만둔 지 4년, 그동안 무엇을 해왔는가”라는 글을 통해 자신이 Rails 코어 팀을 떠난 뒤 만든 작업들을 돌아봤어요. 이 글은 단순한 근황 소개라기보다, Rails 바깥에서도 Rails 생태계를 얼마나 크게 확장할 수 있는지를 보여주는 기록에 가까워요. Kasper는 Rails 코어에서 수년간 리뷰와 기여자 육성에 힘썼고, 코어 팀을 나온 뒤에는 더 작고 선명한 개념을 가진 오픈소스 gem들을 꾸준히 만들어 왔다고 설명해요.

그가 강조하는 방향은 분명해요. 거대한 추상화보다, 개발자가 문제를 더 잘 이해하고 더 자연스럽게 설계하도록 돕는 작고 개념이 뚜렷한 도구를 만드는 것이에요. 예를 들어 ActiveRecord::AssociatedObject는 비대해진 Active Record 모델에서 협력 객체를 더 자연스럽게 분리할 수 있게 해주고, ActionController::StashedRedirects는 로그인이나 sudo 플로우처럼 컨트롤러 간 이동 흐름을 더 읽기 쉽게 정리해줘요. 또 ActiveJob::Performs는 모델 메서드를 백그라운드 잡으로 자연스럽게 연결해 boilerplate를 줄이는 접근을 제안해요.

뷰 레이어에 대한 실험도 인상적이에요. nice_partials는 Rails partial에 slots 개념을 더해 더 선언적인 뷰 작성을 돕고, showcase는 partial, component, Stimulus controller를 문서화하고 미리보기할 수 있게 해줘요. 여기에 brb처럼 ERB 문법 자체를 다시 생각해보는 시도까지 더해지면서, Kasper가 Rails를 단지 유지하는 것이 아니라 더 읽기 쉽고, 더 설명 가능하고, 더 작은 단위로 다듬는 방향에 관심이 있다는 점이 분명하게 드러나요.

테스트와 설계에 대한 고민도 이어져요. Oaken은 fixture와 factory의 단점을 넘어서 더 빠르고 더 서사적인 테스트 데이터 구성을 지향하고, riffing은 실제 코드를 확정하기 전에 scratchpad에서 Ruby를 흘려 쓰듯 탐색하며 도메인 모델을 발견하는 설계 방식이에요. 특히 이 부분은 “LLM 시대에도 여전히 유효하다”는 설명과 함께, 빠르게 배우고 일찍 문제를 발견하는 설계 습관의 중요성을 강조해요.

글의 마지막에서는 앞으로의 작업도 소개해요. gem.coop에서 구동 중인 새로운 앱 peak, Ruby를 빠르게 설치하는 도구 rv, 그리고 Rails·Ruby 생태계 전반을 지원하는 협업 조직 Spinel까지, Kasper는 Rails 코어를 떠난 뒤에도 여전히 Ruby 커뮤니티 한복판에서 새로운 기반을 만들고 있어요. 이번 글은 “코어 팀을 나간 뒤 무엇을 했는가”에 대한 답이면서, 동시에 Rails 바깥에서 Rails를 더 강하게 만드는 방법에 대한 사례 모음처럼 읽혀요.

블로그 보기: https://kaspth.com/posts/i-quit-rails-core-4-years-ago-heres-what-ive-been-up-to


💼 Ruby on Rails 채용 공고

전체 보기 →