jseop-lim / anam-earth-be-fastapi

Refactor anam-earth backend
0 stars 0 forks source link

[질문] 환경변수를 DI 도구에 등록하여 주입 #11

Closed jseop-lim closed 1 year ago

jseop-lim commented 1 year ago

참고 자료

질문

DB URL, AWS KEY 등 민감 정보는 .env/.yaml/.json 등 Git에 기록되지 않는 별도 파일에 보관한다. 이러한 파일로부터 불러온 값을 dependency_injector Container의 필드로 등록할 필요가 있을까?

jseop-lim commented 1 year ago

답변

있다. main보다 고수준의 컴포넌트의 모듈에서 환경변수의 값을 사용할 때, 직접 import 하는 대신 의존성 주입을 통해 의존성을 역전시킬 수 있다. 직접 import하면 해당 모듈이 환경변수가 저장된 변수(아마 main?)에 의존하므로 올바른 의존성 방향이 아니다.

jseop-lim commented 1 year ago

환경변수를 pydantic 모델로 저장할 때 이득:

cc. docs