지난 글들

1164개의 글이 있습니다

루비 온 레일즈 프론트엔드 개발: 레일즈 7의 르네상스

Yaroslav Shmarov, "Rails 8 Frontend: 10 commandments and 7 deadly sins in 2025"

  • 레일즈 7은 Input Maps, ESBuild, Turbo, Stimulus JS 등 현대적인 도구를 통해 레일즈 프론트엔드 개발의 르네상스를 가져왔습니다.
  • 반응형 레이아웃 설계와 Tailwind CSS를 기반으로 한 효율적인 UI 컴포넌트 구축이 현대 레일즈 프론트엔드의 핵심입니다.
  • Hotwire는 기본 기능 구현 후 점진적으로 반응성을 추가하는 방식으로, Stimulus JS는 간단한 클라이언트 측 상호작용에 활용하는 것이 효과적입니다.
EuRuKo 2025년 01월 13일

Ruby에서 아름다운 뷰 구축하기: Flex 라이브러리 활용

Joel Drapper, "Building Beautiful Views in Ruby with Phlex"

  • Flex는 Ruby에서 객체 지향 컴포넌트를 설계하기 위한 라이브러리로, HTML 의미론을 Ruby 문법에 직접 매핑하여 뷰 생성을 유연하고 강력하게 만듭니다.
  • 이 라이브러리는 XSS 방지, 쉬운 테스트 및 재사용성, 빠른 렌더링, 그리고 기존 Ruby 개발 도구와의 완벽한 호환성을 제공합니다.
  • Flex는 코드 중복을 줄이고 추상화를 통해 유지보수성을 높이며, Rails 환경에서 뷰 컴포넌트 개발의 효율성을 극대화합니다.
EuRuKo 2025년 01월 13일

25년간의 개발과 10년간의 전쟁을 통해 얻은 7가지 통찰

Victor Shepelev, keynote, "Seven things I know after 25 years of development"

  • 소프트웨어 개발에서 프레임워크와 방법론은 성장에 따라 한계를 드러내며, 끊임없이 변화하는 환경에 적응하기 위해선 새로운 아키텍처적 결정이 필수적입니다.
  • 코드베이스의 '개별적인 이야기'에 집중하고, 복잡한 시스템 속에서 각 기능의 선형적인 흐름을 이해하는 것이 중요하며, 이는 '진실'을 추구하는 개발의 본질과 연결됩니다.
  • 개발자는 기존의 사고방식에 도전하고 끊임없이 진실을 탐구하며, 동료와의 코드 리뷰를 통해 코드의 '이야기'가 타당한지 확인하는 것이 장기적인 프로젝트 성공에 기여합니다.
EuRuKo 2025년 01월 13일

객체 지향 프로그래밍의 진화와 언어 설계 철학

Dave Thomas's uninterrupted conversation with Yukihiro Matsumoto & José Valim

  • 객체 지향 프로그래밍의 정의와 미래에 대한 심도 깊은 논의가 이루어졌습니다.
  • Ruby와 Elixir 언어의 설계 철학, 특히 상태 관리, 변경 불가능성, 그리고 커뮤니티의 역할에 대해 다루었습니다.
  • AI, JIT 컴파일러, 그리고 소프트웨어 복잡성 증가와 같은 미래 프로그래밍 트렌드에 대한 통찰을 공유했습니다.
EuRuKo 2025년 01월 13일

슬롯 스케줄링의 장점: Ruby 기반 시스템의 부하 분산 전략

Julik Tarkhanov, "On the benefits of slot scheduling"

  • Ruby on Rails 기반 핀테크 스타트업 Cheddar는 비효율적인 은행 연동 작업 스케줄링으로 인한 시스템 부하 문제를 겪었습니다.
  • 이를 해결하기 위해 시뮬레이션과 Ruby의 Mersenne Twister, GCD 메서드를 활용한 '슬롯 스케줄링' 방식을 도입했습니다.
  • 이 새로운 스케줄링 방식은 작업 처리량의 균일화를 달성하여 컴퓨팅 비용을 절감하고 시스템 안정성을 크게 향상시켰습니다.
EuRuKo 2025년 01월 13일
  • 루비 창시자 마츠모토 유키히로(Matz)는 루비 개발을 '일'이 아닌 '퍼즐 풀이'와 같은 지적인 즐거움으로 여기며, 자신을 게으른 사람이라 칭합니다.
  • 그는 지난 수십 년간 프로그래밍에 깊이 최적화된 삶을 살았으며, 루비 커뮤니티의 친절함은 자신의 '친절한 척'에서 비롯되었다고 유머러스하게 언급합니다.
  • 마츠는 기술의 발전이 프로그래밍의 즐거운 부분에 집중하고 지루한 부분을 줄여줄 것이라고 기대하며, 새로운 기술에 대한 호기심과 긍정적인 태도를 강조합니다.
EuRuKo 2025년 01월 13일

Zyber: Ruby 온보딩 및 API 설계 철학

Xavier Noria, keynote, "Zeitwerk: A Retrospective"

  • Zyber는 Ruby 프로젝트의 오토로딩, 이저 로딩, 리로딩 기능을 제공하는 핵심 Gem으로, 기존 Rails 오토로더의 한계를 극복하고 개발자 경험을 개선했습니다.
  • API 설계 시 사용성, 오류 방지, 모범 사례 유도, 비대칭적 사용 사례 인정을 중요하게 다루며, 이는 Zyber 개발에 반영되었습니다.
  • 소프트웨어 오류는 피할 수 없는 것이 아니라, 높은 기준과 철저한 문제 해결을 통해 '버그 없는' 상태를 추구할 수 있다는 메시지를 전달합니다.
