Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Octane의 샌드박스 인스턴스와 일반 인스턴스의 주요 차이점은 무엇입니까?


Octane의 샌드박스 인스턴스와 일반 인스턴스의 주요 차이점은 무엇입니까?


Laravel Octane에서 샌드박스 인스턴스와 일반 인스턴스의 주요 차이점은 다음과 같습니다.

샌드박스 인스턴스

1. 복제된 애플리케이션 인스턴스: Octane은 원본 애플리케이션 인스턴스를 복제하여 각 수신 요청에 대해 샌드박스 인스턴스를 생성합니다. 이렇게 하면 각 요청에 자체 격리된 환경이 있으므로 요청 간의 상태 지속성 문제가 방지됩니다.
2. 클린 구성: 샌드박스 인스턴스에는 새 샌드박스 인스턴스에서 복제된 구성 저장소의 깨끗한 복사본이 포함되어 있습니다. 이렇게 하면 구성에 대한 모든 변형이 샌드박스에만 영향을 미치게 됩니다.
3. 플러시된 캐시 및 세션: 샌드박스 인스턴스는 요청 전반에 걸쳐 데이터가 지속되지 않도록 캐시 및 세션 상태를 플러시합니다.
4. 현지화된 번역기: 샌드박스 인스턴스는 번역기 내부의 로케일을 원래 로케일로 설정하여 각 요청에 대해 번역기가 재설정되도록 합니다.
5. Auth Forget Guards: 샌드박스 인스턴스는 깨끗한 상태를 보장하기 위해 이전 요청 중에 설정된 모든 가드를 잊어버립니다.

일반 인스턴스

1. 원래 애플리케이션 인스턴스: 일반 인스턴스는 요청 전반에 걸쳐 지속되는 원본 애플리케이션 인스턴스입니다.
2. 지속적 구성: 일반 인스턴스는 원래 구성 저장소를 사용하므로 요청 간에 상태 지속성 문제가 발생할 수 있습니다.
3. 영구 캐시 및 세션: 일반 인스턴스는 캐시 및 세션 상태를 플러시하지 않으므로 요청 전반에 걸쳐 데이터가 유지됩니다.
4. 현지화된 번역기 없음: 일반 인스턴스는 번역기 로케일을 재설정하지 않으므로 애플리케이션이 로케일별 설정에 의존하는 경우 문제가 발생할 수 있습니다.
5. 영구 인증 가드: 일반 인스턴스는 이전 요청 중에 설정된 가드를 잊지 않으므로 제대로 관리하지 않으면 보안 문제가 발생할 수 있습니다.

모범 사례

1. 애플리케이션 인스턴스 전달 방지: 애플리케이션 인스턴스를 서비스나 싱글톤에 직접 전달하지 마세요. 대신 `app()` 도우미 또는 `Container::getInstance()`를 사용하여 올바른 인스턴스가 사용되는지 확인하세요.
2. 콜백 사용: 애플리케이션 인스턴스를 직접 전달하는 대신 콜백을 사용하여 샌드박스 인스턴스를 반환합니다.

이러한 차이점을 이해하고 모범 사례를 따르면 Octane[1][5]을 사용하여 애플리케이션이 효율적이고 안전하게 실행되도록 할 수 있습니다.

인용:
[1] https://www.getoctane.io/sandbox
[2] https://salesforce.stackexchange.com/questions/42163/performance-difference-between-sandbox-and-production-instances
[3] https://otoy1473900221.zendesk.com/hc/en-us/articles/115001577606-Instances
[4] https://blog.octanesolutions.com.au/sandbox-analytic.delivered
[5] https://divinglaravel.com/laravel-octane-bootstrapping-the-application-and-handling-requests