152번 강의에서 질문이있습니다.
77
2 asked
router 계층에서 service계층의 get_all_blogs를 직접 호출하지않고 Depends로 넣어주는 이유가 뭔지 궁금합니다.
Answer 2
0
안녕하십니까,
질문을 잘 이해하지 못했습니다.
Depends에 서비스 계층의 get_all_blogs()를 넣어주는 코드가 해당 영상에 있나요? router의 blog.py의 get_all_blogs()의 Depends 내에는 get_session() 이 들어가 있습니다.
다시 한번 질문 내용을 확인 부탁드립니다.
0
안녕하세요, 인프런 AI 인턴입니다. daeyeon ko님.
FastAPI의 Depends()는 의존성 주입을 위한 기능으로, 코드의 모듈화를 돕고 테스트를 용이하게 하는 유용한 도구입니다. router 계층에서 service 계층의 get_all_blogs를 직접 호출하는 대신 Depends를 사용하는 것은 주로 이러한 이유 때문입니다:
코드의 재사용성 및 모듈화:
Depends를 사용하면 특정 함수나 클래스에 의존성을 분리할 수 있어, 각각의 구성 요소를 보다 독립적으로 사용할 수 있습니다. 이는 코드의 가독성을 높이고, 유지보수를 쉽게 해줍니다.테스트 용이성:
Depends를 사용하면 특정 함수의 동작을 테스트할 때 해당 함수가 필요로 하는 모든 의존성을 수동으로 설정할 필요 없이, 모의 객체(Mock)를 주입하여 손쉽게 테스트할 수 있습니다. 이는 특히 서비스 계층에서 로직을 처리할 때 테스트 시나리오를 구현하는 데 유리합니다.캡슐화된 로직: 의존성을
Depends로 처리하면, 라우터에서 수행되는 작업의 세부 구현을 캡슐화할 수 있습니다. 이는 이후 구현을 변경하거나 확장할 때 로직을 격리시켜 수정을 최소화할 수 있도록 합니다.자동화된 요청 생명주기 관리: FastAPI는 의존성을 처리하면서 요청의 생명주기를 자동으로 관리합니다. 이는 필요한 리소스를 요청의 시작과 끝에서 자동으로 초기화하고 정리(clean-up)하는 데 도움이 됩니다.
이와 관련된 자세한 내용이나 예시는 FastAPI의 공식 문서의 의존성 주입에서 확인할 수 있습니다. 이러한 설명이 이해에 도움이 되셨으면 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
간단한 모델 서빙용으로 FastAPI를 공부하려고 합니다.
0
99
1
Update(수정)용 모델 질문 드립니다.
0
69
2
API 라우트 설계 시 중첩 구조 분리 기준 질문
0
84
2
signed cookie 와 jwt 토큰
0
107
2
비동기처리와 멀티스레드
0
118
2
fastapi의 가능성에 대해 궁금합니다.
0
123
1
어디가 필요없는 코드인지 알아내려면....
0
78
2
nginx를 사용하고 static 설정을 하는 경우도 app.mount 설정을 해야 하나요?
0
104
2
logout 태그 관련 질문
0
53
2
안녕하세요. 질문 하나 드려도 될까요?
0
94
1
81강 한 건도 못찾았을 경우 질문
0
77
2
64강: mysql-connector-python 버전 관련
0
94
2
import 자동완성
0
57
1
FastAPI + Uvicorn 환경에서 메모리 누수 관련 문의드립니다.
0
334
2
EmailStr + max_length=40 같은 경우 질문
0
107
2
item_static.html 질문
0
112
2
uvicorn으로 로컬서버 올렸으나 사내 타 컴퓨터에서 접속이 안됨
0
269
2
머신러닝 백엔드 강좌 언제나오나요?
0
138
2
db connect
0
127
2
pydantic
0
120
2
url_for
0
94
2
react
0
113
2
autoflush=false에 대해 질문 드립니다.
0
134
2
docstring이 안 먹혀요
0
95
1

