Ruby on Rails #16번째 소식

이번 주 소식은 주로 새로 공개된 Rails World 2024 세션 영상에 대한 이야기와 Sahil Lavingia가 유튜브에 공개한 Coding with cursor 세션을 포함한 여러 주제를 다루고 있어요.

2024.10.15 | 조회 180 |
1
|
Ruby on Rails 소식지의 프로필 이미지

Ruby on Rails 소식지

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

안녕하세요 구독자님,

오늘 소개할 Rails World 2024의 한 세션에서 Matz는 일본에서 크리스천으로 살아가는 문화적 소수자의 경험에 대해 이야기했어요. 그 이야기를 들으며, 저도 비슷한 환경에서 소수자로서 살아온 경험 때문에 깊은 동질감을 느꼈어요.

예를 들어, 비영어권 해외에서 학창 시절을 보낸 것, 카투사로 복무한 것, 기업 공채 신입으로 중도 퇴사한 것, 그리고 신설 학과 대학원에 진학한 것 등이 지금의 저를 만들어준 기반이 되었다고 생각해요.

물론 이러한 선택을 할 때 주변의 우려나 시선을 의식하게 되는 것은 자연스러운 일이에요. 하지만 자신의 뚜렷한 주관으로 선택한 길이 자신의 성장에 필요하다면, 그 선택을 믿고 따라가는 것이 독특한 관점과 경험을 기반으로 더 큰 장점을 얻을 수 있다고 생각해요. 주류가 아닌 길을 고민하는 분들이 있다면, 이런 측면에서 깊이 생각해 보시면 좋겠어요.

이번 주 소식은 주로 새로 공개된 Rails World 2024 세션 영상에 대한 이야기와 Sahil Lavingia가 유튜브에 공개한 Coding with cursor 세션을 포함한 여러 주제를 다루고 있어요.

새로운 소식

Fireside Chat with DHH, Matz and Tobias Lütke - Rails World 2024

Rails World 2024에서 Ruby의 창시자 마츠모토 유키히로(Matz), Rails의 창시자 데이비드 하이네마이어 한슨(DHH), 그리고 Shopify의 창립자 토비아스 뤼트케(Tobias Lütke)가 함께한 흥미로운 대화가 있었어요.

Matz는 1995년에 Ruby를 만든 프로그래머이고, DHH는 Ruby로 작성된 웹 프레임워크인 Ruby on Rails를 개발했으며, Tobias는 Rails를 활용해 Shopify를 세계적인 전자상거래 플랫폼으로 성장시킨 인물이에요. 그들이 어떤 이야기를 나눴을지 궁금했는데, 주요 내용을 요약하면 아래와 같아요:

  1. Ruby와 Rails의 지속성: Ruby는 31년, Rails는 20년이 지난 지금도 여전히 많은 개발자들에게 사랑받고 있어요. 그 이유로는 두 기술이 개발자의 생산성과 행복을 중시하며, 꾸준히 발전하고 있기 때문이라고 논의되었어요. 또한, 간결하고 읽기 쉬운 문법이 계속해서 개발자들을 매료시키고 있다고 해요.
  2. 개발 철학: Matz는 프로그래밍 언어는 인간이 사용하는 것이기 때문에 컴퓨터보다 사람에게 친숙해야 한다는 철학을 가지고 있어요. 그는 Ruby를 자신의 취향과 철학에 맞게 설계했으며, 이 인간 중심의 접근 방식이 많은 개발자들에게 공감을 얻었다고 해요.
  3. Minority로서의 경험: Matz와 DHH는 각각 일본과 덴마크 출신으로, 소프트웨어 업계에서 주류가 아닌 위치에서 시작했어요. 그들은 이러한 Minority 경험이 독특한 관점과 혁신적인 아이디어를 가져왔으며, 이것이 그들의 작업과 커뮤니티 구축에 큰 영향을 미쳤다고 언급했어요.
  4. 커뮤니티의 중요성: 오픈 소스 커뮤니티와 특정 가치에 충실한 커뮤니티 구축의 중요성을 강조했어요. 특히 친절함, 협업, 그리고 지식 공유의 가치를 지키는 것이 기술의 발전과 지속 가능성에 핵심적이라고 했어요.

마지막으로, Matz는 Rails 커뮤니티로부터 평생 공로상을 수여받았어요. 이는 그의 지속적인 기여와 영향력을 인정하는 뜻깊은 순간이었어요.

