Ruby on Rails #52번째 소식

이번 뉴스레터에서는 루비 창시자 Matz가 전한 “영어 소통의 힘”, Shopify의 새로운 정적 분석 도구 Roast, 그리고 Raix·Roast를 중심으로 한 Ruby AI 인터뷰 소식까지 다뤘어요. 또 37signals에서 개발 중인 새로운 Action Text 에디터와 함께, Ruby의 include와 extend의 차이를 실용적인 예시와 함께 정리해보았답니다.

2025.06.24 | 조회 160 |
0
|
Ruby on Rails 소식지의 프로필 이미지

Ruby on Rails 소식지

국내외 Ruby on Rails 관련 소식을 전해요

안녕하세요, 구독자님!

새 계절의 기운이 느껴지는 요즘, 루비 커뮤니티에도 새로운 움직임이 활발해지고 있어요.

이번 뉴스레터에서는 루비 창시자 Matz가 전한 “영어 소통의 힘”, Shopify의 새로운 정적 분석 도구 Roast, 그리고 Raix·Roast를 중심으로 한 Ruby AI 인터뷰 소식까지 다뤘어요. 또 37signals에서 개발 중인 새로운 Action Text 에디터와 함께, Ruby의 include와 extend의 차이를 실용적인 예시와 함께 정리해보았답니다.

그리고 한 가지 더 소식 전해드려요!

제가 일하고 있는 팀에서 루비 개발 인턴 채용을 진행 중이에요. 루비와 Rails에 관심이 많고 실제 서비스에서 어떻게 활용되는지 함께 배워보고 싶은 분들이라면 꼭 지원해보셨으면 해요.

채용 공고 보러 가기

혹시 궁금한 점이 있거나, 어떤 팀인지 더 알고 싶으시다면 편하게 커피챗도 환영이에요 ☕️

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

새로운 소식

37signals, 개발 환경을 Linux로 전환한 이유는?

37signals의 공동 창업자 DHH가 개발 기본 환경을 Mac에서 Linux로 전환한다고 밝혔어요. 20년 넘게 유지해온 Mac 중심의 문화에서 벗어나, 오픈소스 생태계와 더 깊이 연결되고 고객과의 단절감을 줄이기 위해서라고 해요.

이번 변화는 단지 말뿐이 아니라 행동으로도 이어졌어요. 새로운 개발자들에게는 오픈소스 하드웨어인 Framework 랩톱과 함께 Linux를 기본 환경으로 제공하고 있어요. Linux는 초기 진입 장벽이 높을 수 있지만, Docker나 개발 컨테이너(dev container) 같은 도구를 활용하면 조금씩 익숙해질 수 있어요. 중고 기기를 통해 실험해보는 것도 좋은 시작이 될 수 있겠죠.

물론 비용 문제나 제한적인 앱 생태계처럼 현실적인 고민도 존재하지만, DHH는 “편안함에 안주하지 않고 새로운 도전을 통해 얻는 성장”의 가치를 강조해요. 결국 어떤 도구를 선택하느냐는 그 사람이나 조직이 추구하는 가치와 맞닿아 있다는 메시지를 전하고 있어요.

DHH의 Linux 전환 이야기 보러 가기

Shopify Obie Fernandez, Ruby AI 도구 Raix·Roast를 말하다

Shopify의 수석 엔지니어 Obie Fernandez가 Ruby AI 인터뷰에서, Anthropic과의 협업부터 Raix·Roast 프레임워크에 대한 이야기를 나눴어요. Anthropic LLM이 Ruby와 Rails 코드를 더 잘 이해하도록, 대규모 Rails 코드베이스를 학습 자료로 제공한다고 해요.

Raix & Roast: 무엇이고 왜 중요한가?

  • Raix는 Ruby용 AI 컴포넌트 프레임워크로, 함수 호출 기반 추상화를 통해 LLM과 상호작용하는 구조를 제공해요. 최근 1.0 버전을 발표하며 라이브러리 안정성과 유연성을 강화했어요  .
  • Roast는 Shopify에서 만든 AI 워크플로우 도구로, YAML 기반 순차적·병렬적 단계 실행 구조를 통해 AI와 일반 코드를 섞어서 예측 가능한 워크플로를 구성할 수 있어요  . 코드 품질 향상을 위해 Sorbet 타입 주석을 자동 추가하고, 향후 코드 히스토리에 질문하는 기능도 개발 중이라고 해요.

