Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

루비 REPL 완벽 가이드: IRB부터 Pry까지 한눈에 배우기

REPL은 Read-Eval-Print-Loop(읽기–평가–출력–반복)의 약자입니다.

즉, 루비 코드를 직접 입력하고 그 결과를 즉시 확인할 수 있게 해주는 프로그램입니다.

대표적인 REPL로는 irb가 있으며, 또 다른 인기 도구로는 pry가 있습니다.

이런 도구들이 유용한 이유는 간단합니다. 루비 코드를 빠르게 테스트해 볼 수 있기 때문입니다.

예를 들어, 문자열 배열을 정수 배열로 변환하려고 하는데 정확한 방법이 기억나지 않는다고 가정해 봅시다.

이럴 때 검색해서 방법을 찾아보고(물론 전혀 문제없습니다!), REPL에서 원하는 대로 작동할 때까지 실험해 본 뒤, 완성된 코드를 프로젝트에 통합하면 됩니다.

가장 큰 장점은 무엇일까요?

코드 조각을 독립적으로 테스트할 수 있기 때문에, 오류가 발생해도 고려해야 할 요소가 적고 원인을 훨씬 쉽게 파악할 수 있습니다.

결국 한 번에 한 가지에만 집중할 수 있게 되는 것이죠!

그럼 지금부터 루비에서 사용할 수 있는 다양한 REPL을 살펴보겠습니다.

Interactive Ruby Shell (IRB)

IRB는 모든 루비 개발자가 익히 알고 있는 내장 REPL입니다.

화려한 기능은 많지 않지만, 해야 할 일은 확실하게 해냅니다. 코드를 입력하면 결과를 돌려주는 것이죠.

사용 방법은 간단합니다. 터미널 창에서 irb를 입력하면 됩니다.

그러면 다음과 같은 프롬프트가 나타납니다:

irb(main):001:0>

여기에 루비 코드를 작성하고 엔터 키를 누르면 바로 실행됩니다. 종료하려면 exit를 입력하세요.

IRB 설정 팁

홈 폴더에 .irbrc 파일을 생성하면 다양한 기능을 활성화할 수 있습니다.

명령어 기록 저장하기:

IRB.conf[:SAVE_HISTORY] = 500

자동 들여쓰기 켜기:

IRB.conf[:AUTO_INDENT] = true

프롬프트 커스터마이징하기:

IRB.conf[:PROMPT][:CUSTOM] = {
  PROMPT_I: "irb(#{Dir.pwd}) ",
  PROMPT_S: "irb(#{Dir.pwd})* ",
  PROMPT_C: "irb(#{Dir.pwd})? ",
  PROMPT_N: "irb(#{Dir.pwd})* ",
  RETURN: "%s\n"
}

IRB.conf[:PROMPT_MODE] = :CUSTOM

Pry 젬(Gem)을 사용해야 하는 이유

Pry는 언제든 설치할 수 있는 루비 젬 형태의 REPL로, irb와 비슷하지만 훨씬 더 많은 기능을 제공합니다.

주요 기능은 다음과 같습니다:

  • 구문 강조(Syntax Highlighting)
  • 자동 완성(irb에도 일부 있지만 매우 기본적인 수준)
  • 인트로스펙션 명령(메서드, 변수, 상수 등 목록 조회)
  • 이전에 입력한 코드 편집 후 재실행
  • 디버깅 기능

이러한 기능들 덕분에 대부분의 경우 Pry가 더 나은 선택이 됩니다. 아직 사용해 보지 않았다면 꼭 한번 시도해 보세요.

Rails 프로젝트를 사용 중이라면 Gemfile에 pry-rails를 추가하는 것만으로 rails console에서 Pry를 사용할 수 있습니다. 이 경우 show-modelsshow-routes 같은 편리한 명령어도 함께 사용할 수 있습니다.

Pry에는 다양한 설정 옵션이 있습니다. 홈 폴더의 .pryrc 파일에 작성하면 전역 설정이 되고, 프로젝트 폴더에 두면 해당 프로젝트에만 적용되는 로컬 설정이 됩니다.

ruby -e 옵션으로 한 줄 실행하기

REPL을 실행하지 않고 단 한 줄의 루비 코드만 빠르게 실행하고 싶다면 -e 플래그를 사용하세요.

예시:

ruby -e "puts 123 * 2"

IRB를 열 필요 없이 간단한 동작을 즉시 확인할 때 아주 유용한 방법입니다.

온라인 REPL 활용하기

만약 당장 루비를 설치할 수 없는 환경이라면 어떻게 해야 할까요?

또는 로컬 머신이 아닌 다른 환경에서 코드를 테스트하거나, 시연을 위해 코드를 공유하고 피드백을 받고 싶을 수도 있습니다.

바로 이럴 때 온라인 REPL이 빛을 발합니다. Replit의 Ruby 환경처럼 브라우저만 있으면 바로 코드를 실행해 볼 수 있는 서비스가 여러 개 있습니다.

마무리

지금까지 루비의 REPL에 대해 알아보았습니다! REPL을 활용하면 파일을 생성하지 않고도 코드를 빠르게 테스트할 수 있습니다.

이제 직접 실습해 볼 시간입니다 🙂