EuRuKo 2025년 01월 13일
  • 베테랑 개발자가 10년간 Ruby on Rails에서 겪었던 두 가지 복잡한 버그 해결 경험을 공유했습니다.
  • 첫 번째는 Active Record 카운터 캐시의 동기화 문제였고, 두 번째는 Ruby 3.2 버전 업그레이드 시 발생한 Marshall 직렬화 오류였습니다.
  • 재현 가능한 테스트 케이스 확보와 심층적인 분석을 통해 문제를 해결했으며, 디버깅의 과학적 접근과 오픈소스 기여의 중요성을 강조합니다.
EuRuKo 2025년 01월 13일
  • 오픈소스는 개인의 성장, 커뮤니티 기여, 채용 등 다양한 이점을 제공하지만, 유지보수의 어려움과 기여자의 번아웃 문제로 지속 가능성 위기에 직면해 있습니다.
  • 기업의 금전적 기여 및 개발 시간 할당, 그리고 유지보수자의 명확한 기대치 설정이 문제 해결의 핵심 방안으로 논의되었습니다.
  • 오픈소스 프로젝트의 수익화 모델은 다양하며, 각 프로젝트에 맞는 맞춤형 접근 방식과 유지보수자에 대한 공감대 형성이 중요합니다.
EuRuKo 2025년 01월 13일

루비 YARV 개발 20년: 회고와 미래

Koichi Sasada, keynote, "20th year of YARV"

  • 루비 YARV(Yet Another Ruby Virtual Machine)는 20년간의 개발을 통해 루비 인터프리터의 성능을 혁신적으로 개선했습니다.
  • 스택 머신 모델, 자동 명령어 생성, 지연된 클로저 생성 등 다양한 최적화 기법을 도입하여 루비의 동적 특성에도 불구하고 효율성을 높였습니다.
  • 향후 메서드 인라이닝, 지연 로딩, 유연한 JIT 컴파일러 연구 등 추가적인 성능 개선과 개발자 생태계 확장을 목표로 합니다.
EuRuKo 2025년 01월 13일

RubyGems 보안 취약점의 역사와 대응 전략

Samuel Giddins, "A survey of recent RubyGems CVEs"

  • RubyGems, Bundler, RubyGems.org 등 Ruby 패키징 생태계에서 발생한 다양한 보안 취약점(CVE)의 역사와 유형을 설명합니다.
  • 디렉토리 탐색, YAML 역직렬화, 서비스 거부 공격 등 주요 취약점 사례와 이에 대한 Ruby Central의 체계적인 대응 과정을 다룹니다.
  • 보안 강화를 위한 HackerOne 프로그램, 외부 감사, Sigstore, 신뢰할 수 있는 발행(Trusted Publishing) 등 현재 진행 중인 노력과 커뮤니티의 기여를 강조합니다.
EuRuKo 2025년 01월 13일

기존 Ruby on Rails 프로젝트에 Content Security Policy (CSP) 적용하기

Igor S Morozov, "Benefits and challenges of introducing a strict Content Security Policy"

  • Content Security Policy(CSP)는 웹 페이지의 콘텐츠 소스를 제한하여 XSS 및 인젝션 공격을 방어하는 웹 보안 표준입니다.
  • 기존 프로젝트에 CSP를 도입할 때는 Rails의 기본 정책으로 시작하여 'report-only' 모드를 통해 문제점을 파악하고 점진적으로 강화하는 것이 효과적입니다.
  • CSP 강화는 도메인 기반 제약 또는 'strict-dynamic' 방식으로 나뉘며, 프로젝트 특성과 개발 노력을 고려하여 적절한 전략을 선택해야 합니다.
EuRuKo 2025년 01월 13일

단순화와 경량화: Ruby on Rails 웹 개발의 현재와 미래

Piotr Szotkowski, "Simplify, Then Add Lightness"

  • 본 발표는 웹 개발의 복잡성 증가에 대응하여 '단순화하고 가볍게 하라'는 철학을 Ruby on Rails에 적용하는 방안을 제시합니다.
  • SQLite의 재조명과 Hotwire 같은 최신 Ruby 툴링을 통해 풀 스택 개발의 효율성과 생산성을 강조하며, '원-퍼슨 프레임워크'의 가능성을 보여줍니다.
  • 지속적인 업그레이드와 배포의 중요성을 역설하며, Ruby가 여전히 강력하고 실용적인 웹 개발 선택지임을 강조합니다.
EuRuKo 2025년 01월 13일

Ruby 프로젝트 의존성 관리를 위한 효과적인 전략 및 도구

Marko Ćilimković, "Lessons From Escaping the Dependency Upgrade Maze"

  • Ruby 프로젝트의 의존성 관리는 보안 취약점 및 호환성 문제 예방에 필수적입니다.
  • Infinum은 의존성 업데이트 문화를 구축하고, 이를 위한 체계적인 프로세스와 도구를 개발했습니다.
  • Reviser, Polariscope, Gorama와 같은 도구를 활용하여 의존성 상태를 추적하고, Dependabot을 통한 자동화된 업데이트를 권장합니다.
jeff 2025년 01월 13일
  • 이 강연은 Ruby 프로그래머 Rafael Peña가 Ruby의 영향을 받아 탄생한 Crystal 언어를 소개합니다.
  • Crystal은 Ruby의 우아함과 C의 성능을 결합한 정적 타입 컴파일 언어로, Ruby 개발자에게 친숙한 문법을 제공합니다.
  • 타입 추론, 닐 타입 처리, 파이버 기반 동시성, 매크로 등 Crystal의 주요 특징과 Ruby와의 차이점을 탐구하며, 두 언어의 미래 협력 가능성을 제시합니다.
EuRuKo 2025년 01월 13일