Rails Insights

Rails와 HTMX로 애플리케이션을 빠르게 개발하는 방법

웹 애플리케이션 개발은 종종 복잡하고 시간이 많이 소요되는 작업입니다. 하지만 Ruby on Rails와 HTMX를 사용하면 개발 속도를 크게 향상시킬 수 있습니다. 이 글에서는 Rails와 HTMX를 활용하여 애플리케이션을 빠르게 개발하는 방법에 대해 알아보겠습니다.

Rails란 무엇인가?

Ruby on Rails(이하 Rails)는 Ruby 프로그래밍 언어로 작성된 오픈 소스 웹 애플리케이션 프레임워크입니다. Rails는 MVC(모델-뷰-컨트롤러) 아키텍처를 기반으로 하며, 개발자가 빠르게 애플리케이션을 구축할 수 있도록 다양한 기능을 제공합니다. Rails의 주요 특징은 다음과 같습니다:

  • 코드의 간결함: Ruby 언어의 특성 덕분에 코드가 간결하고 읽기 쉽습니다.
  • 강력한 커뮤니티: Rails는 활발한 커뮤니티가 있어 다양한 플러그인과 라이브러리를 쉽게 찾을 수 있습니다.
  • 생산성: Rails는 'Convention over Configuration' 원칙을 따르므로, 기본 설정이 잘 되어 있어 개발자가 빠르게 작업을 시작할 수 있습니다.

HTMX란 무엇인가?

HTMX는 HTML을 통해 AJAX, CSS 전환, 서버 측 템플릿 렌더링 등을 쉽게 구현할 수 있도록 도와주는 JavaScript 라이브러리입니다. HTMX를 사용하면 클라이언트와 서버 간의 상호작용을 간단하게 처리할 수 있습니다. HTMX의 주요 특징은 다음과 같습니다:

  • 간단한 API: HTMX는 HTML 속성을 사용하여 AJAX 요청을 쉽게 만들 수 있습니다.
  • 서버 중심의 개발: HTMX는 서버에서 HTML을 직접 렌더링하므로, 클라이언트 측의 복잡성을 줄일 수 있습니다.
  • 빠른 프로토타이핑: HTMX를 사용하면 빠르게 프로토타입을 만들고 테스트할 수 있습니다.

Rails와 HTMX의 조합

Rails와 HTMX를 함께 사용하면 웹 애플리케이션을 더욱 빠르고 효율적으로 개발할 수 있습니다. Rails는 강력한 백엔드 프레임워크로서 데이터베이스와의 상호작용을 쉽게 처리하고, HTMX는 클라이언트 측의 동적인 요소를 간단하게 구현할 수 있도록 도와줍니다.

환경 설정

Rails와 HTMX를 사용하기 위해서는 먼저 Rails 애플리케이션을 생성해야 합니다. 다음 명령어를 사용하여 새로운 Rails 애플리케이션을 생성합니다:

rails new myapp

애플리케이션 디렉토리로 이동한 후, HTMX를 설치합니다. HTMX는 npm을 통해 설치할 수 있습니다:

cd myapp
npm install htmx.org

그 다음, HTMX를 애플리케이션에 포함시킵니다. app/javascript/packs/application.js 파일에 다음 코드를 추가합니다:

import "htmx.org";

기본 CRUD 애플리케이션 만들기

이제 Rails와 HTMX를 사용하여 간단한 CRUD(Create, Read, Update, Delete) 애플리케이션을 만들어 보겠습니다. 예를 들어, '할 일' 목록 애플리케이션을 만들어 보겠습니다.

모델 생성

먼저, 할 일 목록을 위한 모델을 생성합니다:

rails generate model Task title:string completed:boolean

마이그레이션을 실행하여 데이터베이스에 테이블을 생성합니다:

rails db:migrate

컨트롤러 생성

다음으로, 할 일 목록을 처리할 컨트롤러를 생성합니다:

rails generate controller Tasks

이제 app/controllers/tasks_controller.rb 파일을 열고 다음과 같이 수정합니다:

class TasksController < ApplicationController
  def index
    @tasks = Task.all
  end

  def create
    @task = Task.new(task_params)
    if @task.save
      render partial: "task", locals: { task: @task }
    else
      render json: @task.errors, status: :unprocessable_entity
    end
  end

  private

  def task_params
    params.require(:task).permit(:title, :completed)
  end
end

뷰 생성

이제 뷰를 생성하여 할 일 목록을 표시하고 추가할 수 있도록 합니다. app/views/tasks/index.html.erb 파일을 다음과 같이 수정합니다:

<h1>할 일 목록</h1>
<div id="task-list">
  <%= render @tasks >
</div>

<form id="new-task-form" hx-post="/tasks" hx-target="#task-list" hx-swap="beforeend">
  <input type="text" name="task[title]" placeholder="할 일 입력" required>
  <button type="submit">추가</button>
</form>

그리고 app/views/tasks/_task.html.erb 파일을 생성하여 각 할 일을 렌더링하는 부분을 추가합니다:

<div>
  <span><%= task.title %></span>
  <span><%= task.completed ? "완료" : "미완료" %></span>
</div>

애플리케이션 실행

모든 설정이 완료되었습니다. 이제 애플리케이션을 실행해 보겠습니다:

rails server

브라우저에서 http://localhost:3000/tasks에 접속하면 할 일 목록 애플리케이션을 확인할 수 있습니다. 새로운 할 일을 추가하면 HTMX가 AJAX 요청을 통해 서버와 통신하여 목록에 추가됩니다.

결론

Rails와 HTMX를 사용하면 웹 애플리케이션을 빠르고 효율적으로 개발할 수 있습니다. Rails의 강력한 백엔드 기능과 HTMX의 간편한 클라이언트 측 상호작용을 결합하여, 개발자는 더 적은 코드로 더 많은 기능을 구현할 수 있습니다. 이 조합을 통해 여러분의 다음 프로젝트를 더욱 빠르게 진행해 보세요!

Published: August 22, 2024

© 2024 RailsInsights. All rights reserved.