첫 번째 발표는 GitHub의 UI 아키텍처에 대한 Joel Haxley의 이야기였습니다. 그는 GitHub의 UI가 여러 시대를 거쳐 발전해왔으며, 특히 접근성과 가용성에 대한 표준이 높아지면서 UI 구축의 복잡성이 증대되었다고 설명했습니다. GitHub은 99.9%의 가용성 표준을 목표로 하며, 이는 UI 버그를 백엔드 버그와 동일하게 심각하게 간주함을 의미합니다. 이러한 요구사항과 앱과 같은 사용자 경험에 대한 기대치 증가로 인해 GitHub은 새로운 경험을 구축할 때 React를 적극적으로 도입하고 있습니다. Joel은 “UI 추상화의 역설(UI abstraction paradox)”을 언급하며, 디자인 시스템이 널리 채택될수록 변경하기 어려워지는 현상과 “프론트엔드 비용이 백엔드의 10배(front-end costs 10x backend)”라는 원칙을 강조하며, 불필요한 UI 복잡성을 줄이고 기존 디자인 시스템을 재사용하는 것이 중요하다고 역설했습니다. 궁극적으로 웹은 네이티브 앱 경험을 새로운 기준으로 삼아야 한다는 점을 시사했습니다.
두 번째 발표는 Sam이 Hack Club Bank (HCB)를 Ruby on Rails로 구축한 경험에 대한 내용이었습니다. HCB는 고등학생 및 비영리 단체를 위한 재정 후원 프로그램으로, 복잡한 금융 거래를 관리하는 플랫폼입니다. Sam은 Column, SVB, Stripe와 같은 다양한 금융 API와의 통합 과정을 상세히 설명했습니다. 특히 거래 내역을 데이터베이스 레코드로 변환하고, 단일 은행 계좌를 여러 프로젝트에 매핑하는 과정에서 발생하는 어려움(예: 프로젝트 간 자금 이체 시 은행 명세서 기록 부재 문제)을 해결하기 위한 독창적인 방법들을 소개했습니다. 신용카드 승인(authorization)과 최종 결제(settlement) 간의 시간차로 인해 발생하는 미결 거래(pending transactions) 및 마이너스 잔액 문제(over capture, multi capture, force capture)는 금융 시스템 개발의 실제적인 난관을 보여주었습니다. 또한, Action Mailbox를 활용한 영수증 처리, Turbo Streams를 이용한 실시간 댓글 및 무한 스크롤 구현 등 Ruby on Rails의 기능을 효과적으로 활용하여 사용자 경험을 개선한 사례를 공유하며, Rails가 복잡한 금융 도메인에서도 강력한 솔루션임을 입증했습니다.
마지막으로 Alan은 헥사고날 아키텍처(Ports and Adapters)에 대해 설명했습니다. 이 패턴은 애플리케이션의 핵심 비즈니스 로직을 외부 환경(데이터베이스, 웹 프레임워크, 외부 서비스 등)으로부터 분리하는 것을 목표로 합니다. 포트(Port)는 애플리케이션이 외부 세계와 상호작용하는 인터페이스(API 또는 SPI)를 정의하고, 어댑터(Adapter)는 특정 기술 스택이나 외부 서비스의 인터페이스를 애플리케이션의 포트와 일치하도록 변환하는 역할을 합니다. Alan은 간단한 커피 머신 예시를 통해 코드를 리팩토링하여 하드웨어 변경 시 애플리케이션 코드를 수정할 필요 없이 어댑터만 교체하면 되도록 만드는 과정을 시연했습니다. 그는 Rails 애플리케이션에서 헥사고날 아키텍처를 적용하는 핵심은 비즈니스 로직을 순수 Ruby 객체(POJO)로 작성하고, Rails를 웹 입력 및 데이터베이스 출력을 처리하는 어댑터로 간주하는 것이라고 강조했습니다. 이를 통해 코드를 테스트하기 쉽고, 유지보수하기 쉬우며, 확장하기 용이하게 만들 수 있다고 설명하며, 대규모 Rails 모놀리스의 유지보수성 향상에 기여할 수 있음을 역설했습니다.