피드로 돌아가기
Dev.toBackend
원문 읽기
Razor 컴파일 제어를 통한 Umbraco ModelsBuilder 순환 참조 해결
Bootstrapping Umbraco ModelsBuilder on an empty site
AI 요약
Context
Strongly typed model을 사용하는 View가 존재하나, 해당 모델을 생성하는 ModelsBuilder가 DB 기반으로 작동하여 발생하는 초기 부팅 불가 문제. DB가 비어있는 상태에서는 모델 클래스가 생성되지 않아 빌드 단계에서 컴파일 에러가 발생하며, 이로 인해 모델 생성을 위한 Backoffice 진입이 불가능한 Chicken-and-egg 상황의 발생.
Technical Solution
- RazorCompileOnBuild 설정을 false로 변경하여 빌드 타임의 View 컴파일을 강제로 건너뛰는 전략 채택
- ModelsBuilder 모드를 SourceCodeManual로 설정하여 Backoffice 내 수동 모델 생성 버튼을 활성화하는 구조로 변경
- 컴파일 에러를 우회한 상태로 dotnet run을 실행하여 Backoffice 진입 및 모델 파일(.cs)을 물리적으로 생성
- 생성된 모델 클래스를 기반으로 다시 RazorCompileOnBuild를 활성화하여 View의 타입 안정성을 확보하는 순차적 빌드 프로세스 적용
- 물리적 모델 파일을 소스 제어 시스템(Source Control)에 포함시켜 이후 클론 시 즉각적인 빌드가 가능한 상태로 전이
실천 포인트
- 초기 모델 생성 전까지 Razor 컴파일 옵션을 일시적으로 비활성화하여 런타임 진입 경로 확보 - ModelsBuilder의 SourceCodeManual 모드를 활용해 명시적인 모델 생성 시점 제어 - 생성된 모델 클래스를 버전 관리 시스템에 커밋하여 팀원 간 동일한 빌드 환경 유지