inflearn logo
강의

Course

Instructor

FastAPI Complete Guide

Get Signed Cookie Information using Dependency Injection - Apply screen navigation menu modifications based on login status

152번 강의에서 질문이있습니다.

77

daeyeon ko

2 asked

0

router 계층에서 service계층의 get_all_blogs를 직접 호출하지않고 Depends로 넣어주는 이유가 뭔지 궁금합니다.

python sql sqlalchemy FastAPI

Answer 2

0

dooleyz3525

안녕하십니까,

질문을 잘 이해하지 못했습니다.

Depends에 서비스 계층의 get_all_blogs()를 넣어주는 코드가 해당 영상에 있나요? router의 blog.py의 get_all_blogs()의 Depends 내에는 get_session() 이 들어가 있습니다.

다시 한번 질문 내용을 확인 부탁드립니다.

 

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. daeyeon ko님.

FastAPI의 Depends()는 의존성 주입을 위한 기능으로, 코드의 모듈화를 돕고 테스트를 용이하게 하는 유용한 도구입니다. router 계층에서 service 계층의 get_all_blogs를 직접 호출하는 대신 Depends를 사용하는 것은 주로 이러한 이유 때문입니다:

  1. 코드의 재사용성 및 모듈화: Depends를 사용하면 특정 함수나 클래스에 의존성을 분리할 수 있어, 각각의 구성 요소를 보다 독립적으로 사용할 수 있습니다. 이는 코드의 가독성을 높이고, 유지보수를 쉽게 해줍니다.

  2. 테스트 용이성: Depends를 사용하면 특정 함수의 동작을 테스트할 때 해당 함수가 필요로 하는 모든 의존성을 수동으로 설정할 필요 없이, 모의 객체(Mock)를 주입하여 손쉽게 테스트할 수 있습니다. 이는 특히 서비스 계층에서 로직을 처리할 때 테스트 시나리오를 구현하는 데 유리합니다.

  3. 캡슐화된 로직: 의존성을 Depends로 처리하면, 라우터에서 수행되는 작업의 세부 구현을 캡슐화할 수 있습니다. 이는 이후 구현을 변경하거나 확장할 때 로직을 격리시켜 수정을 최소화할 수 있도록 합니다.

  4. 자동화된 요청 생명주기 관리: 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