피드로 돌아가기
Dev.toBackend
원문 읽기
ASP.NET Core DistributedMemoryCache 기반 Session 상태 관리 구현
Using sessions in asp.net anyone have any insight?
AI 요약
Context
사용자 식별 정보와 연관 데이터(Player, Coach, Team)의 요청 간 상태 유지를 위한 서버 사이드 세션 관리 필요성 발생. HTTP의 Stateless 특성으로 인한 반복적인 DB 조회 비용을 줄이기 위한 데이터 캐싱 전략 수립.
Technical Solution
- DistributedMemoryCache 도입을 통한 인메모리 기반의 세션 데이터 저장소 구축
- IdleTimeout 10분 설정을 통한 메모리 자원 효율화 및 세션 만료 주기 최적화
- HttpOnly 및 IsEssential 옵션 적용으로 Client-side 스크립트 접근 차단 및 보안 강화
- UseRouting과 UseAuthorization 사이의 UseSession 미들웨어 배치를 통한 요청 파이프라인 내 세션 컨텍스트 확보
- Session.SetString 및 SetInt32 메서드를 활용한 정형 데이터의 Key-Value 기반 상태 저장
- 저장된 Session ID를 기반으로 Include/ThenInclude 쿼리를 수행하여 연관 엔티티의 지연 로딩 최적화
실천 포인트
- 미들웨어 설정 순서가 UseRouting → UseSession → UseAuthorization 순으로 구성되었는지 확인 - 세션 데이터 크기 최소화를 위해 전체 객체가 아닌 PK(ID) 값만 저장하는 패턴 적용 - 분산 환경 확장을 고려하여 IDistributedCache 인터페이스 기반의 구현체 교체 가능성 검토