[ASP.NET Core] 서비스 생명주기 Singleton, Scoped, Transient

참고


목적

  • ASP.NET Core에서 의존성 주입(DI) 에 의해 추가되는 Service 는 크게 3가지 생명주기를 지닙니다.
    • Singleton
    • Scoped
    • Transient
  • 각각의 수명들의 특징에 대해서 조사합니다.

Singleton

  • Singleton의 경우는 클라이언트(보통 웹브라우저) 의 접속 상태에 관계없이, 웹 서비스 시작 때 생성되어서, 웹 서비스가 종료될 때까지 유지 됩니다.
  • Sigleton 이란 이름에 맞게, 클라이언트가 아무리 많이 붙어도 오직 1개의 서비스만 존재하게 됩니다.

Scoped

  • Scoped는 클라이언트의 Request 시작부터, Response 종료까지 유지됩니다.
  • 각 클라이언트마다 존재하므로, 연결되는 클라이언트 수 만큼 존재하게 될 수 있습니다.

Transient

  • Transient 는 매 사용때마다 생성됩니다.
  • 1개의 객체만 의존성 주입하여 사용하게 될 경우, Scoped와 구분이 잘 되지 않습니다.

ASP.NET Core 서비스 생명주기 이미지

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY