Q & A

시삽: 레드플러스 님 
게시판 이동:
 제목 : Re : 안녕하세요. 이번에 여러가지 검토중인데..
글번호: 863
작성자: 레드플러스
작성일: 2020/08/12 오전 9:19:00
조회수: 2298

 

안녕하세요.

 

우선,

말씀주신 것처럼

Hello World 수준이 아닌, 현업 수준으로 프로젝트를 만들다보면,

Startup.cs 파일에 종속성 주입 관련 코드가 각각의 모듈(?) 단위로 계속해서 쌓이게 됩니다.

 

결론적으로 말씀드려,

이 방식은 어쩔 수 없는 것 같습니다.

대신, 모듈별로 코드를 조금 더 간결하게 관리하기 위해서 확장 메서드로 관리할 수도 있긴한데요.

 

어쨌든, Startup.cs 파일에 DbContext 라던가 리포지토리 클래스 등이 추가되면

각각의 페이지에서 인스턴스를 생성하지 않고 Startup.cs 파일에서 등록 후

각각의 컨트롤러 또는 컴포넌트 등에서는 종속성 주입을 사용해서 각각의 서비스들을 사용합니다.

 

리포지토리 클래스 또는 서비스 클래스별로 종속성 주입 관련 코드가 늘어나는 것은 어쩔 수 없을 듯 합니다.

심지어는 제 강의소스만 해서 Startup.cs 파일에 수십줄이 들어가는데,

하나의 완성도 있는 상용 프로그램은 수백개의 작은 서비스들이 등록되어 사용되어야 할 것으로 보입니다.

 

대신에, 흩어져 있지 않고,

Startup.cs 파일만 보면,

 

현재 프로젝트에 주입되어 사용되는 모든 서비스들을 한 눈에 볼 수 있는 장점이 있습니다.

 

만약, 각각의 프로젝트당 필요한 서비스들만 주입해서 사용하는 식으로 진행한다면, 흔히 말하는 MSA를 사용하여

프로젝트별로 각각의 모듈을 나누는 방법도 있겠지만,

일단, 제 강의에서는 하나의 프로젝트로 예시를 듭니다.

 

이상입니다.

 

 

 

 

 


On 2020-08-11 오후 2:15:00, '최원호' wrote:

 

 


안녕하세요. 이번에 asp.net core, grpc 등등 신기술 들을 들여다 보고 있습니다.

한가지 막히는 점이 있어서 문의 글을 남깁니다.

 

asp.net core 프로젝트의 Startup 클래스의 Configure 메소드에서 각종 서비스들의 환경설정을

정의해 주는데...

 

예를 들어 grpc의 경우 ( https://docs.microsoft.com/ko-kr/aspnet/core/grpc/aspnetcore?view=aspnetcore-3.1&tabs=visual-studio )

 

endpoints.MapGrpcService<GreeterService>(); 

 

이런식으로 서비스를 등록하는 과정이 있습니다.

 

저는 ERP 제품의 프레임워크 를 담당하는데, 모듈 (회계,인사,재고,생산...등등) 많은 서비스들이 있습니다. 또한 보안상 소스를 한 프로젝트로 오픈하지도 않죠.

 

저 많은걸 한곳에서 정의해 줘야 하는데 이해가 되지 않습니다.

 

혹시 멀티 프로젝트에서는 어떤 식으로 하는지 사용해 보신데가 있을까요?

왠만한 구글링으로는 안나오더군요.

 

감사합니다.

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트
  choe0tae
  2020-08-16 오전 11:52:35
답변감사합니다.

찾아보니 MagicOnion 프레임워크가 동적 로딩 타입을 지원하더군요.  

https://github.com/Cysharp/MagicOnion

asp.net grpc 와는 좀 달라서 아쉽긴한데..
일단 소스보면서 구현방법을 보고 있습니다.

자바쪽 동영상을 봐도 거기도 명시적으로 적더군요.

감사합니다.

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 C# 교과서 질문입니다 - 김상엽 2020-08-13 2416
  안녕하세요. 이번에 여러가지 검토중인데.. - 최원호 2020-08-11 2436
현재글 Re : 안녕하세요. 이번에 여러가지 검토중인데..(1) - 레드플러스 2020-08-12 2298
다음글 c# interactive(4) - 김상태 2020-08-04 3795
 
손님 사용자 Anonymous (손님)
로그인 Home