안녕하세요 구독자님,
이번 Ruby on Rails 소식은 가족 여행 중인 호주 브리즈번에서 전하게 됐어요. 저는 호주에는 처음 와봤는데, 한국에서는 안되던 기능들을 써보는 경험으로 가족과의 시간 외에도 유익한 시간을 보내고 있어요. 아이폰에서 심방세동 기록 옵션을 켤 수 있었고, Fitbit에서도 심방세동 알림 설정을 켤 수 있었어요. (다행히 알림을 받아보는 일은 없었네요 😅)
구글맵은 없어서는 안 될 서비스 중 하나가 되었고, Uber 대신에 중국에서만 쓰이는 줄 알았던 DiDi를 더 많이 쓰고 있어요. 식당에서는 테이블마다 QR코드를 통해 모바일 웹으로 주문, 결제까지 할 수 있는 건 새롭지는 않았지만, 태블릿이 점점 늘어나는 한국에 비하면 더 심플하다는 느낌도 받았어요. (보조배터리를 붙일 필요도 없고, 테이블도 더 넓게 쓸 수 있고요.)
이 여행의 주 목적은 육아 휴직이 끝나기 전 마지막 가족 여행이었어요. 하지만 저에게는 본업으로 돌아가기 전에 소프트웨어 엔지니어의 시선으로 다른 세상을 둘러볼 수 있는 좋은 기회이기도 했어요. 이런 경험에 대한 이야기를 기술과 서비스를 좋아하실 구독자님께도 전하고 싶어서 길게 써봤어요.
이번 주 소식은 Rails 8.0.0rc1 릴리즈 소식, Rails 성능 최적화 관련 세션 소개, 정적 페이지 생성 서비스 출시 소식과 백그라운드 프로세스와 관련된 소식 등 다양한 주제를 다뤄봤어요.
새로운 소식
Rails 8.0.0.rc1 릴리즈 소식
Rails World 2024에서 공개된 베타 릴리즈에 이어, 10월 19일에 Rails 8.0의 RC(Release Candidate) 버전이 공개되었어요. 자세한 변경 사항은 릴리즈 노트를 참고해주세요.
이 릴리즈 소식에 대해 MIT에서 AI를 연구하고 팟캐스트 진행자로 유명한 Lex Fridman이 곧 Rails를 써볼 예정이라고 언급하기도 했어요.
David Henner - Level up performance with simple coding changes - Rails World 2024
이번 발표는 퍼포먼스 최적화에 관한 내용으로, Zendesk의 성능 개선 사례를 다루고 있어요. David Henner는 퍼포먼스 문제를 해결하기 위해 사용한 몇 가지 핵심 기법을 설명했고, 발표를 요약하면 다음과 같아요.
Zendesk의 퍼포먼스 역사: Zendesk는 15년 동안 운영되었으며, 처음 12년 동안 별도의 퍼포먼스 팀이 없었어요. 그래서 성능 향상을 위해 여러 저비용 방법이 적용되었고, 이를 통해 큰 비용 절감 효과를 얻었어요.
샤딩과 아카이빙: 데이터가 많아질수록 성능에 영향을 미칠 수 있기 때문에, 데이터를 샤딩(분할 저장)하고 오래된 데이터를 아카이빙(보관)하는 방법을 도입하여 MySQL 쿼리 부하를 줄였어요.
관측 가능성(Observability): 성능 문제를 진단하기 위해 Datadog을 사용하여 애플리케이션에 추적 정보를 추가하는 방법을 도입했어요. 이 방법으로 문제를 파악하고, 쿼리 최적화 및 캐싱을 통해 성능을 향상시켰어요.
트레이스 및 메소드 개선: 쿼리 수를 제한하고 메모리 최적화를 위해 메소드 호출 시 불필요한 쿼리를 줄이는 방법을 사용했어요. 이 과정에서 데이터 저장소 내에서 데이터의 중복 호출을 줄이고 캐싱을 활용했어요.
캐싱 전략: 캐싱 전략을 잘 설계하는 것이 중요하며, 캐시를 사용해 트래픽 감소와 응답 시간 개선을 달성했어요. 특히 API 응답에서 캐시를 활용해 중복된 계산을 방지하는 방법을 설명했어요.
Max-Age와 Stale 캐시 관리: Max-Age 설정을 통해 브라우저 캐시 활용을 극대화하고, 동일한 데이터 요청 시 서버로 트래픽이 가지 않도록 하여 성능을 개선했어요.
배치 캐싱: 캐시를 한 번에 여러 개 가져올 수 있는 read_multi 메소드를 사용하여 캐시 호출을 줄이고 응답 속도를 개선했어요.
David는 여러 코드 예시와 함께 구체적인 성능 개선 방법을 소개하며, 이러한 최적화가 인프라 비용 절감과 서비스 성능을 크게 향상시켰음을 강조했어요.
저도 회사에서 비슷한 업무를 하고 있지만, 평소에 Ruby on Rails 환경에서의 경험담은 다른 곳에서 듣기 어려웠어요. 그래서 세션 리스트가 공개되었을 때부터 관심이 있었던 주제였어요. 전반적으로 제가 했던 개선들과 크게 다르거나 획기적인 부분은 없었지만, 그래서 오히려 제가 했던 일들에 대해 더 자부심을 가질 수 있었고, 더 잘 개선해보고 싶은 마음도 생겼어요.
새로운 Ruby static site generator 프로젝트 출시 - Ruby Static Pro
다양한 서비스와 Rails 관련 책의 저자인 Donn Felker가 Ruby Static Pro 출시 소식을 전했어요. 이 프로젝트는 Ruby로 만들어졌으며, Middleman 기반으로 정적 페이지를 생성하는 것이 특징이에요. 또한 다양한 기능을 제공하고 있어요.
연간 구독형으로 제공된다는 점에서 기존에 사용하던 Jekyll이나 이전에 소개해드린 wruby와는 다른 성격의 프로젝트에요. FAQ를 살펴보면, 구독 중에만 사용할 수 있는 것이 아니라 첫 결제 이후에도 계속 사용할 수 있다고 해요. 추가 기능 업데이트를 받기 위해서는 구독이 필요하지만, 첫 구매 이후 구독을 바로 취소하더라도 정적 페이지 생성을 계속 이용할 수 있다고 설명하고 있어요.
무엇보다 인상적이었던 것은 "우리의 시간이 들어간 프로젝트이고, 이 프로젝트를 이용하면 몇 주의 시간을 절약할 수 있다"고 이야기하는 부분이에요. 서비스에 대한 자신감과 돈을 받는 이유를 명확하게 설명하는 점이 인상적이었어요. 프로젝트의 실제 퀄리티와는 별개로, 이러한 접근 방식이 좋아 보였어요.
Sidekiq vs GoodJob vs Solid Queue
독일의 엔지니어인 Daniel Hoelzgen이 백그라운드 프로세싱에 어떤 것이 좋은지 의견을 구하는 트윗을 올렸어요. 이에 다양한 의견이 답변으로 달렸어요.
Sidekiq, GoodJob, Solid Queue는 Ruby on Rails에서 백그라운드 작업을 처리하는 인기 있는 도구들이에요. GoodJob은 이번에 처음 알게 되었는데, 여러 환경의 사람들이 각자의 이유로 선호하는 것을 이야기하는 흥미로운 스레드라서 공유해봤어요. 예를 들어, 일부 개발자들은 Sidekiq의 성능을 높게 평가했고, 다른 이들은 GoodJob의 단순함과 Active Job과의 통합을 선호했어요.
다양한 개발자들이 각자의 환경과 필요에 따라 어떤 도구를 선택하는지 알 수 있어서 유익한 내용이었어요. 관심 있으신 분들은 해당 스레드를 한 번 살펴보시는 것도 좋을 것 같아요.
이벤트
이 이벤트 정보는 참여를 위한 것이라기보다는 Ruby와 Rails 해외 커뮤니티의 활발한 활동을 알리기 위한 것이에요. Ruby와 Rails는 여전히 활기차게 움직이고 있다는 것을 매번 새롭게 느끼게 되네요.
Meetups
October 22, in Kraków, Poland → Krakow Ruby Users Group (KRUG) - KRUG #3 / 2024 powered by Maxio
October 22, in Jacksonville, FL → RubyJax - Open Hax October 2024
October 22, in Quận 1, Viet Nam → Saigon.rb - Ruby Tuesday #22
October 22, in Toulouse, France → Toulouse.rb - Conf & Apéro - Octobre
October 22, in Greenville, SC → Upstate Ruby - Rails World 2024: Greenville Edition
October 23, in Kaohsiung, Taiwan → Rails Taiwan - 高雄 Rails Meetup October 2024
October 24, in Austin, TX → Austin.rb - Ruby Social - Evening
October 24, in Southbank, Australia → Melbourne Ruby - October 2024
October 24, in Zagreb, Croatia → Ruby Zagreb - RubyZG October meetup @ Kodius
October 24, in Toronto, Canada → Toronto Ruby - October 2024 Edition
October 28, in Nantes, France → Nantes.rb - Ruby talk
October 28, Online → Orange County Ruby - Ruby Science October 2024
October 28, in Riga, Latvia → Ruby on Rails Latvia - Ruby community meetup – October 2024
출처: RubyConferences
채용
Ruby와 Rails는 여전히 전 세계의 많은 회사들에서 활발히 사용되고 있으며, 다양한 프로젝트와 서비스를 지원하는 데 중요한 역할을 하고 있어요. 직접적인 채용의 정보도 되겠지만 어떤 회사에서 사용하고 있는지를 간접적으로 알 수 있는 정보라고 생각해서 공유해요.
Ruby on Rails를 사용하는 회사에서 채용 소식을 알리고 싶으시다면 링크드인으로 연락해 주세요.
Gusto - Hybrid
Product Infrastructure Engineer
Gusto는 미국에 본사를 둔 클라우드 기반의 인사 관리(HR) 소프트웨어 회사로, 주로 중소기업을 위한 급여 관리, 복리후생, 인사 관리 서비스를 제공하고 있어요. 2012년에 설립된 Gusto는 복잡한 급여 계산, 세금 처리, 복지 혜택 제공 등을 간편하게 자동화할 수 있는 사용자 친화적인 플랫폼으로 잘 알려져 있어요.
이 포지션은 미국에서만 채용을 진행하고 있지만, Ruby on Rails 엔지니어인데 서비스향이 아닌 내부 개발자 생산성을 향상시키기 위한 포지션이라는 점이 특이해서 소개해요.
이전에 소개된 공고
당근마켓 - Hybrid
Software Engineer, Backend - 중고거래
Software Engineer, Backend - 운영개발
GitLab, Backend Engineer, Foundations: Import and Integrate
Instacart, Senior Software Engineer II, Core Experience
의견을 남겨주세요