VS Code에서 Ruby 디버깅 마스터하기: Shopify, rdbg, RSpec 설정

Mastering Ruby Debugging in VS Code: Shopify, rdbg, and RSpec Setup

작성자
발행일
2025년 08월 19일

핵심 요약

  • 1 VS Code에서 Shopify LSP, rdbg 디버거, RSpec 테스트 프레임워크를 활용한 Ruby 디버깅 환경 설정 방법을 상세히 다룹니다.
  • 2 Shopify 테마/앱 개발을 위한 LSP 설치 및 설정, Ruby 3.1+의 기본 디버거인 rdbg의 기본 사용법과 VS Code 통합을 설명합니다.
  • 3 RSpec 및 Minitest, Cucumber와 같은 테스트 프레임워크의 디버깅 설정과 원격 디버깅, 성능 팁, 일반적인 문제 해결 방안을 제시합니다.

도입

디버깅은 모든 개발자의 필수적인 작업 흐름이며, 견고한 디버깅 환경은 생산성을 크게 향상시킬 수 있습니다. 본 문서에서는 Visual Studio Code에서 Ruby 애플리케이션을 디버깅하는 방법을 탐구하며, 특히 Shopify 언어 서버 프로토콜(LSP), debug gem의 rdbg 디버거 사용, RSpec 및 기타 테스트 프레임워크를 위한 디버거 설정이라는 세 가지 핵심 영역에 중점을 둡니다. 표준 Ruby on Rails 애플리케이션이든 Shopify 테마/플러그인이든 관계없이, 이러한 기술은 코드 디버깅을 더욱 효과적으로 수행하는 데 도움이 될 것입니다. 시작하기 전에 Visual Studio Code, Ruby (rbenv, rvm, mise와 같은 버전 관리자로 관리), 디버깅할 Ruby 프로젝트가 설치되어 있는지 확인해야 합니다.

본 문서에서는 Visual Studio Code에서 Ruby 디버깅 환경을 구축하는 세 가지 핵심 요소를 자세히 설명합니다.

1. Shopify 언어 서버 프로토콜 (LSP) 설정

Shopify 테마 또는 앱 개발 시 Shopify LSP는 구문 강조, 자동 완성, 오류 감지, 정의 이동, 호버 문서와 같은 기능을 제공하여 개발 경험을 크게 향상시킵니다.

  • 설치: Shopify CLI(npm install -g @shopify/cli @shopify/theme)를 설치하고, VS Code 확장 마켓플레이스에서 “Shopify Liquid” 및 “Ruby LSP” 확장을 설치합니다.

  • 워크스페이스 설정: 프로젝트 루트에 .vscode/settings.json 파일을 생성하여 Ruby LSP 포매터, 린팅, Ruby 버전 관리자 등을 설정합니다. Liquid 템플릿에 대한 지능형 코드 완성 및 오류 검사 기능을 활용할 수 있습니다.

2. debug gem의 rdbg 사용

Ruby 3.1+부터는 debug gem이 기본 디버거로 제공되어 기존 byebug보다 강력한 디버깅 경험을 제공합니다.

  • 설치: Gemfile의 :development, :test 그룹에 gem 'debug'를 추가하고 bundle install을 실행합니다.

  • 기본 사용법: 코드 내부에 debugger 키워드를 삽입하거나, rdbg my_script.rb, rdbg rails server, rdbg rails console 명령어로 애플리케이션을 시작하여 디버깅 세션을 시작할 수 있습니다.

  • VS Code 통합: 프로젝트 루트에 .vscode/launch.json 파일을 생성하여 Rails 서버, 콘솔, RSpec 디버깅을 위한 실행 구성을 정의합니다. 이를 통해 VS Code의 디버깅 인터페이스를 활용할 수 있습니다.

  • 디버깅 명령: help, next, step, continue, break, list, print, pp, exit 등 다양한 명령어를 사용하여 디버깅 세션을 제어할 수 있습니다.

3. RSpec 및 테스트 프레임워크 디버거 설정

테스트 주도 개발(TDD) 및 실패하는 테스트 문제 해결에 있어 테스트 스위트 디버깅은 매우 중요합니다.

  • RSpec 구성: Gemfile에 rspec-railsdebug gem이 포함되어 있는지 확인합니다.

  • 개별 테스트 디버깅: 테스트 파일 내부에 debugger를 삽입하고 bundle exec rspec 명령어로 특정 테스트를 실행하여 디버깅합니다.

  • VS Code 활용: launch.json에 정의된 “Debug RSpec” 구성을 사용하여 VS Code에서 직접 RSpec 테스트에 중단점을 설정하고 디버깅할 수 있습니다.

  • 고급 RSpec 디버깅: 전체 RSpec 스위트 또는 특정 태그를 가진 테스트 그룹을 디버깅하기 위한 추가 launch.json 구성 예시가 제공됩니다.

  • 다른 테스트 프레임워크: Minitest 및 Cucumber와 같은 다른 테스트 프레임워크도 유사하게 debugger 삽입과 launch.json 구성을 통해 VS Code에서 디버깅할 수 있습니다.

원격 디버깅

debug gem은 컨테이너나 원격 서버에서 실행되는 애플리케이션을 디버깅할 때 유용한 원격 디버깅을 지원합니다. rdbg --open --port=12345 --host=0.0.0.0 rails server로 애플리케이션을 시작하고, rdbg --attach=localhost:12345로 연결합니다.

팁 및 모범 사례

조건부 중단점, 로그 포인트, 예외 중단점 등 VS Code의 고급 디버깅 기능을 활용하여 효율성을 높일 수 있습니다. 디버거는 오버헤드를 발생시키므로 프로덕션 환경에서는 중단점을 제거하거나 비활성화하고, 로깅 기반 접근 방식이나 rbtrace와 같은 도구를 고려해야 합니다.

일반적인 문제 해결

  • 디버거 미시작: debug gem 설치 여부, Ruby 3.1+ 버전 사용 여부, VS Code Ruby 확장 최신 버전 여부를 확인합니다.

  • 중단점 미적중: 디버그 모드에서 실행 중인지, 해당 파일이 실제로 실행되는지, launch 구성이 올바른지 확인합니다.

  • 느린 디버깅 성능: 활성 중단점 수를 줄이고, 관심 없는 코드 섹션은 continue 명령으로 건너뛰어 성능을 개선합니다.

결론

Visual Studio Code에서 Ruby 개발을 위한 효과적인 디버깅 환경을 구축하는 것은 생산성을 크게 향상시킬 수 있습니다. Shopify LSP, `debug` gem의 rdbg, 그리고 RSpec 및 기타 테스트 프레임워크를 위한 적절한 구성을 통해 Ruby 애플리케이션의 문제를 진단하고 해결하는 강력한 도구 키트를 갖추게 될 것입니다. 디버깅은 연습을 통해 향상되는 기술임을 기억해야 합니다. 이러한 도구와 기술에 익숙해질수록 코드의 문제를 식별하고 해결하는 데 더욱 효율적이 될 것입니다. 행복한 디버깅을 기원합니다!

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!