웹 서버를 시작하면, 관리자가 종료하도록 지시하지 않는 한 계속 실행되는 것이 일반적이라는 것은 상식이라고 생각합니다. 웹 서버는 기본적으로 매일, 또 매일, 그리고 또 매일 페이지를 서빙하도록 설계되어 있죠. 하지만 누군가가 그 부분을 명확히 해줄 수는 있겠네요. 누구나 PR을 통해 가이드에 대한 개선안을 제출할 수 있습니다.
레일즈(Rails) 개발에 익숙해지면, 저처럼 "터미널에 끝없이 정보를 출력하는 것"을 여러분의 가장 큰 친구로 여기게 될 것입니다.
예를 들어, 저는 현재 클라이언트를 위해 레일즈 애플리케이션을 개발하고 있으며, 수십 년 전의 레거시 비즈니스 로직을 레일즈로 전환하는 작업을 하고 있습니다. 사실 저는 “터미널에 끝없이 출력되는 정보”(귀하의 표현)를 볼 수 있도록 새로운 모니터를 하나 더 구매했습니다. 이 정보는 개발자에게는 금과옥조와도 같으니까요.
세부적인 동작 원리를 알려주는 놀라운 레일즈 서버 로그 외에도, 또 다른 "개발자의 가장 큰 친구"인 레일즈 콘솔이 있습니다!
레일즈 코드를 작성할 때 저는 기본적으로 VSC에서 초안을 작성한 후, 모든 것이 예상대로 작동하는지 확인하기 위해 스니펫을 레일즈 콘솔에 복사하여 붙여넣습니다.
디버깅을 할 때는 Ruby의 print(와 유사한) 문구(p, puts)를 코드에 작성하여 화면의 "끝없는 금빛 레일즈 서버 로그 정보"를 관찰합니다. 거의 모든 오류를 이 방식으로 수정합니다! 말씀드린 것처럼, 저는 귀下が 짜증을 내시는 레일즈 서버 로그 정보를 보기 위해 최근 커브드 게이밍 모니터를 하나 더 구매했습니다
작성하신 게시글을 읽어보니, 올해 초와 같은 시기인 것 같습니다. 레일즈 개발 경험이 없는 상태에서 레일즈 애플리케이션으로 이관하는 과정에서 저와 비슷한 경험을 하고 계신 것 같습니다. 처음에는 저도 레일즈에 대해 (조금 이상으로) 짜증을 냈습니다. 하지만 9개월이 지난 지금은 매일 클라이언트를 위해 레일즈로만 개발하고 있습니다(반퇴직 상태이므로 클라이언트 작업은 반시간으로 제한하고 있으며), 이전의 PHP 개발 작업을 모두 중단했습니다. 솔직히 말씀드리자면, 레일즈(와 Ruby)에 대한 새로운 열정을 갖게 되었습니다. 정말로요. 말처럼, 늦더라도 없는 것보다는 낫습니다!
Apache2에 대해 말씀드리자면, Apache는 레일즈가 애플리케이션 내부에서 일어나는 세부적인 내용을 제공하는 것과 같은 수준의 정보를 제공하지 않습니다. 저는 모든 레일즈 애플리케이션 앞에 Apache2를 리버스 프록시로 실행하고 있지만, 솔직히 말하면 Apache 로그 파일을 마지막으로 본 시점을 기억할 수조차 없습니다. 현재 귀下が 짜증을 내시는 레일즈 서버 로그를 사용하여 모든 디버깅을 수행하기 때문입니다
마지막으로, "포럼을 레일즈로 이관한 사람"으로서의 다른 관점이 작은 도움이 되기를 진심으로 바랍니다. 저에게는 LAMP 웹 앱에서 레일즈 웹 앱으로 전환해야 했던 것이 2020년에 저에게(개인적으로) 일어난 가장 좋은 “기술적 사건” 중 하나였습니다.
rails s 터미널의 출력에는 시작 시 여러 쿼리가 표시되지만, 디스코urs의 사이드키큐(Sidekiq) 작업 출력도 포함됩니다(적어도 도커 개발 환경에서는 그렇습니다). 따라서 정말 큰 규모로 가져오기를 실행했다면, 그 후로 오랜 시간 동안 실행될 수 있는 후처리 작업으로 이루어진 방대한 사이드키큐 큐가 생성됩니다. 캐시 로딩과 같은 이러한 작업들은 필수적이지 않으며, 완료되기 전에 사이트를 탐색하는 것을 방해하지 않는 것 같습니다.
이 부분이 나를 정말 혼란스럽게 했어요. 큰 가져오기를 실행한 뒤, 그걸 취소하고 데이터베이스를 초기화해서 작은 테스트용 가져오기를 했는데도, 더 이상 존재하지 않는 큰 데이터베이스와 관련된 쿼리를 끝없이 계속 돌리고 있었거든요. 해결책은 레일스 콘솔을 사용하여 사이드키큐 큐를 비우는 것이었습니다.