저서와 향후 방향

Obie는 “Patterns of Application Development Using AI”라는 책을 썼는데, AI 에이전트 패턴 설명이 부족하다고 느껴 Raix에 더 많은 패턴을 구현하고 싶어 해요. Roast는 복잡한 작업을 여러 단계로 나눠 처리하는 패턴을 실제 워크플로우에 적용하려는 시도라고 해요  .

커뮤니티 메시지

Ruby 커뮤니티가 LLM 기반 기술을 적극 활용해 새로운 툴을 만들어 가길 바란다고 강조했어요. Rubyist들에게는 Ruby+AI Discord 커뮤니티에 참여하고, 함께 발전해 나가길 권유했어요.

Roast 로드맵: GitHub Issues에서 향후 계획 확인 가능해요.

Shopify, Ruby 성능 최적화 정적 분석 도구 ‘Roast’ 공개

Shopify에서 Ruby 코드의 퍼포먼스 향상에 집중한 새로운 오픈소스 정적 분석 도구 ‘Roast’를 발표했어요.

주요 기능

  • Prism 기반 빠른 분석Ruby 3.3부터 기본 탑재된 Prism 파서를 이용해 코드 구조를 고속·정확히 분석해 줘요.
  • 성능 중심 규칙 제공일반 스타일 체크를 넘어 Shopify의 Rails 대규모 애플리케이션 운영 경험에 기반한 성능 가이드라인을 반영했어요.
  • CI/CD 자동 검사 지원코드 변경 시 자동으로 성능 이슈를 검사하고, 수정 가이드와 예시 코드도 함께 제안해요.
  • 분석 속도·신뢰도 향상기존 RuboCop보다 더 빠르고 신뢰할 수 있는 분석 결과를 제공해 유지보수성을 높여줘요.

왜 주목할까요?

  • 퍼포먼스 코드 작성에 최적인 도구로, 대형 Rails 코드베이스에서도 성능 병목을 빠르게 찾아내요.
  • 분석 결과를 CI/CD와 연계하여 코드 리뷰 부담 없이 자동으로 관리할 수 있어요.
  • Shopify의 축적된 경험이 반영된 규칙은 실전 환경에서 검증된 기준을 제공합니다.

Roast 살펴보기: Shopify 엔지니어링 블로그에서 자세한 기능 설명과 함께 설치·활용 방법을 안내하고 있어요.

Lexical 기반으로 새로워진 Action Text 에디터, 더 유연하고 접근성 높게

37signals의 Jorge Manrubia가 새롭게 개발 중인 Action Text 에디터가 주목을 받고 있어요. 이 에디터는 React 없이도 2,299줄의 바닐라 자바스크립트만으로 구현되었지만, 기존 Trix 에디터에서 부족했던 기능들을 대폭 보완하며 높은 유연성과 접근성을 제공하고 있어요. Lexical을 기반으로 설계되어 다양한 입력 방식과 고급 편집 기능을 자연스럽게 구현할 수 있는 것이 가장 큰 장점이에요.

이번에 공개된 새로운 기능들은 매우 실용적이에요. 예를 들어, 데이터를 인라인 혹은 지연 방식으로 로드할 수 있고, 브라우저 내에서 직접 필터링하는 기능도 갖추고 있어요. 또한 원격 엔드포인트를 통해 외부 데이터를 불러오고 필터링할 수도 있어, 자동완성이나 멘션 기능처럼 동적인 프롬프트 구현에 유리해요. 각 항목마다 메뉴에 표시되는 UI와 실제 에디터 내에 삽입될 HTML을 따로 구성할 수 있어서, 시각적 표현을 자유롭게 조절할 수 있다는 것도 큰 특징이에요.

특히 주목할 점은, 멘션처럼 독립 실행형 편집 단위를 삽입하고 관리할 수 있다는 점이에요. 이런 요소들은 단순한 텍스트가 아니라, 의미 있는 블록 단위로 동작해서 문서 편집 경험을 한층 높여줘요. React 없이도 가능한 이런 구조는 Lexical이 얼마나 강력하게 설계되었는지를 잘 보여주는 사례라고 할 수 있어요.

Jorge Manrubia의 트윗을 통해 코멘트와 관련 데모를 확인해보세요.

Ruby 모듈 활용법: include와 extend, 어떤 상황에 쓸까요?

