지난 글들

744개의 글이 있습니다

WebAssembly를 활용한 브라우저 내 Ruby 개발 환경 구축

Svyatoslav Kryukov, "Assembling the Future: crafting the missing pieces of the Ruby on Wasm puzzle"

  • 본 발표는 WebAssembly(WASM)를 활용하여 브라우저 환경에서 Ruby 코드를 실행하고 개발 환경을 구축하는 방법을 다룹니다.
  • WebAssembly의 샌드박스 특성과 WASI(WebAssembly System Interface)의 한계를 JavaScript 인터롭 및 패치 기법으로 극복하는 과정을 상세히 설명합니다.
  • runruby.dev와 같은 Ruby 플레이그라운드 구현 사례를 통해 브라우저 내에서 젬 설치 및 웹 서버 구동 가능성을 시연합니다.
EuRuKo 2025년 01월 13일

Ruby Ractors를 활용한 실전 프로젝트 경험과 미래

Seong Heon Jung, "Using Ractors and Making Ractors Usable"

  • Ractors는 Ruby에서 스레드의 한계를 극복하고 안전한 동시성 및 병렬성을 제공하기 위해 도입된 새로운 추상화 모델입니다.
  • Ractors는 메모리 공유를 지양하고 메시지 전달 방식을 채택하여 데드락과 데이터 경쟁 같은 동시성 문제를 해결하는 데 중점을 둡니다.
  • 현재 Ractors는 불안정한 API와 잠재적 버그를 포함하고 있으나, Ruby가 현대 프로그래밍 언어로서 경쟁력을 확보할 핵심적인 기회로 평가됩니다.
EuRuKo 2025년 01월 13일
  • 본 강연은 AI 에이전트의 개념과 구성 요소를 소개하며, 특히 대규모 언어 모델(LLM)을 활용한 비즈니스 프로세스 자동화 가능성을 탐구합니다.
  • 계획 및 추론, 환경 인식, 도구 호출, 메모리 등 AI 에이전트 구축의 핵심 원리를 설명하고, 실제 전자상거래 시나리오를 통해 그 적용 방안을 시연합니다.
  • Ruby 기반의 오픈소스 프레임워크인 `langchainrb`를 소개하며, AI 기술을 실제 애플리케이션에 통합하고 비즈니스 효율성을 높이는 구체적인 방법을 제시합니다.
EuRuKo 2025년 01월 13일
  • WebMock은 Ruby 애플리케이션의 HTTP 요청을 모킹하여 테스트를 격리하고, 신뢰성 및 속도를 향상시키는 데 사용되는 강력한 Gem입니다.
  • 이 Gem은 깔끔한 DSL을 통해 복잡한 HTTP 요청 시나리오를 쉽게 스텁하고 검증할 수 있게 하며, TDD와 레거시 코드 관리에 매우 유용합니다.
  • WebMock은 내부적으로 몽키 패칭과 어댑터를 활용하여 HTTP 클라이언트의 동작을 가로채며, Ruby 커뮤니티의 열정과 지원 속에서 탄생하고 발전했습니다.
EuRuKo 2025년 01월 13일

Ruby에서 gRPC의 현재 상태 탐색: REST의 대안인가?

Fernando Perales, "Let's give REST a rest: exploring the state of gRPC in Ruby"

  • 본 강연은 Ruby 개발 환경에서 gRPC의 현재 활용도와 인기가 다른 언어에 비해 낮은 이유를 심층적으로 탐구합니다.
  • gRPC는 HTTP/2와 프로토콜 버퍼를 기반으로 높은 성능과 다국어 시스템 간의 효율적인 통신을 가능하게 하는 RPC 프레임워크입니다.
  • REST API가 대부분의 상황에서 충분하고 익숙하기 때문에 Ruby 커뮤니티에서는 gRPC 도입에 대한 필요성이 낮으며, 복잡성과 디버깅의 어려움이 주요 고려사항입니다.
EuRuKo 2025년 01월 13일
  • Ruby on Rails에서 서비스 객체는 복잡성을 조직화하는 사실상의 표준이지만, 내부적으로 복잡성을 증가시키는 비효율적인 방식입니다.
  • 강연자는 비즈니스 규칙, 데이터 변이, 컨트롤러 로직 등 '작업 유형별'로 코드를 분리하여 계층형 아키텍처를 구축하는 새로운 방법론을 제시합니다.
  • 이는 기존 서비스 객체의 모호한 개념을 벗어나, Martin Fowler와 Eric Evans의 '서비스 레이어' 및 '도메인 서비스' 개념에 부합하는 명확한 코드 구조를 제안합니다.
EuRuKo 2025년 01월 13일

Ruby와 WebAssembly: 어디서든 Ruby를 실행하다

Yuta Saito, "What you can do with Ruby on WebAssembly"

  • RubyWasm 프로젝트는 Ruby를 WebAssembly(Wasm) 기반으로 웹 브라우저부터 엣지 컴퓨팅까지 다양한 플랫폼에서 실행할 수 있도록 지원합니다.
  • 이는 C Ruby 인터프리터를 Wasm으로 컴파일하고, Ruby 파일 패키징 및 JavaScript 인터프리테이션 라이브러리 제공을 통해 구현됩니다.
  • 특히, Wasm의 최신 컴포넌트 모델을 활용하여 C 확장 라이브러리의 동적 링킹을 지원함으로써 RubyGems와의 호환성을 크게 향상시켰습니다.
EuRuKo 2025년 01월 13일

Ruby 디버거의 작동 원리 및 활용

