API 서버로서의 Rails — Rails + React/Vue 조합 만들기
·
Ruby On Rails
최근 웹 개발은 백엔드와 프론트엔드의 완전 분리가 일반적인 구조가 되었습니다.이제는 Rails가 전체 HTML을 렌더링하는 대신, JSON API만 제공하는 서버 역할을 하는 경우가 많죠.이런 조합에서는 프론트엔드는 React, Vue 등으로 구축하고, Rails는 API 서버로만 동작이번 글에서는 Rails를 API 모드로 설정하고, React 또는 Vue 프론트엔드와 함께 동작시키는 전체 구조를 다뤄봅니다.🧱 1. Rails API 모드로 새 프로젝트 생성$ rails new backend-api --api--api 옵션을 주면 Rails는 다음과 같은 변경 사항이 적용된 상태로 시작됩니다:뷰 렌더링 미사용 (ERB 등 제외)세션/쿠키 비활성화ActionController::API 기반으로 가벼운 ..
Rails 캐싱 전략 — 페이지, 프래그먼트, 러시아 인형 캐시
·
Ruby On Rails
빠른 웹사이트는 사용자 경험을 향상시키고, 서버 부하도 줄여줍니다.Rails는 이를 위해 강력한 캐싱 기능을 기본 제공하고 있어요.이번 글에서는 Rails의 세 가지 주요 캐싱 전략인 페이지 캐시, 프래그먼트 캐시, 러시아 인형 캐시(Russian Doll Caching)를 하나씩 예제와 함께 설명해볼게요.📄 1. 페이지 캐시 (Page Caching)전체 HTML 페이지를 캐싱해서, 컨트롤러를 거치지 않고 직접 파일을 서빙합니다.하지만 이는 Rails 4 이후 core에서 제거되었고, 현재는 nginx 등 웹서버에서 직접 구현하는 것이 일반적이에요.# 사용 권장 ❌ (대신 nginx로 정적 파일 처리 권장)예전에는 다음과 같이 썼습니다:caches_page :index이 글에서는 더 실용적인 프래그먼..
Rails에서 환경변수 관리 — dotenv와 secrets.yml
·
Ruby On Rails
Rails 애플리케이션을 개발하다 보면 API 키, 비밀번호, DB 비밀 설정 등 민감한 정보를 코드에 직접 넣는 실수를 종종 저지르게 됩니다.이런 정보는 절대 Git에 커밋해서는 안 되고, 환경변수(Environment Variable)로 분리해서 관리하는 것이 필수입니다.이번 글에서는 두 가지 방법 — dotenv로 간편하게 관리하는 방법과, secrets.yml 및 credentials로 Rails 자체 기능을 사용하는 방법을 소개합니다.🌿 1. dotenv — 간단하고 직관적인 방식로컬 개발 환경에서 환경변수를 쉽게 관리할 수 있는 방법입니다.✅ 설치# Gemfilegem 'dotenv-rails', groups: [:development, :test]$ bundle install📁 .env ..
Capistrano로 자동 배포 파이프라인 만들기
·
Ruby On Rails
Heroku로 간편하게 배포해봤다면 이제는 직접 관리하는 서버에 자동 배포 파이프라인을 구축해볼 차례입니다.그 중심에는 바로 Capistrano가 있어요. 이 도구는 로컬에서 명령 한 번으로 원격 서버에 코드 배포, 마이그레이션, 서비스 재시작 등을 자동으로 수행합니다.이번 글에서는 Rails 앱을 Ubuntu 서버에 Capistrano로 자동 배포하는 기본 설정을 단계별로 정리해봅니다.🚀 1. Capistrano 설치# Gemfilegroup :development do gem 'capistrano', require: false gem 'capistrano-rails', require: false gem 'capistrano-rbenv', require: false gem 'capistrano..
Heroku로 Rails 앱 배포하기 — 빠르고 간단한 클라우드 배포
·
Ruby On Rails
Rails를 로컬에서만 실행하는 건 반쪽짜리 개발입니다.진짜 세상에 보여주기 위해선 클라우드에 배포가 필요하죠.오늘은 가장 쉽고 빠른 배포 플랫폼인 Heroku를 이용해 Rails 앱을 배포하는 과정을 정리해볼게요.단 10분이면 여러분의 앱을 전 세계 누구나 볼 수 있게 됩니다. 준비되셨나요? 🚀🔧 1. Heroku CLI 설치먼저 [Heroku 공식 CLI](https://devcenter.heroku.com/articles/heroku-cli)를 설치합니다. macOS, Windows, Linux 모두 지원합니다.$ brew tap heroku/brew && brew install heroku$ heroku login로그인 후 브라우저가 열리면 Heroku 계정으로 인증해주세요.🗃️ 2. 앱 준..
Rails 앱 보안 점검 — CSRF, SQL Injection 막기
·
Ruby On Rails
웹 애플리케이션을 운영한다는 건 단지 기능만 잘 구현하는 게 아닙니다.그보다 더 중요한 건 서비스를 안전하게 지키는 일이죠.이번 글에서는 Rails 앱을 개발할 때 반드시 신경 써야 할 보안 이슈 중, 가장 대표적인 CSRF와 SQL Injection을 다뤄보겠습니다.🛡️ CSRF(Cross Site Request Forgery) 방지❓ CSRF란?로그인된 사용자의 세션을 악용해 의도하지 않은 요청을 보내는 공격입니다.예를 들어, 사용자가 로그인된 상태에서 악성 사이트에 접속하면 모르게 포스트가 삭제되거나 설정이 바뀌는 등의 피해가 발생할 수 있어요.✅ Rails의 기본 방어Rails는 기본적으로 CSRF 공격을 막기 위한 토큰 기반 보호가 활성화돼 있습니다.# app/controllers/applic..