Ruby에서는 모듈을 통해 코드 재사용성과 구조화를 효율적으로 할 수 있어요. 특히 include와 extend는 모듈을 클래스에 적용하는 대표적인 방식인데요, 두 방법은 사용하는 목적과 동작 방식에 차이가 있어요.

include는 모듈의 메서드를 클래스의 인스턴스 메서드로 가져와요. 예를 들어 Rails에서는 ActiveRecord::Base가 ActiveRecord::Persistence 모듈을 include해서, 모델 인스턴스에서 save, update, destroy 같은 메서드를 바로 사용할 수 있게 해요.

반면 extend는 모듈의 메서드를 클래스 메서드로 추가해요. Rails에서 ActiveRecord::FinderMethods가 extend되면, 모델 클래스 자체에서 find_by, where 같은 메서드를 사용할 수 있게 되는 구조예요.

ActiveSupport::Concern을 사용하면 이 둘을 함께 손쉽게 다룰 수 있어요. included 블록을 활용해서 모듈을 include할 때 동시에 클래스 메서드도 정의할 수 있거든요. 이렇게 하면 인스턴스 메서드와 클래스 메서드를 모두 깔끔하게 제공할 수 있어요.

이러한 차이를 잘 이해하면 어떤 로직을 인스턴스에 둘지, 어떤 기능을 클래스 단위로 설계할지 명확해져요. 또, 모듈을 지나치게 복잡하게 쌓지 않고, 유지보수하기 좋은 구조로 만들 수 있는 데에도 도움이 돼요.

실무에서는 이렇게 활용해 보세요

  • include는 인스턴스 로직(예: 유효성 검사, 콜백)을 나눌 때
  • extend는 설정이나 유틸리티처럼 클래스 레벨 기능을 줄 때
  • ActiveSupport::Concern은 두 방식이 모두 필요한 복합 모듈을 만들 때 유용해요

RailsCarma에서는 이런 개념을 잘 활용하면 유지보수성 높은 애플리케이션을 만들 수 있다고 이야기해요.

Matz, 루비 성공 비결로 ‘영어 소통’ 강조했어요

루비 창시자 마츠모토 유키히로(일명 Matz)와의의 인터뷰에서 영어 소통이 루비가 전 세계로 퍼지는 데 얼마나 중요한 역할을 했는지 생생하게 들을 수 있었어요. 학생 시절 선교사로 활동하며 미국 동료들과 영어로 교류한 경험 덕분에, 언어 자체에 대한 심리적인 부담을 덜 수 있었다고 해요.

이 경험은 나중에 데이브 토마스의 루비 관련 저서를 읽고, 이를 기반으로 루비 커뮤니티가 국제적으로 성장할 수 있는 토대가 되었대요. Matz는 일본 개발자들이 ‘완벽하게 영어를 해야 한다’는 부담감을 벗어나, 실수해도 괜찮으니 적극적으로 소통하길 권유했어요. 그 과정 자체가 언어 장벽을 허무는 첫걸음이 될 수 있다는 걸 강조했죠.

또한, “기술 산업에서는 국적과 관계없이 프로그래밍에 대한 열정만으로 친구가 될 수 있다”고 말씀하셨어요. 영어를 연습해 커뮤니티에 참여하는 것은 자기 성장뿐 아니라 글로벌 네트워크와 우정을 쌓는 기회라고도 하셨답니다.

Matz의 조언은 단지 영어 공부만을 위한 게 아니에요. 작은 문장이라도 좋으니, 개발 커뮤니티나 동료에게 메시지를 보내보는 실험을 해보는 거죠. 그 경험이 여러분의 가능성을 더 넓혀줄 수 있을 거예요.

Matz 인터뷰 원문에서 더 많은 대화 내용을 확인해보세요.


이벤트

이 이벤트 정보는 단순히 참여를 독려하기보다는 Ruby와 Rails 해외 커뮤니티가 얼마나 활발히 움직이고 있는지를 보여주기 위한 것이에요. 각 커뮤니티에서 열리는 다양한 Meetup을 보며 Ruby와 Rails의 에너지를 새롭게 느낄 수 있어요. 이렇게 전 세계적으로 사랑받는 언어와 프레임워크를 함께 사용하는 것이 정말 자랑스럽게 느껴지네요. 😊

Meetups

24 Jun, in Austin, TX → Austin.rb - Social @ Deep Eddy Cabaret