Dmitry Pogrebnoy, "Demystifying Debugger"

  • Ruby 디버거는 코드에서 버그를 찾고 실행을 제어하는 가장 진보된 도구입니다.
  • 이는 TracePoint와 Instruction Sequence 기술을 활용하며, 특히 최신 Ruby 버전에서는 성능 최적화가 이루어졌습니다.
  • RubyMine 디버거는 모든 Ruby 버전에서 빠르고 편리한 디버깅 경험을 제공하며, Rails 애플리케이션 디버깅 및 인라인 값 표시와 같은 강력한 기능을 지원합니다.
EuRuKo 2025년 01월 13일

Ruby 파서 문법 개선: Racc(라마)의 도입과 역할

Yudai Takada, "How does Lrama make the Ruby parser grammar G.O.A.T.?"

  • Ruby 3.3부터 Bison 대신 자체 파서 생성기 Racc(라마)를 도입하여 문법 유지보수성과 확장성을 크게 개선했습니다.
  • Racc는 기존 Bison의 숫자 참조 방식의 가독성 문제를 명명된 참조로 해결하고, 문법 규칙의 추상화를 위한 매개변수화된 규칙을 제공합니다.
  • Ruby의 파싱 과정은 렉서, 파서, 컴파일러로 구성되며, Racc는 이 중 파서를 생성하여 코드의 추상 구문 트리 생성을 담당합니다.
EuRuKo 2025년 01월 13일

Ruby 최신 기능 활용 및 커뮤니티 기여 방안

Lucian Ghinda, "The Modern Rubyist: When and How to Use the Latest Features"

  • Ruby의 새로운 기능(Endless Method, Data Object, Hash Value Omission, Pattern Matching)을 채택하여 코드의 가독성과 간결성을 높일 수 있습니다.
  • 성숙한 프로그래밍 언어로서 Ruby가 직면한 '프로그래밍 언어 딜레마'를 극복하고 관련성을 유지하기 위해 새로운 기능에 대한 개방적인 태도가 필요합니다.
  • 개발자는 새로운 기능을 적극적으로 실험하고 피드백을 제공함으로써 Ruby 커뮤니티의 성장과 언어의 지속적인 발전에 기여할 수 있습니다.
EuRuKo 2025년 01월 13일

AI를 활용한 애플리케이션 개발 패턴

Obie Fernandez, "Patterns of Application Development Using AI"

  • 본 강연은 기존 애플리케이션에 AI 컴포넌트를 점진적으로 통합하는 개발 패턴과 접근 방식을 소개합니다.
  • 추상 패턴(경로 좁히기, 다수의 작업자)과 구체 패턴(구조화된 입출력, 복화술사)을 통해 AI 활용의 실제적 방법을 제시합니다.
  • Ruby on Rails 애플리케이션 내에서 AI를 개별적이고 모듈화된 비즈니스 로직 구성 요소로 활용하는 전략을 강조합니다.
EuRuKo 2025년 01월 13일
  • 이 발표는 Ruby 개발자가 오픈 소스 코드를 읽는 두 가지 모드('미리 읽기'와 '즉시 읽기')와 세 가지 원칙('클릭하기', '중립 유지', '계속 돌아오기')을 소개하며, 이를 통해 학습 및 디버깅 능력을 향상시키는 방법을 제시합니다.
  • Rails와 MiniTest 사례를 통해 실제 코드 탐색 방법을 보여주고, 특히 MiniTest에서 다형성(Polymorphism) 개념을 재발견한 경험을 공유합니다.
  • 복잡한 문제를 해결하고 새로운 지식을 습득하는 데 오픈 소스 코드 읽기가 얼마나 효과적인지 강조하며, 꾸준한 연습의 중요성을 역설합니다.
EuRuKo 2025년 01월 13일

Rust를 활용한 Ruby 확장 기능 개발: 성능 최적화 및 프로덕션 고려사항

Guilherme Carreiro, "Building native Ruby extensions in Rust"

  • Ruby 확장 기능을 Rust로 개발하는 여정과 그 과정에서 겪는 주요 도전 과제를 다룹니다.
  • 성능 향상을 위한 네이티브 확장 기능의 오해를 해소하고, TOML 파서 개발을 통해 실제 구현 과정을 시연합니다.
  • 에러 처리, 메모리 누수 방지, 사전 컴파일 등 프로덕션 환경 배포를 위한 핵심 고려사항을 제시합니다.
EuRuKo 2025년 01월 13일

Zendesk Rails 모놀리스의 17년 역사: 아키텍처, 성능, 테스트 및 업그레이드 여정

C. Planas, A. Mikhaylov, "2000 engineers, 2 millions lines of code: the history of a Rails monolith"

  • Zendesk는 17년간 Ruby on Rails 모놀리스를 주력으로 사용하며 아키텍처, 데이터베이스, 테스트 전략을 발전시켜왔습니다.
  • 성능 병목은 Ruby가 아닌 데이터베이스에 있었으며, 방대한 테스트 스위트와 MiniTest 활용이 안정적인 운영에 기여했습니다.
  • Rails 버전 업그레이드의 어려움과 '선발 주자 불이익'을 극복하며 지속적인 개선을 이뤄낸 경험을 공유합니다.
jeff 2025년 01월 13일

Saeloun, Rails Foundation의 기여 회원으로 합류

Saeloun joins the Rails Foundation as a Contributing member

  • Ruby on Rails 컨설팅 기업 Saeloun이 Rails Foundation의 새로운 기여 회원으로 합류했습니다.
  • Saeloun은 Rails 프레임워크와 커뮤니티에 오랜 기간 활발히 기여해왔으며, Rails Issue 팀 소속 개발자들이 핵심 기여자 명단에 이름을 올리고 있습니다.
  • 이번 합류를 통해 Saeloun은 Rails의 성장과 발전에 더욱 적극적으로 참여할 예정입니다.
Ruby on Rails 소식지 2025년 01월 10일