이는 Discourse와 직접적인 관련이 없는 Rails의 핵심 속성에 대한 설명입니다.
Rails에서는 모든 초기화자(initializer)가 Rails가 시작될 때만 로드되므로, 초기화자에 기반하여 코드를 실행하는 플러그인(예: “after_initializer”)은 Rails가 시작되거나 재시작될 때만 실행됩니다(잘못된 부분이 있다면 지적해 주세요).
이 주제에 익숙한 이유는 현재 클라이언트를 위해 Rails 애플리케이션을 개발 중이며, 다양한 작업(불리언 값, 정적 배열 등)을 위해 수많은 초기화자를 작성했기 때문입니다. 각 경우에서 Rails 초기화자의 코드를 변경하면, 초기화자의 새 값을 Rails 애플리케이션에 반영하려면 Rails를 재시작(“개발 환경에서는 Control c, rails s”)해야 합니다.
잘못된 부분이 있다면 꼭 지적해 주세요! 감사합니다.
때로는 “Discourse가 이렇게 한다” 또는 "Discourse가 저렇게 한다"라고 쓸 때, 실제로 설명하려는 것이 Discourse 자체와는 무관한 Rails의 핵심 기능이나 속성인 경우가 있습니다. 이는 주로 Rails 애플리케이션 전반이 아닌 Discourse 플러그인 개발에 집중하는 개발자, 특히 Discourse 플러그인 개발자에게는 다소 혼란을 줄 수 있습니다.
Rails 6는 config/initializers 디렉터리(및 모든 config/initializers 하위 디렉터리)의 모든 파일을 오직 Rails가 시작될 때만 읽습니다. 마찬가지로(플러그인에 대해서는 100% 확신은 없으나) after_initialize에 의존하는 코드가 포함된 Discourse 플러그인은 Rails 부팅 프로세스의 근본적인 속성인 관계로, Rails가 시작되거나 재시작될 때만 Rails 애플리케이션에 의해 로드됩니다(확인해 주실 분 계신가요?).
제 추측으로는 여기에서 Rails를 다루는 분들은 이미 이 사실을 알고 있을 것입니다. 저는 이러한 세부 사항들을 이제 막 알게 되고 있으며(전문가가 되기까지는 아직 갈 길이 멀다고 느낍니다), 요즘 매일 Rails 애플리케이션 작업을 하고 있기 때문입니다. 참고로, LAMP 개발 배경에서 온 저로서는 Rails가 훨씬 더 낫다(작업하기 쉽고 재미있다)고 생각하여, 10년 전에 Rails를 시작했으면 좋았을 것이라 생각합니다.
올해 저는 Rails의 열렬한 팬이 되었으며, 저를 그 길로 이끌어 준 Discourse에 매우 감사드립니다.
다시 한번, 잘못된 부분이 있다면 지적해 주세요! 감사합니다. 저는 Rails에 대해 더 전문적으로 되고자 노력하고 있습니다.