안녕하세요,
여전히 한낮은 무덥지만, 벌써 8월의 끝자락에 와 있다는 게 믿기지 않네요. 아쉬움이 남는 여름이지만, Rails 커뮤니티에서는 시원한 소식들이 끊이지 않고 있어요. SF Ruby 2025의 전체 일정과 스타트업 데모 공개부터, 37signals의 새로운 푸시 알림 젬, Evil Martians의 Rails 하이프 사이클 분석, 그리고 Rails와 Discourse의 최신 업데이트까지 다양한 이야기를 담아왔습니다.
이번 호도 Rails와 Ruby가 얼마나 활발히 진화하고 있는지 느낄 수 있는 알찬 소식들로 준비했으니, 커피 한 잔과 함께 가볍게 읽어보시면 좋겠어요.
🎧 10분 요약 오디오로 들어보시겠어요? → YouTube로 듣기
새로운 소식
SF Ruby 2025: 스타트업과 일정 공개
Irina Nazarova가 SF Ruby 2025의 새로운 소식을 발표했어요.
-
루비 스타트업 소개: Rails 기반 스타트업들이 참가해 10분간 제품 데모를 진행해요.
-
전체 일정 공개: 컨퍼런스는 2일간 열리며, 3개 트랙(워크숍 포함)으로 진행돼요. 워크숍은 사전 신청이 필요해요.
-
스폰서 발표: Chime, Bolt.new, Gusto, Temporal, Avo 등 다양한 기업이 후원해요.
-
장소 안내: 샌프란시스코의 마리나 지역에서 열리며, Golden Gate 다리 전망을 즐길 수 있어요.
자세한 내용은 공식 공지에서 확인할 수 있어요.
SF Ruby 2025: Rails 스타트업 데모 공개
Irina Nazarova가 SF Ruby 2025에서 데모를 선보일 10개의 Ruby on Rails 스타트업을 소개했어요. Rails와 Ruby 기반으로 빠르게 성장 중인 기업들로, 실제 제품 데모를 통해 참가자들에게 영감을 줄 예정이에요.
데모 참여 스타트업
-
Bolt.new: 코드 없는 풀스택 웹앱 빌드·배포 도구 (출시 2024, 5개월 만에 ARR $40M 달성)
-
Lago: 오픈소스 요금·과금·사용량 기반 청구 플랫폼 (자체 호스팅, YC 지원)
-
Stepful: 온라인 헬스케어 직무 훈련 플랫폼 (고졸 학력자도 4개월 만에 수료 가능)
-
AccessGrid: 50개 이상의 DESFire 리더와 호환되는 모바일 NFC 인증 API
-
Binti: 아동 복지 SaaS (위탁·입양 절차 간소화)
-
Suppli: 건설 업계를 위한 B2B 결제·수금·회계 자동화 플랫폼
-
NexHealth: 헬스케어 기관을 위한 환자 경험 관리 플랫폼
-
Simple AI: 세일즈·지원·스케줄링을 위한 보이스 AI 에이전트
-
Sixfold: 보험사를 위한 GenAI 플랫폼 (언더라이팅 자동화, 리스크 분석)
-
Cactus: 1인 기업·소규모 비즈니스를 위한 AI 코파일럿 (행정 및 예약 관리 지원)
Irina는 “매일 Rails와 Ruby 스타트업에서 영감을 얻는다. 이번 컨퍼런스에서 여러분도 그 에너지를 직접 느낄 수 있을 것”이라고 전했어요.
자세한 내용은 Irina Nazarova의 트윗에서 확인할 수 있어요.
새로운 Gem 공개: Action Native Push
37signals의 Jacopo Beschi가 action_native_push gem을 공개했어요. 이 gem은 Rails 애플리케이션에서 모바일 푸시 알림(iOS/Android)을 직접 전송할 수 있도록 지원해요.
왜 만들었을까?
-
Amazon SNS와 Pinpoint를 대체하기 위해 개발됨
-
클라우드 탈출 전략의 일환으로 자체 인프라를 구축
-
Basecamp와 HEY에서 실제 사용 중이며, 하루 천만 건 이상의 푸시 알림을 안정적으로 처리
주요 특징
-
HTTP/2 기반 APNs 연결로 이전 AWS Pinpoint보다 작업 속도가 크게 단축됨
-
Google FCM과 Apple APNs 모두 지원
-
자동 처리 기능: 재시도, 속도 제한(rate-limiting), 사용 불가 기기 토큰 정리
-
Rails Active Job과 자연스럽게 연동되어, 간단한 코드로 푸시 알림 전송 가능
device = ApplicationPushDevice.create!(
name: "iPhone 16",
token: "기기 토큰",
platform: "apple"
)
notification = ApplicationPushNotification.new(
title: "Hello world!",
body: "Welcome to Action Native Push"
)
notification.deliver_later_to(device)
릴리스
-
현재 버전 0.1.0이 공개됨
-
자세한 내용은 GitHub 저장소에서 확인 가능
출처: Introducing Action Native Push
Rails는 어떻게 하이프 사이클을 이겨냈을까?
Evil Martians가 Rails가 하이프 사이클(Hype Cycle) 을 통과하며 살아남은 과정을 정리했어요.
하이프 사이클이란?
가트너(Gartner)가 정의한 기술의 생명 주기 모델로, 새로운 기술이 어떤 과정을 거쳐 자리 잡는지를 설명해요. 다섯 단계는 다음과 같아요:
-
기술 촉발 (Technology Trigger): 혁신적인 아이디어나 도구가 등장해 관심을 모음
-
과도한 기대의 절정 (Peak of Inflated Expectations): 초기 성공 사례와 언론의 주목으로 과도한 기대 형성
-
환멸의 골짜기 (Trough of Disillusionment): 한계가 드러나면서 실망과 회의론이 확산
-
깨달음의 비탈길 (Slope of Enlightenment): 실질적 가치와 적용 사례가 드러남
-
생산성의 안정기 (Plateau of Productivity): 검증된 기술로 자리 잡아 널리 사용됨
Rails의 사례
-
절정기(2005~2015): YC 스타트업 90%가 Rails 기반, Shopify·Airbnb·GitHub 등이 성장
-
환멸기(2016~2020): 대규모 확장 한계로 “Rails는 죽었다”는 비판, 그러나 Shopify(🔥YJIT), Stripe(🔥Sorbet), Evil Martians(🔥AnyCable) 등은 오히려 기술 투자 강화
-
깨달음의 시기(2021~2025): GitLab, Coinbase, Instacart IPO, Bolt.new·Whop 급성장, Chime·Figma IPO → Rails는 검증된 생산성 프레임워크로 자리 매김
Rails가 살아남은 이유
-
“빅 텐트(Big Tent)” 설계: 주요 컴포넌트를 유연하게 교체 가능 → 생태계 혁신 수용
-
실질적 가치: 생산성과 안정성, 성숙한 커뮤니티가 지속적 선택을 이끎
-
Rails 8: 성능 개선(YJIT/ZJIT), 타입 안정성(Sorbet), 현대적 프런트엔드(Hotwire/Inertia)까지 모두 지원
교훈은 간단해요. 기술 선택은 유행이 아니라 실용적 가치와 지속성에 기반해야 한다는 거예요. Rails는 이를 입증하며 스타트업에 여전히 최적의 선택지로 남아 있어요.
자세한 내용은 Evil Martians 블로그에서 확인할 수 있어요.
strftime 의 대안: Rails Initializer 활용하기
David Teren이 Rails 프로젝트에서 strftime을 더 깔끔하게 다루는 방법을 소개했어요.
매번 strftime을 직접 쓰는 대신, Rails의 Time/DateTime/Date 클래스에 커스텀 포맷을 정의해서 to_s(:format_name) 형태로 사용할 수 있어요.
설정 (예: config/initializers/time_formats.rb)
# Common date formats
Date::DATE_FORMATS[:default] = "%Y-%m-%d"
Date::DATE_FORMATS[:long] = "%B %d, %Y"
Date::DATE_FORMATS[:short] = "%b %d"
# Common datetime formats
Time::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M"
Time::DATE_FORMATS[:long] = "%B %d, %Y %H:%M"
Time::DATE_FORMATS[:short] = "%d %b %H:%M"
# Project-specific example
Time::DATE_FORMATS[:chat] = "%H:%M"
Time::DATE_FORMATS[:filename] = "%Y%m%d%H%M%S"
사용 예시
Time.current.to_s(:long)
# => "August 19, 2025 21:12"
Date.today.to_s(:short)
# => "Aug 19"
이 방식은 가독성과 재사용성을 동시에 높여주기 때문에, 프로젝트 전반에서 날짜/시간 포맷을 관리할 때 훨씬 깔끔해져요.
자세한 내용은 David Teren의 포스트에서 확인할 수 있어요.
Rails, 기본적으로 Markdown 지원 추가
David Heinemeier Hansson(DHH)이 Rails에 기본 Markdown MIME 타입과 렌더러가 추가된다고 발표했어요.
이제 Rails 애플리케이션에서 별도 설정 없이도 Markdown 형식의 콘텐츠를 인식하고 렌더링할 수 있게 돼요. 그동안은 보통 redcarpet, kramdown, commonmarker 같은 젬을 설치해서 처리해야 했는데, 앞으로는 Rails가 기본 지원을 제공하므로 훨씬 간단해질 거예요.
자세한 내용은 Rails PR #55511에서 확인할 수 있어요.
개인 어드민을 관리하면서 콘텐츠 관리를 markdown으로 하다보니 불편한 점이 좀 있었는데, 이렇게 레일즈에서 기본으로 지원된다고 하니 정말 반가운 소식이에요. 이렇게 되면 gem을 만들어온 메인테이너는 다소 아쉬울 수 있을 것 같기도 하지만 기본 Rails 위에서 더 많은 기능을 제공할 수 있는 방향으로 발전되면 좋겠어요.
Discourse 3.5 공개
Sam Saffron이 오픈소스 토론 플랫폼 Discourse 3.5를 발표했어요. Discourse는 Ruby on Rails 기반으로 만들어진 프로젝트로, 전 세계 커뮤니티와 기업에서 활발히 쓰이고 있어요.
주요 업데이트
-
🌅 Horizon 테마: 새 기본 테마로, 현대적 디자인과 향상된 다크 모드, 직관적인 색상 관리 제공
-
📝 새로운 컴포저: 단일 창 기반의 에디터로, 마크다운/시각적 편집 모두 지원하며 모바일 최적화
-
🌏 자동 번역 기능: AI 기반 실시간 번역으로 다국어 커뮤니티 운영을 간소화
-
🔍 기타 개선 사항: 빠른 검색(/filter), 플러그인 기본 번들화, 관리자 검색 툴, 맞춤형 아이콘/로고/폰트 설정 등
업데이트 방법
Discourse 호스팅 사용자는 이미 3.5로 업그레이드되었으며, 직접 설치한 경우 관리자 페이지에서 원클릭으로 업데이트할 수 있어요.
Rails 기반이라는 점 덕분에 Discourse는 확장성과 플러그인 생태계가 강력하며, 스타트업부터 대규모 글로벌 커뮤니티까지 폭넓게 활용되고 있어요.
자세한 내용은 Discourse 블로그에서 확인할 수 있어요.