더북(TheBook)

4. 3번에서 설명한 것처럼 NoteRepository 클래스는 직접 IConfiguration 개체를 사용해서 appsettins.json 파일의 데이터베이스 연결 문자열을 가져오는 코드를 구현했다. 또한, NoteCommentRepository 클래스는 다음 코드와 같이 Startup.cs 파일 ConfigureServices() 메서드의 서비스 등록 코드 영역에서 services.AddSingleton() 메서드를 사용해 INoteCommentRepository 개체가 전달될 때 NoteCommentRepository 클래스의 인스턴스를 생성함과 동시에 생성자에 매개 변수로 데이터베이스 연결 문자열을 전송하는 방식을 사용했다. 학습을 위해 이 둘을 구분했지만, 첫 번째 방식인 NoteRepository 클래스 방식이 기본 방식이다. Startup.cs 파일의 ConfigureServices 메서드에는 앞에서 작성한 다음 코드 세 줄이 반드시 추가되어 있어야 한다.

▼  Startup.cs 파일의 ConfigureServices 메서드의 게시판 관련 코드 확인

public void ConfigureServices(IServiceCollection services)
{
  services.AddSingleton<IConfiguration>(Configuration);
  
  services.AddTransient<INoteRepository, NoteRepository>();
  services.AddSingleton<INoteCommentRepository>(
      new NoteCommentRepository(
          Configuration[“ConnectionStrings:DefaultConnection”]));
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.