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..
메일 발송 기능 구현 — ActionMailer와 Gmail SMTP 연동하기
·
Ruby On Rails
사용자 회원가입, 주문 확인, 비밀번호 재설정… 모든 서비스에는 메일 발송 기능이 필요합니다.Rails에서는 이를 위해 ActionMailer라는 전용 클래스가 제공되며, Gmail SMTP 서버를 이용하면 누구나 손쉽게 이메일을 전송할 수 있어요.이번 글에서는 회원가입 확인 메일을 예시로 ActionMailer + Gmail SMTP 연동을 처음부터 끝까지 정리해볼게요.📮 1. ActionMailer 클래스 생성$ bin/rails generate mailer UserMailer위 명령어를 실행하면 다음과 같은 파일이 생성됩니다:app/mailers/user_mailer.rbapp/views/user_mailer/ (메일 템플릿 디렉토리)✉️ 2. 메일 메서드 정의# app/mailers/user_m..
댓글 기능 추가하기 — 모델 연관관계 완전 정복
·
Ruby On Rails
게시판, 블로그, 커뮤니티… 어디서든 빠지지 않는 기능이 바로 댓글이죠.이번 글에서는 Post와 Comment 사이의 관계를 설정하고, 댓글 작성/조회/삭제까지 구현하면서 Rails의 모델 연관관계를 완전히 이해해볼 거예요.🧱 1. 모델 관계 설계: Post has_many CommentsPost가 여러 개의 Comment를 가지는 구조입니다.$ bin/rails g model Comment body:text post:referencespost:references는 post_id 컬럼을 자동으로 추가하고, 외래키 관계를 설정합니다.# db/migrate/xxxxx_create_comments.rbt.text :bodyt.references :post, null: false, foreign_key: tr..