【Rails】내가 성장을 실감한 에러의 대처법
소개
이 기사에서는 내가 Rails에서 학습을 할 때 오류가 발생했을 때의 마주하는 방법에 대해 설명합니다.
「오류가 나왔을 때가 성장하는 제일의 기회」라고 하는 생각의 원, 에러와 제대로 마주하는 자세를 가지고 임해 왔으므로, 그 방법을 공유합니다.
전제
다음 gem을 설치합니다.
이미 도입된 분은 읽어 날려주세요 🙇♂️
소개할 gem 목록① better_errors
② binding_of_caller
③ pry-byebug
① better_errors이란
Better Errors replaces the standard Rails error page with a much better and more useful error page. It is also usable outside of Rails in any Rack app as Rack middleware.
(better_errors의 GitHub 공식에서 인용)
요컨대, 표준 Rails의 에러 페이지를 보다 보기 쉽고, 보다 편리한 에러 페이지로 옮겨주는 gem입니다.
② binding_of_caller 이란?
Using binding_of_caller we can grab bindings from higher up the call stack and evaluate code in that context. Allows access to bindings arbitrarily far up the call stack, not limited to just the immediate caller.
(binding_of_caller의 GitHub 공식에서 인용)
즉, binding_of_caller를 사용하면 irb를 사용하여 오류 화면에서 코드를 평가할 수 있습니다.
③ pry-byebug 이란?
Adds step-by-step debugging and stack navigation capabilities to pry using byebug.
(pry-byebug의 GitHub 공식에서 인용)
간단히 말해서 pry를 사용하여 디버깅하기위한 디버깅 도구입니다.
irb처럼 대화식으로 루비를 실행할 수 있습니다.
To use, invoke pry normally. No need to start your script or app differently. Execution will stop in the first statement after your binding.pry.
(pry-byebug의 GitHub 공식에서 인용)
브레이크 포인트를 쓰고 싶은 곳에 binding.pry
이제 세 개의 gem을 설치합시다.
Gemfilegem 'better_errors'
gem 'binding_of_caller'
group :development, :test do
gem 'pry-byebug'
end
터미널에서 $bundle install
를 실행하면 gem 설치가 완료됩니다.
오류 해결 방법
① 에러 로그 확인
에러 화면에 표시되는 「에러문」 「트레이스 정보」 「irb」를 기초로 「에러의 본질」과 「에러의 장소」를 특정합니다.
② 디버그
에러의 원인과 장소를 특정할 수 있으면, 디버그를 실시해 「어떤 일이」 「어떤 바람에 일어났는지」를 보다 상세하게 구현화합니다.
에러 화면의 irb상에서도 변수의 값등을 확인할 수 있습니다!
③ 정보 수집
오류 로그와 디버깅으로 얻은 정보를 바탕으로 공식 문서와 GitHub의 공식 페이지를보고 문제에 해당하는 정보를 수집합니다.
④ 수집한 정보를 바탕으로 가설을 세운다
수집한 정보를 스스로 조립해 가설을 세웁니다.
→이 과정이 가장 머리를 사용하기 때문에 성장하고 있다고 실감할 수 있습니다.
⑤ 가설을 바탕으로 검증한다
가설을 바탕으로 실제로 검증합니다.
해결할 수 없는 경우에는 가설을 다시 세워 검증합니다.
⑥ 해결할 수 있을 때까지 ②~⑤를 반복한다
결론
아직 시행 횟수가 적기 때문에, 향후 시행 횟수를 늘려 개량을 거듭해, 한층 더 재현성이 높은 「에러 해결법」을 추구해 가고 싶습니다!
Reference
이 문제에 관하여(【Rails】내가 성장을 실감한 에러의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yutaro48/items/57865bb4b5c594d6ab9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음 gem을 설치합니다.
이미 도입된 분은 읽어 날려주세요 🙇♂️
소개할 gem 목록
① better_errors
② binding_of_caller
③ pry-byebug
① better_errors이란
Better Errors replaces the standard Rails error page with a much better and more useful error page. It is also usable outside of Rails in any Rack app as Rack middleware.
(better_errors의 GitHub 공식에서 인용)
요컨대, 표준 Rails의 에러 페이지를 보다 보기 쉽고, 보다 편리한 에러 페이지로 옮겨주는 gem입니다.
② binding_of_caller 이란?
Using binding_of_caller we can grab bindings from higher up the call stack and evaluate code in that context. Allows access to bindings arbitrarily far up the call stack, not limited to just the immediate caller.
(binding_of_caller의 GitHub 공식에서 인용)
즉, binding_of_caller를 사용하면 irb를 사용하여 오류 화면에서 코드를 평가할 수 있습니다.
③ pry-byebug 이란?
Adds step-by-step debugging and stack navigation capabilities to pry using byebug.
(pry-byebug의 GitHub 공식에서 인용)
간단히 말해서 pry를 사용하여 디버깅하기위한 디버깅 도구입니다.
irb처럼 대화식으로 루비를 실행할 수 있습니다.
To use, invoke pry normally. No need to start your script or app differently. Execution will stop in the first statement after your binding.pry.
(pry-byebug의 GitHub 공식에서 인용)
브레이크 포인트를 쓰고 싶은 곳에
binding.pry
이제 세 개의 gem을 설치합시다.
Gemfile
gem 'better_errors'
gem 'binding_of_caller'
group :development, :test do
gem 'pry-byebug'
end
터미널에서
$bundle install
를 실행하면 gem 설치가 완료됩니다.오류 해결 방법
① 에러 로그 확인
에러 화면에 표시되는 「에러문」 「트레이스 정보」 「irb」를 기초로 「에러의 본질」과 「에러의 장소」를 특정합니다.
② 디버그
에러의 원인과 장소를 특정할 수 있으면, 디버그를 실시해 「어떤 일이」 「어떤 바람에 일어났는지」를 보다 상세하게 구현화합니다.
에러 화면의 irb상에서도 변수의 값등을 확인할 수 있습니다!
③ 정보 수집
오류 로그와 디버깅으로 얻은 정보를 바탕으로 공식 문서와 GitHub의 공식 페이지를보고 문제에 해당하는 정보를 수집합니다.
④ 수집한 정보를 바탕으로 가설을 세운다
수집한 정보를 스스로 조립해 가설을 세웁니다.
→이 과정이 가장 머리를 사용하기 때문에 성장하고 있다고 실감할 수 있습니다.
⑤ 가설을 바탕으로 검증한다
가설을 바탕으로 실제로 검증합니다.
해결할 수 없는 경우에는 가설을 다시 세워 검증합니다.
⑥ 해결할 수 있을 때까지 ②~⑤를 반복한다
결론
아직 시행 횟수가 적기 때문에, 향후 시행 횟수를 늘려 개량을 거듭해, 한층 더 재현성이 높은 「에러 해결법」을 추구해 가고 싶습니다!
Reference
이 문제에 관하여(【Rails】내가 성장을 실감한 에러의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yutaro48/items/57865bb4b5c594d6ab9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
아직 시행 횟수가 적기 때문에, 향후 시행 횟수를 늘려 개량을 거듭해, 한층 더 재현성이 높은 「에러 해결법」을 추구해 가고 싶습니다!
Reference
이 문제에 관하여(【Rails】내가 성장을 실감한 에러의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yutaro48/items/57865bb4b5c594d6ab9c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)