24 Jun, in เขตวัฒนา, Thailand → Bangkok.rb - Ruby Tuesday #65

24 Jun, in Nantes, France → Nantes.rb - @ Jack's Corner Pub&Food

24 Jun, in 10119 Berlin, Germany → Ruby Europe - Ruby + AI Meetup

24 Jun, in Berlin, Germany → [Ruby User Group Berlin - Special Ruby Europe: Ruby + AI meetup](https://www.rug-b.de/events/special-ruby-europe-ruby-ai-meetup-170 6)24 Jun, in Jacksonville, FL → RubyJax - Open Hax June 2025

25 Jun, in Kaohsiung, Taiwan → Rails Taiwan - 高雄 Rails Meetup June 2025

25 Jun, in Zagreb, Croatia → Ruby Zagreb - RubyZG June meetup @ Devot

26 Jun, in Southbank, Australia → Melbourne Ruby - Ruby Melbourne Meetup June 2025

26 Jun, in Dana Point, CA → Orange County Ruby - Meetup June 2025

26 Jun, in Wellington, New Zealand → Ruby Wellington - June

26 Jun, in Valencia, Spain → Valencia.rb - Time to play!

28 Jun, in Brasilia, Brazil → Ruby DF - 7ª Edição - Pareamento de Festa Junina

01 Jul, in Online → Charlotte Ruby - Ruby Hack Night July 2025

01 Jul, in 1160 Auderghem, Belgium → Ruby Belgium - Meetup Summer 2025

01 Jul, in Jacksonville, FL → RubyJax - Open Hax July 2025

01 Jul, in Seattle, WA → Seattle.rb - July 2025

출처: RubyConferences


채용

Ruby와 Rails는 여전히 전 세계 많은 회사에서 핵심 기술로 활발히 사용되고 있으며, 다양한 프로젝트와 서비스를 지원하는 데 중요한 역할을 하고 있어요. 이 채용 정보는 직접적인 취업 기회일 뿐 아니라, 어떤 회사들이 Ruby on Rails를 사용하고 있는지 간접적으로 알 수 있는 좋은 자료가 될 거예요.

Ruby on Rails를 사용하는 회사에서 채용 소식을 공유하고 싶으시다면, 링크드인으로 언제든 연락해 주세요. 함께 Rails 커뮤니티를 더욱 활기차게 만들어 가요!

당근마켓, Software Engineer Intern, Backend - 중고거래

당근마켓 중고거래실은 한국과 글로벌의 유저를 타겟으로 지역 기반 중고거래 서비스를 만들고 있어요. 전 세계에서 천 만 명이 넘는 제품을 관리하며 유저의 문제를 해결하거나 회사의 목표를 달성할 수 있는 프로덕트를 만들어요. 최고의 중고거래 사용자 경험을 위해 데이터를 바탕으로 다양한 아이디어를 실험하며 서비스를 발전시키는 일을 해요.

이전에 소개된 공고

릴레잇, Product Engineer, Backend

더 많은 정보를 원하신다면?

📘 메일러의 블로그

최신 기술 트렌드와 유용한 팁을 공유하는 메일러의 블로그를 방문해 보세요.

블로그 방문하기

🔗 메일러의 링크드인

메일러와 네트워크를 확장하고 소통을 원하신다면 링크드인을 통해 연결해 보세요.

LinkedIn에서 연결하기

📚 Ruby on Rails 공식 가이드 따라잡기 - 인프런 강의

Ruby on Rails에 대해 배우고 싶으신가요? "Ruby on Rails 공식 가이드 따라잡기" 강의를 확인해보세요!

강의 바로가기

다가올 뉴스레터가 궁금하신가요?

지금 구독해서 새로운 레터를 받아보세요

✉️

이번 뉴스레터 어떠셨나요?

Ruby on Rails 소식지 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!

댓글

의견을 남겨주세요

확인
의견이 있으신가요? 제일 먼저 댓글을 달아보세요 !
© 2025 Ruby on Rails 소식지

국내외 Ruby on Rails 관련 소식을 전해요

메일리 로고

도움말 자주 묻는 질문 오류 및 기능 관련 제보 뉴스레터 광고 문의

서비스 이용 문의admin@team.maily.so

메일리 사업자 정보

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울 서초구 강남대로53길 8, 8층 11-7호

이용약관 | 개인정보처리방침 | 정기결제 이용약관 | 라이선스