DbContext 풀링은 마치 수영장의 장난감처럼 DbContext라는 중요한 도구를 여러번 만들고 버리는 대신에 사용하지 않을 때는 다시 수영장에 넣어두고 필요할 때 다시 꺼내쓰는 방법이다. 이렇게 하면 매번 새 장난감을 사지 않아도 되므로 시간과 자원을 아낄 수 있다. 이 기능은 특히 웹 어플리케이션과 같이 요청이 많은 환경에서 유용하게 사용될 수 있다.
DbContext 풀링을 활성화하면 EF core는 요청이 들어올 때마다 풀에서 DbContext 인스턴스를 가져와서 사용하고, 요청 처리가 끝나면 인스턴스를 다시 풀로 반환한다. 이 과정에서 DbContext의 상태는 반드시 초기화되어야 한다. EF Core는 인스턴스를 풀로 반환하기 전에 내부 상태를 자동으로 초기화한다.
DbContext 풀링을 사용할 때는 몇가지 고려해야 할 사항이 있다.
어떻게 쓰지?
1. 시작할 때 준비
프로그램이 시작할 때 DbContext 장난감 몇개를 미리 만들어서 수영장에 넣어놓는다.
2. 필요할 때 꺼내쓰기
데이터베이스 작업이 필요할 때 이 수영장에서 DbContext를 하나 꺼내서 사용한다.
3. 다 쓰면 돌려놓기
작업이 끝나면 DbContext를 초기 상태로 돌려놓고 다시 수영장에 넣는다. 다음에 누군가 또 쓸 수 있게
어떤 이점이?
주의할 점은?
DbContextPooling을 쓸때는 AddDbContextPool을 설정할 필요가 없이 그냥 풀링만 설정하면 된다.