☁️ 클라우드

Render

Render

클라우드 애플리케이션 플랫폼. Heroku 대안. 무료 티어 제공.

📖 상세 설명

Render는 개발자를 위한 통합 클라우드 플랫폼으로, 웹 서비스, 정적 사이트, PostgreSQL, Redis, Cron Jobs 등을 한 곳에서 관리할 수 있습니다. "Heroku의 편리함 + AWS의 신뢰성"을 목표로 설계되었으며, 2022년 Heroku 무료 티어 폐지 이후 대안으로 급부상했습니다.

Render는 2018년 설립되어 현재 Infrastructure-as-Code(render.yaml)와 Preview Environments를 지원합니다. GitHub/GitLab 연동으로 자동 배포가 이루어지며, Node.js, Python, Ruby, Go, Rust, Elixir 등 주요 런타임을 자동 감지합니다.

Render의 서비스 유형으로는 Web Service(백엔드 API), Static Site(프론트엔드), Private Service(내부 마이크로서비스), Background Worker(비동기 작업), Cron Job(정기 작업)이 있습니다. 무료 티어에서 정적 사이트는 월 100GB 대역폭, 웹 서비스는 스핀다운(슬립 모드)과 함께 제공됩니다.

실무에서 Render는 Ruby on Rails, Django 같은 풀스택 프레임워크 배포에 강점이 있습니다. Managed PostgreSQL은 자동 백업, 고가용성 옵션을 제공하고, Private Network로 서비스 간 보안 통신이 가능합니다.

💻 코드 예제

# render.yaml - Infrastructure as Code
services:
  # 웹 서비스 (백엔드 API)
  - type: web
    name: api-server
    env: node
    region: oregon
    plan: starter  # free, starter, standard, pro
    buildCommand: npm ci && npm run build
    startCommand: npm start
    healthCheckPath: /health
    envVars:
      - key: NODE_ENV
        value: production
      - key: DATABASE_URL
        fromDatabase:
          name: mydb
          property: connectionString
      - key: REDIS_URL
        fromService:
          name: redis-cache
          type: redis
          property: connectionString
    autoDeploy: true

  # 정적 사이트 (프론트엔드)
  - type: web
    name: frontend
    env: static
    buildCommand: npm run build
    staticPublishPath: ./dist
    headers:
      - path: /*
        name: Cache-Control
        value: public, max-age=31536000
    routes:
      - type: rewrite
        source: /*
        destination: /index.html

  # 백그라운드 워커
  - type: worker
    name: job-processor
    env: python
    buildCommand: pip install -r requirements.txt
    startCommand: python worker.py

  # 크론 잡 (매일 자정 실행)
  - type: cron
    name: daily-cleanup
    env: node
    schedule: "0 0 * * *"
    buildCommand: npm ci
    startCommand: npm run cleanup

databases:
  - name: mydb
    databaseName: myapp
    plan: starter  # free, starter, standard, pro

# Redis 캐시
  - name: redis-cache
    type: redis
    plan: starter

🗣️ 실무에서 이렇게 말하세요

💬 인프라 논의에서
"Render로 가면 render.yaml 하나로 전체 인프라를 코드로 관리할 수 있어요. 웹 서버, 워커, PostgreSQL, Redis를 한 파일에 정의하고 git push하면 전부 프로비저닝됩니다. Preview Environment로 PR마다 독립 환경도 자동 생성되고요."
💬 Heroku 대안 논의에서
"Render가 Heroku 대비 가격이 절반 정도예요. Starter 플랜이 월 $7인데 Heroku Eco는 $5지만 슬립 없이 24시간 가동하려면 $25 들거든요. 무료 PostgreSQL도 90일 제한 있지만 테스트용으로는 충분합니다."
💬 면접에서
"Render와 Railway의 차이점으로, Render는 Infrastructure-as-Code와 Preview Environment가 강점이고, Railway는 더 직관적인 대시보드와 빠른 배포 속도가 장점입니다. Rails나 Django 풀스택은 Render, 빠른 프로토타이핑은 Railway를 선호합니다."

⚠️ 흔한 실수 & 주의사항

무료 티어 슬립 모드 미인지

무료 Web Service는 15분 무활동 후 슬립 모드로 전환되어 첫 요청 시 30초까지 걸릴 수 있습니다. 프로덕션에서는 유료 플랜을 사용하거나 UptimeRobot으로 주기적 요청을 보내세요.

무료 PostgreSQL 90일 만료

Render 무료 PostgreSQL은 90일 후 자동 삭제됩니다. 경고 이메일을 놓치면 데이터가 유실될 수 있습니다. 중요 데이터는 유료 플랜을 사용하거나 정기 백업을 설정하세요.

최적의 배포 전략

render.yaml로 인프라를 버전 관리하고, Preview Environment로 PR 리뷰 품질을 높이세요. Zero-downtime Deploy가 기본이지만, 마이그레이션은 Pre-deploy Command로 빌드 시 실행하는 것이 안전합니다.

🔗 관련 용어

📚 더 배우기