라이브 앱 코드 테스트 수정 사항이 프론트엔드에 반영되지 않음

안녕하세요,

Joomla/WordPress 개발 경험을 바탕으로, Docker를 통해 Discourse 백엔드 파일 수정이 어떻게 작동하는지 궁금합니다.
플러그인 생성에 관한 문서를 읽었습니다(How can I make my own Discourse plugins? - #2 by merefield), 하지만 아직 플러그인을 만들려는 것은 아니고, 단순히 코드를 실시간으로 테스트할 수 있기를 원합니다.

Docker가 아닌 일반 MVC 설치 환경에서는 FTP를 통해 파일을 수정하면 즉시 반영되었는데, Docker 환경에서는 영구적인 수정을 적용하기 위해 앱을 다시 빌드해야 한다는 필요성은 이해합니다. 그런데 실시간으로 테스트를 하고 싶다면 어떻게 해야 할까요?

실시간 코드 수정 테스트가 작동하지 않는 것 같습니다:

예를 들어,匿名用户의 검색을 비활성화하려고 다음과 같이 수정했습니다:
/var/www/discourse/app/controllers/search_controller.rb 파일에서 def show 뒤에 "if current_user.present?"를 추가하고, 함수 하단에 end를 추가했습니다.

프론트엔드에 아무런 영향이 없다는 점이 놀라웠고, 컨트롤러 이름을 search_controllerold로 변경해도 검색에 영향을 주지 않았습니다.

하지만 /var/www/discourse/public/images# 디렉터리에서 이미지 이름을 변경하면 프론트엔드에서 이미지가 숨겨지는 것처럼 작동하더군요! :slight_smile:

여기서 시스템이 어떻게 작동하는지 알려주실 수 있나요? 앱이 이미지에서 시작되는 것 외에 다른 캐시된 시스템 버전이 더 있는 건가요?

감사합니다

네, ./javascripts/discourse/node_modules/.embroider/rewritten-app/ 폴더의 파일을 수정하면 코드가 수정된다는 걸 찾았어요.
이제 훨씬 나아졌네요 :slight_smile:

그건 안티패턴을 넘어서는 것 같습니다.

아마도 빌드될 때마다 대체될 가능성이 높습니다.

#documentation:developer-guides의 자료와 수많은 실제 오픈소스 예시를 참고하여, #customization:theme-component를 통해 프론트엔드를 수정하고, #customization:plugin을 통해 프론트엔드와 백엔드를 모두 수정하는 방법을 확인해 보세요.

공유해 주셔서 감사합니다! 이 내용을 확인해 보고, 나중에 더 진지하게 참여해 볼지도 모르겠습니다. 당장은 라이브 수정 기능을 테스트해 보고 싶을 뿐인데, Joomla/WordPress에서 FTP를 사용할 때처럼 프런트엔드에 바로 반영되지 않는 이유가 무엇인지 이해가 되지 않습니다. 앱 안에서 작업하고 있는데도 말이죠.