IMCAT.DEV
로그인 가입
Ruby 중급 도구

Ruby Gemfile과 Bundler

Ruby Gemfile과 Bundler — 중급

Gemfile과 Bundler

1. 도입 (왜 배워야 하는가)

Ruby에서 Gemfile과 Bundler는 필수적인 도구입니다. Gemfile은 Ruby 애플리케이션에서 사용하는 외부 라이브러리(젬)를 정의하는 파일이고, Bundler는 이러한 젬을 설치하고 관리하는 역할을 합니다. 실무에서 여러 개발자들이 함께 작업할 때, Gemfile과 Bundler를 사용하지 않으면 각 개발자의 환경이 달라져서 코드가 제대로 작동하지 않을 위험이 있습니다. 예를 들어, A 개발자가 사용하는 젬의 버전이 B 개발자와 다르면, 같은 코드를 실행해도 서로 다른 결과가 나올 수 있습니다. 이런 상황을 방지하기 위해 Gemfile과 Bundler를 활용해 일관된 환경을 유지하는 것이 중요합니다.

2. 핵심 개념 설명

  • Gemfile: Ruby 애플리케이션에서 필요한 젬의 목록과 버전을 정의하는 파일입니다. 마치 요리 레시피처럼, 필요한 재료(젬)를 적어놓은 것입니다.
  • Bundler: Gemfile에 명시된 젬을 설치하고 관리하는 도구입니다. 요리사가 레시피에 따라 재료를 준비하는 것과 비슷하게, Bundler는 Gemfile에 따라 필요한 젬을 다운로드하고 설정합니다.
  • 용어정의
    GemRuby의 라이브러리 또는 패키지
    Gemfile필요한 젬 목록을 정의하는 파일
    BundlerGemfile에 따라 젬을 설치하고 관리하는 도구

    3. 기본 코드 예제

    Gemfile을 생성하고 Bundler로 젬을 설치하는 기본적인 사용법을 보여주겠습니다.

    # Gemfile
    source 'https://rubygems.org'
    
    gem 'rails', '~> 6.0'
    gem 'pg', '~> 1.2'
    # 터미널에서 실행
    $ bundle install
  • 실행 결과:
  • Fetching gem metadata from https://rubygems.org/.........
    Resolving dependencies...
    Installing rails 6.0.0
    Installing pg 1.2.3
    Bundle complete! 2 Gemfile dependencies, 10 gems now installed.
    Use bundle info [gemname] to see where a gem is installed.
  • 코드 한 줄씩 동작 설명:
  • - source 'https://rubygems.org': 젬을 다운로드할 소스를 지정합니다. 여기서는 공식 RubyGems 소스를 사용합니다. - gem 'rails', '~> 6.0': Rails 프레임워크를 추가합니다. ~>는 특정 버전 범위를 의미합니다. - gem 'pg', '~> 1.2': PostgreSQL 데이터베이스를 위한 젬을 추가합니다. - bundle install: Gemfile에 정의된 젬을 설치하는 명령어입니다.

    4. 실전 활용 예제

    예제 1: 웹 애플리케이션 개발

    쇼핑몰 웹 애플리케이션을 개발할 때 Gemfile에 필요한 젬을 추가합니다.

    # Gemfile
    gem 'devise' # 사용자 인증을 위한 젬
    gem 'cancancan' # 권한 관리

    이렇게 하면 사용자의 인증과 권한 관리를 쉽게 구현할 수 있습니다.

    예제 2: API 서버 구축

    API 서버를 만들 때 필요한 젬을 추가합니다.

    # Gemfile
    gem 'grape' # API를 쉽게 만들기 위한 젬
    gem 'rspec' # 테스트를 위한 젬

    이렇게 하면 API 서버를 빠르게 구축하고, 테스트할 수 있습니다.

    5. 흔한 실수와 주의사항

    실수 1: Gemfile에 젬을 잘못 추가하기

    # 잘못된 코드
    gem 'rails', '6.0.0.' # 버전 마지막에 '.'이 있음
    # 올바른 코드
    gem 'rails', '6.0.0' # 버전 마지막에 '.'이 없음
  • 잘못된 코드에서는 문법 오류가 발생하므로 주의해야 합니다.
  • 실수 2: Bundler를 실행하지 않기

    Gemfile을 수정한 후에 Bundler를 실행하지 않으면 변경 사항이 반영되지 않습니다.

    # 잘못된 실행
    $ gem install rails
    # 올바른 실행
    $ bundle install
  • 항상 Gemfile을 수정한 후에는 bundle install을 실행해야 합니다.
  • 6. 정리

  • Gemfile은 프로젝트에 필요한 젬을 정의하는 파일입니다.
  • Bundler는 Gemfile에 따라 젬을 설치하고 관리하는 도구입니다.
  • 실무에서는 Gemfile을 통해 환경을 일관되게 유지하는 것이 중요합니다.
  • 다음에 학습하면 좋은 주제는 Ruby on Rails 프레임워크, RSpec을 통한 테스트 및 CI/CD 도구 사용입니다.