저는 Rails World 2024에서 이 세션을 가장 기대했었고, 기대한 만큼 재미있는 이야기들이 많이 나왔던 것 같아요. 특히 "상대방의 프로젝트를 하루 동안 운영한다면 무엇을 바꾸겠냐"라는 질문에 대해 DHH가 "Ruby 헌법을 만들어서 첫 번째 선언으로 정적 타이핑을 하지 않는다"라고 한 부분이 가장 기억에 남았어요. 이는 최근 프로그래밍 언어에서 정적 타이핑이 강조되는 추세에 대한 그의 입장을 유머러스하게 표현한 것으로 보였어요.

Eileen Uchitelle - The Myth of the Modular Monolith - Rails World 2024

Rails World 2024에서 Eileen Uchitelle가 대규모 Rails 애플리케이션의 도전과제와 모듈러 모놀리스의 한계에 대해 발표했어요. Eileen은 GitHub의 선임 소프트웨어 엔지니어이자 Rails 코어팀의 멤버로서, 대규모 애플리케이션 개발에 대한 풍부한 경험을 가지고 있어요.

주요 내용은 아래와 같아요:

  1. 대규모 Rails 애플리케이션의 문제점:
    1. 아키텍처: 코드 베이스가 커짐에 따라 코드 구조의 복잡성이 증가하고, 이는 유지 보수와 확장을 어렵게 만들어요.
    2. 운영: 불안정한 테스트와 느린 CI/CD 파이프라인으로 인해 배포 주기가 길어지고 개발 속도가 저하돼요.
    3. 조직: 코드 소유권의 불명확성과 신입 개발자 온보딩의 어려움으로 팀 내 협업이 원활하지 않아요.
  2. 모듈러 모놀리스의 한계:
    1. 원시 타입에 대한 집착: 개발자들은 종속성을 피하기 위해 객체 대신 ID를 전달하여 비효율적인 데이터베이스 쿼리와 Active Record의 이점을 상실해요.
    2. 소유권 집착: 코드에 대한 지나친 소유권 의식이 협업을 방해하고 생산성을 저하시켜요.
    3. 과도한 분할: 모듈화를 지나치게 추구하면 시스템이 복잡해지고 관리가 어려워져요.
    4. 코드 중복: 모듈 간 의존성을 최소화하려다 보니 코드 중복이 발생해 유지 보수가 어렵게 돼요.
  3. 핵심 주장:
    1. 이러한 문제들은 기술적인 것이 아닌 인간적, 문화적 문제에서 비롯돼요.
    2. 단순히 아키텍처를 변경하는 것만으로는 근본적인 해결이 불가능해요.
  4. 해결책:
    1. 개발자 교육 개선: 팀원들의 역량을 향상시키고 코드 베이스에 대한 이해도를 높여요.
    2. 긍정적인 엔지니어링 문화 촉진: 열린 소통과 협업을 장려하며, 심리적 안전감을 조성해요.
    3. 코드 품질 우선순위화: 기능 개발과 동시에 코드의 품질과 유지 보수성을 중요시해야 해요.
    4. 지속 가능한 개발을 위한 인센티브 재평가: 단기 성과보다 장기적인 코드 건강을 위한 보상 체계를 마련해요.

Eileen은 기술적 해결책보다는 조직 문화와 개발 관행의 개선을 통해 대규모 Rails 프로젝트의 문제를 해결할 수 있다고 강조했어요.

저도 대규모 Rails 프로젝트에서 비슷한 어려움을 많이 겪어봤는데요, 주로 기술적인 접근으로만 문제를 해결하려고 했던 것 같아요. 이 발표를 보면서 "진짜 문제는 사람과 문화에 있었구나"라는 깨달음을 얻었고, 지금까지의 접근 방식이 틀렸을 수도 있겠다는 생각이 들었어요.

Eileen이 제시한 해결책이 실제로 적용될 수 있을지, 그리고 우리 조직이나 국내 환경에서도 효과를 볼 수 있을지 정말 궁금해요. 앞으로 이러한 시도에 대해 함께 이야기하고 경험을 공유할 수 있는 기회가 있었으면 좋겠어요. 이를 통해 우리도 지속 가능한 개발 문화를 만들어갈 수 있을 것 같아요.

