기사 목록
119개의 글이 있습니다
Vapor로 첫 백엔드 만들기 1편: 프로젝트 설정과 기본 라우트
Building My First Vapor Backend in 2026 pt. 1
- Vapor 대화형 프로젝트 생성 과정에서 Fluent와 Postgres를 선택하고, Leaf는 제외해 JSON API 중심의 LinkVault 기반을 만든다.
- 로컬에서 앱을 실행한 뒤 /health와 /api/welcome 라우트를 추가해 상태 응답과 Content 기반의 타입 지정 JSON 응답을 확인한다.
- LinkPreview 타입과 예시 데이터를 반환하는 /api/links를 구현한다. 다음 편에서는 이 목업 라우트를 Fluent 모델과 데이터베이스 기반 CRUD API로 바꿀 예정이다.
Rails와 YAML 파일로 Xcode 없이 네이티브 iOS 앱 구축하기
I built a native iOS app with Rails and one YAML file
- Ruby Native는 Rails 뷰를 WKWebView로 렌더링하면서도 탭 바, 내비게이션 바 등 핵심 UI를 네이티브 컴포넌트로 대체해 사용자 경험을 개선한다.
- YAML 설정 파일과 전용 ERB 헬퍼를 사용하여 Swift 코드 작성이나 Xcode 사용 없이 Rails 코드베이스 내에서 네이티브 기능을 제어할 수 있다.
- Sign in with Apple과 같은 복잡한 인증 프로세스를 클라우드 빌드 파이프라인을 통해 처리하며, 기존 OmniAuth 설정을 그대로 활용 가능하다.
2026-2028년 Ruby on Rails 생태계에서 React Native를 선택해야 하는 이유
Why we choose React Native for Ruby on Rails ecosystems in 2026-2028
- Rails를 백엔드 단일 진실 공급원(Single Source of Truth)으로 삼고 React Native로 iOS와 Android를 동시 개발하여 비즈니스 로직 중복과 비용을 최소화한다.
- Hotwire는 내부 도구나 단순한 앱에 적합하지만, 프리미엄 소비자 경험과 고도화된 모바일 UX를 위해서는 React Native가 더 효율적인 대안이 된다.
- AI 기능 구현 시 Rails를 서버 측 오케스트레이션 레이어로 활용하고 React Native는 UI에만 집중함으로써 플랫폼 간 일관된 AI 동작과 보안을 보장한다.
모바일 앱 안정성을 위한 계층형 테스트 전략: Gusto의 iOS 테스트 자동화 사례
Building Resilient Mobile Apps: A Layered Testing Strategy for Long-Term Stability
- 기존의 느리고 불확실한 UI 테스트 중심 구조에서 탈피하여, 유닛 테스트를 기반으로 스냅샷과 UI 테스트를 쌓아 올리는 테스트 피라미드 전략을 채택하여 안정성을 확보했다.
- MVVM 및 Coordinator 아키텍처를 활용한 프로토콜 기반 모킹으로 유닛 테스트의 결정성을 확보하고, swift-snapshot-testing을 도입해 시각적 회귀를 방지하는 체계를 구축했다.
- 네트워크 의존성을 제거한 API 스터빙과 Bitrise의 병렬 실행 및 캐싱 기술을 결합하여 전체 테스트 수행 시간을 75분에서 39분으로 단축하고 개발 피드백 루프를 대폭 개선했다.
128개 프로그래밍 언어를 순환하는 콰인 릴레이: Quine Relay
A Ruby program that generates a Rust program that generates a Scala program...
- Ruby로 시작해 Rust, Scala 등 128개 언어를 거쳐 다시 원래의 Ruby 코드로 돌아오는 거대한 순환형 콰인 프로그램이다.
- Ubuntu 25.10 환경에서 수많은 컴파일러와 인터프리터를 설치하거나 Docker를 사용하여 전체 실행 과정을 재현할 수 있다.
- 50개 언어로 시작하여 현재 128개 언어까지 확장되었으며, 각 언어의 빌드 및 실행 명령어가 체인 형태로 정교하게 연결되어 있다.
Emacs 구문 체크 프레임워크 Flycheck 36 릴리스: 보안 강화 및 주요 기능 업데이트
Flycheck 36
- Flycheck 36은 프로젝트 메인테이너 변경 이후 가장 중요한 릴리스로, 새로운 체커 추가와 보안 취약점 해결 및 대대적인 레거시 정리를 포함합니다.
- Rust 기반의 고성능 oxlint 및 Emacs 내장 org-lint 체커가 새롭게 도입되었으며, ShellCheck와 Ruff 등 기존 도구의 사용자 편의성이 대폭 개선되었습니다.
- 보안 측면에서 Emacs Lisp 체커의 임의 코드 실행 취약점을 수정하였고, 더 이상 유지보수되지 않는 TSLint 및 Ruby Sass 등 노후화된 체커들을 제거했습니다.
FOSDEM 2026 패키지 관리 세션 요약: 보안 강화와 공급망 표준화의 흐름
Package Management at FOSDEM 2026
- FOSDEM 2026에서는 RubyGems 인프라 사고 분석과 crates.io 피싱 공격 사례를 통해 패키지 관리 시스템의 보안 취약점을 진단하고 WebAuthn 및 Passkey와 같은 강력한 인증 수단의 필요성을 강조하였습니다.
- 소프트웨어 공급망의 투명성을 높이기 위해 PURL(Package-URL)이 국제 표준으로 자리 잡았으며, Sigstore를 활용한 빌드 증명(Attestation)과 SBOM 생성 기술이 다양한 언어 생태계에 적극적으로 도입되고 있는 추세입니다.
- Nix, Guix, Spack과 같은 기능적 패키지 관리자와 고성능 컴퓨팅(HPC)을 위한 도구들이 발전하며, 재현 가능한 빌드와 선언적 환경 구축을 통한 시스템 안정성 및 신뢰성 확보가 이번 행사의 주요 의제로 다루어졌습니다.
위험할 정도로 충분한 Turbo Native: Rails 앱을 iOS/Android 앱으로 변환하기
Joe Masilotti - Just enough Turbo Native to be dangerous - Rails World 2023
- Turbo Native는 Rails 개발자가 기존 서버-사이드 HTML을 활용하여 iOS 및 Android 앱을 빠르고 효율적으로 구축할 수 있도록 지원하며, 네이티브 SDK 접근성을 제공합니다.
- 앱 스토어 승인 없이 서버 코드 변경 사항이 모바일 앱에 즉시 반영되는 "한 번 작성, 어디든 배포" 모델을 통해 개발 주기를 단축하고 Rails 개발에 집중할 수 있습니다.
- Path Configuration과 Strada, Turbo Navigator와 같은 고급 기능을 통해 웹 UI의 한계를 넘어 특정 화면을 네이티브로 업그레이드하거나 네이티브 컴포넌트를 통합하여 유연성을 극대화할 수 있습니다.
제네릭 및 메타프로그래밍 모델 탐구: Go, Rust, Swift, D 그리고 그 이상
Models of generics and metaprogramming: Golang, Rust, Swift, D, and more
- 제네릭은 다양한 타입의 요소를 처리하는 코드 작성 문제를 해결하며, 이를 위한 두 가지 주요 접근 방식은 '박싱(Boxing)'과 '모노모피즘(Monomorphization)'입니다.
- 박싱은 런타임에 균일한 표현을 사용하여 유연성을 제공하지만 성능 저하가 있을 수 있으며, 모노모피즘은 컴파일 시 코드 복제를 통해 최적의 성능을 달성하지만 컴파일 시간과 코드 크기가 증가할 수 있습니다.
- 제네릭 시스템은 메타프로그래밍의 한 형태로, 동적 언어의 리플렉션, 절차적 매크로, 스테이징 컴파일 등 다양한 메타프로그래밍 모델로 확장될 수 있습니다.