Ruby는 유연성과 생산성을 강조하는 동적 프로그래밍 언어예요. 이 글에서는 제가 실무에서 사용하는 최소한의 흐름으로, 설치 → 프로젝트 생성 → 실행 → 테스트 → 빌드까지 빠르게 통과해봅니다. 처음 시작하는 분들이 "바로 써본다"에 집중할 수 있도록 가볍게 구성했습니다.
1) Ruby 설치
- RVM(Ruby Version Manager) 사용 (macOS/Linux)
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
- Ruby 설치
rvm install ruby --latest
rvm use ruby --default
- 설치 확인
ruby --version
gem --version
bundler --version
2) 새 프로젝트 만들기
Ruby는 bundler
라는 의존성 관리 도구를 씁니다. gem 패키지를 만든다면 bundle gem
이 편해요.
- gem 라이브러리
bundle gem my_gem
cd my_gem
생성된 기본 구조:
my_gem/
├─ Gemfile
├─ lib/
│ └─ my_gem.rb
├─ my_gem.gemspec
└─ spec/
└─ my_gem_spec.rb
3) 첫 코드 작성
lib/my_gem.rb
파일을 열어 간단한 모듈부터 시작해봅니다.
# lib/my_gem.rb
module MyGem
def self.greet(name = "Ruby")
"Hello, #{name}!"
end
end
실행:
ruby -e "require_relative 'lib/my_gem.rb'; puts MyGem.greet"
4) 의존성 관리
Gemfile
에 라이브러리를 추가했다면 설치합니다.
bundle install
처음 수준에선 필요 없지만, HTTP 클라이언트나 웹 프레임워크를 넣을 때 필수입니다.
5) 코드 포맷
RuboCop을 설치하고 사용합니다.
- 설치
gem install rubocop
- 실행/자동수정
rubocop
rubocop -a
6) 간단한 테스트(RSpec)
테스트 파일 spec/my_gem_spec.rb
:
# spec/my_gem_spec.rb
require "my_gem"
RSpec.describe MyGem do
it "기본 인사말을 출력한다" do
expect(MyGem.greet).to eq "Hello, Ruby!"
end
it "사용자 이름으로 인사한다" do
expect(MyGem.greet("World")).to eq "Hello, World!"
end
end
테스트 실행:
bundle exec rspec
# 자세히 보고 싶다면
bundle exec rspec -v
7) gem 빌드
gem을 빌드합니다.
gem build my_gem.gemspec
설치 테스트:
gem install ./my_gem-0.1.0.gem
8) 의존성 그래프 보기(디버깅에 유용)
bundle viz
9) 선택: Lint(RuboCop)
이미 위에서 언급했지만, 추가 설정:
rubocop --auto-gen-config
전체 흐름 한눈에 보기
flowchart LR A[Ruby 설치] --> B[bundle gem my_gem] B --> C[lib/my_gem.rb 작성] C --> D[ruby 실행] D --> E[bundle exec rspec] E --> F[rubocop] F --> G[gem build] G --> H[gem install]
다음 단계
- 자주 쓰는 gem들
- 웹: Sinatra, Rails
- 테스트: RSpec
- HTTP 클라이언트: Faraday
- 작은 gem이나 Rails 앱을 만들어 보며 감각을 익히세요. 필요해질 때 테스트를 보강하고,
Gemfile
로 의존성을 관리하면 됩니다.
참고: 설치 시 발생할 수 있는 문제 해결은 별도 문서에서 자세히 다룹니다. 우선은 위 흐름으로 첫 프로젝트를 끝까지 만들어 보고, 막히는 지점이 생기면 개별 트러블슈팅 글을 참고하세요.