ORM 고려 사항

  • 고성능 프로덕션 앱에서 데이터를 설계, 디버그, 프로파일링 및 마이그레이션하려면 기본 데이터베이스 서버에 대한 중간 수준 이상의 지식이 필요합니다. 예를 들어 기본 키 및 외래 키, 제약 조건, 인덱스, 정규화, DML 및 DDL 문, 데이터 형식, 프로파일링 등에 대한 지식이 필요합니다.
  • 기능 및 통합 테스트: 프로덕션 환경을 최대한 비슷하게 복제하여 다음을 수행해야 합니다.
    • 앱에서 특정 버전의 데이터베이스 서버를 사용하는 경우에만 표시되는 문제를 찾습니다.
    • EF Core 및 기타 종속성을 업그레이드할 때 호환성이 손상되는 변경 사항을 파악합니다. 예를 들어 ASP.NET Core, OData, AutoMapper와 같은 프레임워크를 추가하거나 업그레이드합니다. 종속성은 예기치 않은 방식으로 EF Core에 영향을 줄 수 있습니다.
  • 대표적인 부하를 통해 성능 및 스트레스 테스트 일부 기능의 단순한 사용은 잘 확장되지 않습니다. 예를 들어 여러 컬렉션에 지연 로드의 과도한 사용, 인덱싱되지 않은 열에 대한 조건부 쿼리, 저장소에서 생성된 값이 포함된 대량 업데이트 및 삽입, 동시성 처리 부족, 큰 모델, 부적절한 캐시 정책 등이 포함됩니다.
  • 보안 검토: 예를 들어 연결 문자열 및 기타 비밀 처리, 배포 이외 작업의 데이터베이스 권한, 원시 SQL의 입력 유효성 검사, 중요 데이터의 암호화 등이 있습니다.
  • 로깅 및 진단이 충분하고 사용 가능한지 확인합니다. 예를 들어 적절한 로깅 구성, 쿼리 태그, Application Insights가 있습니다.
  • 오류 복구. 버전 롤백, 대체 서버, 스케일 아웃 및 부하 분산, DoS 완화, 데이터 백업과 같은 일반적인 오류 시나리오의 대체 계획을 준비합니다.
  • 애플리케이션 배포 및 마이그레이션. 배포 중에 마이그레이션을 적용할 방식을 계획합니다. 애플리케이션을 시작할 때 마이그레이션을 적용하면 동시성 문제가 발생할 수 있으며 일반 작업에 필요한 것 보다 높은 권한이 필요합니다. 준비를 사용하여 마이그레이션 중에 심각한 오류를 쉽게 복구할 수 있습니다. 자세한 내용은 마이그레이션 적용을 참조하세요.
  • 생성된 마이그레이션을 자세히 검사하고 테스트합니다. 프로덕션 데이터에 적용하기 이전에 마이그레이션을 철저히 테스트해야 합니다. 테이블에 프로덕션 데이터가 포함된 경우 스키마의 모양과 열 유형을 쉽게 변경할 수 없습니다. 예를 들어 SQL Server에서 nvarchar(max)  decimal(18, 2)은 문자열 및 10진수 속성에 매핑되는 열에 가장 적합한 형식이 아니지만, 특정 시나리오에 대한 지식이 없으므로 EF에서 사용하는 기본값입니다.



참고URL

  • No labels