Untitled

서비스는 웹서버에서 서비스 로직의 역할을 하는 객체이다. 일반적으로 컨트롤러에서 호출되어, DB처리 등의 비지니스 로직을 처리후, 결과를 반환한다.

일반적인 서비스 정의 과정

서비스를 생성하기 위해서는 일반적으로 다음과 같은 과정을 거친다

  1. (IDE등을 이용해서) Service들을 담을 디텍토리 생성

  2. 서비스의 인터페이스 생성 - IProductService

  3. 서비스 생성 - ProductService

  4. 서비스의 라이프 타임을 고려하여 program.cs에 IProductServiceProductService를 등록한다.

    1. Transient : 서비스 컨테이너의 요청마다 새로 생성
    2. Scoped : 클라이언트 요청마다 새로 생성
    3. Singleton : 처음 요청 때 생성되고, 이후 삭제되지 않고 재사용된다.
    builder.Services.**AddScoped**<IProductService, ProductService>();
    builder.Services.**Scoped**<IProductService, ProductService>();
    builder.Services.**singleton**<IProductService, ProductService>();
    
  5. 사용할 컨트롤러에서 DI해서 사용.

    public class TestController : ControllerBase
    {
    	IProductService _product;
    	...
    	public TestController(IProductService product)
    	{
    		_product = product;
    	}
    	...
    }
    

출처

Dependency Injection in ASP.NET Core (.NET 7) | ASP Nano