Coding with Cursor: Rails vs Next.js 세션

Tony Ennis와 Sahil Lavingia가 '픽업 게임' 앱을 개발하며 Rails와 Next.js를 비교하는 흥미로운 세션을 진행했어요. Tony Ennis는 경험 많은 풀스택 개발자로, Ruby on Rails에 전문성을 가지고 있어요. Sahil Lavingia는 디지털 제품 판매 플랫폼인 Gumroad의 창립자이자 CEO로, 최근 회사의 기술 스택을 Node.js로 전환하려는 계획을 공개했어요.

주요 내용은 아래와 같아요:

  1. Tony의 Rails 접근법:
    1. 빠른 백엔드 개발: Rails의 강력한 스캐폴딩 기능과 ActiveAdmin을 사용하여 신속하게 백엔드 CRUD 기능을 구현했어요. 이를 통해 데이터 모델링과 관리 인터페이스를 빠르게 구축할 수 있었어요.
    2. HTMX를 통한 동적 프론트엔드 구현: JavaScript 프레임워크 없이도 동적인 사용자 경험을 제공하기 위해 HTMX를 활용했어요. 서버 사이드 렌더링과 최소한의 자바스크립트로도 사용자와 상호작용하는 UI를 구현할 수 있었어요.
  2. Sahil의 Next.js 접근법:
    1. 프론트엔드 중심 개발: Next.js와 TypeScript를 사용하여 컴포넌트 기반의 프론트엔드 개발을 진행했어요. 타입 안정성을 통해 버그를 줄이고 유지 보수성을 높였어요.
    2. Vercel의 V0와 ShadCN을 이용한 UI 구성: Vercel의 V0 백엔드 솔루션과 ShadCN UI 라이브러리를 활용하여 현대적이고 일관성 있는 UI를 구축했어요. 이를 통해 개발 속도를 높이고 배포 과정을 간소화했어요.
  3. 공통 논의 사항:
    1. AI 도구(Cursor)의 활용과 한계: 두 개발자는 Cursor AI를 사용하여 코딩 생산성을 높이려 했지만, AI 도구의 현재 한계와 의존성에 대한 현실적인 논의를 했어요. 특히 AI가 생성한 코드의 품질과 개발자의 판단력이 여전히 중요하다는 점을 강조했어요.
    2. 각 기술 스택의 장단점 비교: Rails의 빠른 프로토타이핑 능력과 Next.js의 유연한 프론트엔드 개발 경험을 비교하면서, 프로젝트의 요구사항에 따라 적합한 기술을 선택하는 것이 중요하다는 결론을 내렸어요.
    3. 웹 개발의 미래 방향성에 대한 의견 교환: 서버 사이드 렌더링과 클라이언트 사이드 렌더링의 균형, 새로운 도구와 프레임워크의 등장 등이 웹 개발에 어떤 영향을 미칠지에 대해 깊이 있는 대화를 나눴어요.

이 세션을 통해 두 개발자는 각 기술 스택의 특징과 장단점을 실제 프로젝트에 적용하며 명확하게 보여줬어요. 이는 웹 개발의 다양한 접근 방식을 이해하고, 최적의 도구를 선택하는 것이 얼마나 중요한지를 다시 한번 깨닫게 해주는 좋은 기회였어요.

최근 Sahil이 Gumroad의 기술 스택을 Node.js로 전환하려는 계획을 발표했는데, 이는 JavaScript 생태계의 발전과 프론트엔드와 백엔드의 통합된 개발 경험을 선호하기 때문이라고 해요. 이러한 결정은 기술적인 효율성뿐만 아니라 개발자 경험과 생산성을 고려한 것 같아요.

결과적으로 Rails와 Next.js 모두 장단점이 있는 훌륭한 프레임워크이며, 어느 한쪽이 더 우월하다고 말하기는 어려운 것 같아요. 약 2시간의 세션에서 작은 프로젝트를 함께 개발하며 기술적 의견을 주고받는 모습이 매우 인상적이었어요. 특히, 서로의 접근법을 직접 보여주고 비교하면서 얻는 실시간 피드백과 토론이 큰 도움이 되었어요.

Silk Rails: Rails로 만든 Gumroad 대체 서비스 MVP

뉴스레터에서 몇 번 소개했던 Greg Molnar가 자신의 새로운 사이드 프로젝트 Silk Rails를 공개했어요. (트윗, 블로그) Greg는 경험 많은 소프트웨어 엔지니어로, Rails 커뮤니티에서 활발히 활동하며 다양한 오픈 소스 프로젝트에 기여하고 있어요.

Gumroad는 디지털 제품을 판매할 수 있는 플랫폼으로, 작가, 디자이너, 음악가 등 크리에이터들이 자신의 작품을 쉽게 판매할 수 있도록 도와주는 서비스예요. Gumroad의 창립자인 Sahil Lavingia는 최근 Rails를 레거시 프레임워크라고 언급하며, 기술 스택을 TypeScript로 전환하겠다고 트윗했어요. 이는 Rails가 현대적인 웹 개발에 적합하지 않다고 판단했기 때문이라고 해요.

Rails World 마지막 날에 Sahil의 이러한 발언을 보고, Greg는 누군가 Gumroad의 대안을 만들어서 Sahil이 틀렸음을 증명해야 한다고 농담처럼 이야기했다고 해요. 그리고 얼마 지나지 않아 실제로 Silk Rails라는 MVP 서비스를 개발하여 블로그를 통해 공개했어요.

Silk Rails는 Gumroad와 유사하게 크리에이터들이 디지털 제품을 판매할 수 있는 플랫폼이에요. Greg는 Rails의 최신 기능과 생산성을 활용하여 빠르게 MVP를 완성했어요. 이를 통해 Rails가 여전히 강력하고 효율적인 프레임워크이며, 현대적인 웹 애플리케이션 개발에 적합하다는 것을 보여주고자 했어요.

저는 Ruby on Rails가 레거시 취급을 받기에는 최근 다양한 발전을 보여주고 있다고 생각해요. 그리고 Sahil처럼 언어와 프레임워크를 모두 바꾸는 것이 과연 최선의 선택인지 의문이 들었어요. 그런 면에서 Greg Molnar의 시도는 매우 인상적이었어요. 그는 Rails를 사용하여 짧은 시간 안에 기능적인 MVP를 만들어냈고, 이를 통해 Rails의 잠재력과 가능성을 다시 한번 입증했어요.

물론 Gumroad에 버금가는 서비스를 단순히 Rails를 사용했다고 해서 쉽게 만들어낼 수는 없겠지만, Greg의 노력은 비즈니스 구현과 기술적 가능성에 대해 강력하게 어필한 것 같아요.

Cookie-based authentication with Rails

프랑스의 Ruby on Rails 엔지니어인 Alexandre Ruban이 37signals의 Writebook을 통해 Rails에서의 인증 과정을 설명하는 E-book을 공개했어요.

이 책은 Writebook 플랫폼으로 작성되어 웹 브라우저에서 쉽게 접근할 수 있어요. 또한, Rails 8에 포함될 예정인 인증 기능을 상세히 설명하고 있어서, 개발자들에게 좋은 가이드 문서가 될 것 같아 소개해요.


이벤트

이 이벤트 정보는 참여를 위한 것이라기보다는 Ruby와 Rails 해외 커뮤니티의 활발한 활동을 알리기 위한 것이에요. Ruby와 Rails는 여전히 활기차게 움직이고 있다는 것을 매번 새롭게 느끼게 되네요.

Meetups

14 Oct, in London, UK → London Ruby User Group - October 2024 Meeting

14 Oct, in Online → Orange County Ruby - Ruby Science October 2024

15 Oct, in Boston, MA → Boston Ruby Group - October 2024 meeting

15 Oct, in Jacksonville, FL → RubyJax - Open Hax October 2024

15 Oct, in Vancouver, Canada → VanRuby - Klue + Ruby - Past, Present & Future

16 Oct, in Boulder, CO → Boulder Ruby - October 2024 Presentation Night

16 Oct, in Genève, Switzerland → Geneva.rb - Developer Tooling for the Modern Rails & Hotwire era (Marco Roth)

16 Oct, in Portland, OR → Portland Ruby Brigade - Cocktails + Code October 2024

16 Oct, in Kaohsiung, Taiwan → Rails Taiwan - 高雄 Rails Meetup October 2024

16 Oct, in Rzeszów, Poland → Rzeszow Ruby User Group - RRUG#40 Sidekiq. Git internals.

16 Oct, in Online → West Midlands Ruby User Group - Monthly Meetup October 2024

