Django 기반 웹 사이트를 통해 내부에서 일부 컨텐츠 (텍스트 및 가격 책정 계획과 같은 비즈니스 로직)를 쉽게 편집 할 수 있도록하고 싶었고 이를 코드베이스 외부에 저장하기로 결정했습니다. 일반적으로 그 이유는 다음 중 하나입니다.
그것은 뭔가의 비 기술적 인 사람들이 편집 할. 예를 들어 웹 사이트의 카피 라이팅이 있습니다. 프로그래머는 기본적으로 "Lorem ipsum ..."이라는 텍스트가있는 템플릿을 준비하고 실제 내용은 나중에 데이터베이스에 삽입됩니다.
새로운 코드를 배포 할 필요없이 (현재 우리는 일주일에 두 번) 신속하게 변경할 수 있기를 원합니다 . 다양한 등급의 가격으로 고객이 현재 사용할 수있는 기능을 예로들 수 있습니다. 이를 하드 코딩하는 대신 데이터베이스에서 읽습니다.
설명 된 솔루션은 유연하지만 마음에 들지 않는 몇 가지 이유가 있습니다.
데이터베이스에서 컨텐츠를 읽어야하므로 성능 오버 헤드가 있습니다.
캐싱 구성표를 사용하여이를 완화하지만 시스템에 약간의 복잡성이 추가됩니다.
코드를 로컬로 실행하는 개발자는 시스템이 프로덕션 환경에서 실행되는 방식과 비교하여 상당히 다른 상태로 시스템을 보게 됩니다. 자동 테스트는 또한 시스템을 다른 상태로 실행합니다. 스테이징 서버에서 새 기능을 테스트하는 것과 같은 상황도 까다로워집니다. 스테이징 서버에 최신 데이터베이스 사본이 없으면 프로덕션과 예상치 못하게 다를 수 있습니다.
우리는 때때로 새로운 상태를 리포지토리에 커밋함으로써 (예를 들어 데이터 마이그레이션 추가)이를 완화 할 수 있지만 잘못된 접근법처럼 보입니다. 그렇습니까?
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 내가 간과하는 내용을 처리하는 더 좋은 방법이 있습니까?