View 헬퍼
debug
: YAML 형식으로 객체를 출력to_yaml
: YAML 변환inspect
: 배열이나 해시 값을 문자열로 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 컨트롤러
@user = User.find(1)
# 뷰에서
<%= debug @user %>
# --- !ruby/object:User
# id: 1
# name: "John"
# email: "john@example.com"
@items = ['apple', 'banana', 'orange']
<%= @items.to_yaml %>
# ---
# - apple
# - banana
# - orange
@settings = { theme: 'dark', language: 'ko }
<%= @settings.inspect %> # 뒤에 안쳐도 동일하게 나오는것으로 보아 default인듯
# {:theme=>"dark", :language=>"ko"}
Logger 활용
1
2
3
logger.debug "데이터 확인: #{@data.inspect}"
logger.info "요청 처리 중..."
logger.error "심각한 오류 발생!"
로그 레벨: debug < info < warn < error < fatal
byebug 사용법
- 설치
1
gem install byebug
- rails c, byebug에 따른 장점
1
2
3
# byebug rails c 했을때 쓸만한것들 모음
>Order.where(Id: 222441).to_sql
>"SELECT `Order`.* FROM `Order` WHERE `Order`.Id` = 222441"
- 주요 명령어
next
(n): 다음 줄로 이동step
(s): 메소드 내부로 진입continue
(c): 실행 계속break
: 중단점 설정
실용적인 디버깅 팁
중단점 관리
1
2
3
break 20 # 20번 줄에 중단점 설정
info breakpoints # 중단점 목록 확인
delete 1 # 1번 중단점 삭제
변수 검사
1
2
3
var local # 지역 변수 확인
var instance # 인스턴스 변수 확인
p @user # 변수 값 출력
web-console 활용
view나 controller에서 바로 콘솔 사용 가능하다고 한다.
1
<% console %>
성능 최적화 팁
로그 작성 시 블록 사용이 성능상 유리히다고 한다.
1
2
3
4
5
# 좋은예
logger.debug { "데이터: #{expensive_operation}" }
# 좋지않은 예
logger.debug "데이터: #{expensive_operation}"