17 Oct, in Christchurch, New Zealand → Christchurch Ruby Group - Monthly Meetup: TBD October 2024

17 Oct, in Warszawa, Poland → Polish Ruby User Group - Ruby Warsaw Meetup AI Edition #October

17 Oct, in Jacksonville Beach, FL → RubyJax - Lightning Talks

17 Oct, in Online → ada.rb - Live: O que rolou na Rails World 2024?

18 Oct, in Adelaide, Australia → Ruby and Rails Adelaide - Ruby Burgers October 2024

19 Oct, in Online → African Ruby Community - Kampala Chapter Mini workshop October 2024

19 Oct, in Pune, India → Pune Ruby Users Group - October Meetup

21 Oct, in Auckland, New Zealand → Auckland Ruby - Ruby Night October: TBC

21 Oct, in Columbus, OH → Columbus Ruby Brigade - Monthly Meetup October 2024

21 Oct, in Coral Gables, FL → Miami Ruby Brigade - October 2024

출처: RubyConferences


채용

Ruby와 Rails는 여전히 전 세계의 많은 회사들에서 활발히 사용되고 있으며, 다양한 프로젝트와 서비스를 지원하는 데 중요한 역할을 하고 있어요. 직접적인 채용의 정보도 되겠지만 어떤 회사에서 사용하고 있는지를 간접적으로 알 수 있는 정보라고 생각해서 공유해요.

Ruby on Rails를 사용하는 회사에서 채용 소식을 알리고 싶으시다면 링크드인으로 연락해 주세요.

Instacart - Canada Remote

Senior Software Engineer II, Core Experience

5+ years of backend development experience, with a strong record of project delivery.
Proficiency in backend languages, such as Ruby or Go.

Instacart는 2012년에 설립된 미국의 선도적인 온라인 식료품 배달 서비스 기업이에요. 고객들은 Instacart 앱이나 웹사이트를 통해 지역 슈퍼마켓과 상점에서 식료품과 일상용품을 주문하고, 몇 시간 내에 집으로 배송받을 수 있어요. 이는 Instacart가 지역 상점들과 긴밀하게 협력하고, 전문 쇼퍼들이 직접 쇼핑하고 배송하는 시스템을 갖추고 있기 때문이에요. 현재 미국과 캐나다 전역에서 수백만 명의 고객들에게 편리한 서비스를 제공하며, 온라인 식료품 시장에서 큰 영향력을 가지고 있어요.

아쉽게도 이 포지션은 캐나다 내에서만 원격 근무가 가능하지만, Instacart의 독특한 Flex First 팀 문화가 인상적이라 공유하고 싶어요. Instacart는 직원들에게 최대한의 유연성을 제공하는 것을 목표로 하며, 개인의 선호와 업무 특성에 따라 오피스 근무, 재택 근무, 하이브리드 근무 중 선택할 수 있어요.

또한, 팀워크와 협업을 촉진하기 위해 정기적인 팀 이벤트나 오피스 데이를 운영하고 있어요. 이를 통해 원격 근무 환경에서도 팀원들이 직접 만나 소통하고 협력할 수 있는 기회를 제공해요. 사무실은 항상 개방되어 있어, 직원들이 필요할 때 언제든지 방문하여 동료들과 교류할 수 있어요. Instacart는 이런 노력을 통해 유연한 근무 환경과 강한 조직 문화를 동시에 추구하고 있어요.

Instacart의 Flex First 철학에 대한 자세한 내용은 여기에서 확인할 수 있어요.

이전에 소개된 공고

당근마켓 - Hybrid

Software Engineer, Backend - 중고거래

Software Engineer, Backend - 운영개발

SerpAPI - Full Remote

Meilisearch - Full Remote

GitLab, Backend Engineer, Foundations: Import and Integrate

 

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

📘 메일러의 블로그

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

블로그 방문하기

🔗 메일러의 링크드인

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

LinkedIn에서 연결하기

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

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

강의 바로가기

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

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

✉️

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

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

댓글 1개

의견을 남겨주세요

확인
  • 주닉의 프로필 이미지

    주닉

    1
    2 months 전

    잘 보고 있습니다. 감사합니다.

    ㄴ 답글
© 2024 Ruby on Rails 소식지

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

메일리 로고

자주 묻는 질문 서비스 소개서 오류 및 기능 관련 제보

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

메일리 사업자 정보

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

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