inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Hướng dẫn đầy đủ về FastAPI

Tải tài liệu bài giảng

autoflush=false에 대해 질문 드립니다.

134

bluebamus

84 câu hỏi đã được viết

0

학습을 하다보니 FastAPI 문서에서 autoflush=False을 권장한다는 것을 알게 되었습니다.

헌데 이번 프로젝트에서는 해당 설정을 사용하지 않은 것으로 알고 있습니다.

기본 설정이 autocommit=false, autoflush=true로 알고 있는데, 해당 옵션을 그대로 이번 강의 프로젝트에서 사용된 것으로 알고 있습니다.

혹시 autoflush=False를 적용해야 하는 경우가 있는 것인지, 다른 이유가 있는 것인지를 알고 싶어 질문을 드리게 되었습니다.

python sql sqlalchemy FastAPI

Câu trả lời 2

0

dooleyz3525

안녕하십니까,

autoflush는 SQLAlchemy에서 ORM을 적용할 때 사용합니다. ORM의 Session 생성 시 적용됩니다.

하지만 본 강의는 ORM(또는 Session)을 사용하지 않기 때문에 autoflush와 아무 상관이 없습니다.

그리고 ORM을 사용하신다면 autoflush를 True로 하면 flush()를 매번 호출할 필요가 없어서 좋은데, 명확하게 객체와 DB 동기화가 헷갈리는 경우가 있을 수 있어서 False로 설정하는 경우도 있습니다.

감사합니다.

0

bluebamus

감사합니다 ORM 적용시에만 사용하는 것인줄 이제 알았습니다 ^^

0

communityai8509

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

autoflush 옵션에 대한 질문을 주셨군요. autoflush는 SQLAlchemy ORM의 Session 객체와 관련된 옵션입니다. 이 옵션은 세션에서 쿼리가 실행될 때마다 변경된 객체들이 자동으로 데이터베이스 상태와 동기화되도록 조정하는 기능을 가지고 있습니다.

기본 설정으로 autoflush=True로 되어 있으며, 이는 변경된 데이터가 즉시 데이터베이스에 반영되도록 합니다. 하지만 때로는 autoflush가 필요하지 않은 경우가 있을 수 있습니다. 예를 들어:

  1. 트랜잭션 단위 작업: 데이터베이스와의 상호작용이 복잡하고 큰 트랜잭션 단위로 수행되는 경우, 수동으로 flush를 관리하는 것이 더 명확할 수 있습니다. 이럴 때 autoflush=False를 설정할 수 있습니다.

  2. 성능 최적화: 데이터베이스 액세스를 줄이고 싶을 때, 필요하지 않은 순간의 자동 flush를 막음으로써 성능을 어느 정도 조절할 수 있습니다.

  3. 동작 제어: SQLAlchemy에서 객체가 데이터베이스에 동기화되는 정확한 시점을 더 명확히 제어하고자 할 경우, autoflush=False를 설정하고 필요할 때 수동으로 flush를 시킬 수 있습니다.

FastAPI나 본 강의의 기본 프로젝트에서 기본값을 사용하는 경우가 많으며, 특별한 이유가 없다면 기본 설정을 그대로 사용해도 무방합니다. 다만, 앞서 언급한 이유로 인해 특정 상황에서는 autoflush=False로 설정해 더 명확한 제어를 수행할 수 있습니다.

유사한 내용의 기존 게시글을 참조하여 더 깊이 있는 내용을 확인하고자 하신다면, FastAPI와 SQLAlchemy with autoflush 관련 게시글들의 링크를 첨부해 드립니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

간단한 모델 서빙용으로 FastAPI를 공부하려고 합니다.

0

96

1

Update(수정)용 모델 질문 드립니다.

0

68

2

API 라우트 설계 시 중첩 구조 분리 기준 질문

0

84

2

signed cookie 와 jwt 토큰

0

105

2

비동기처리와 멀티스레드

0

117

2

fastapi의 가능성에 대해 궁금합니다.

0

121

1

어디가 필요없는 코드인지 알아내려면....

0

78

2

nginx를 사용하고 static 설정을 하는 경우도 app.mount 설정을 해야 하나요?

0

104

2

logout 태그 관련 질문

0

52

2

안녕하세요. 질문 하나 드려도 될까요?

0

93

1

81강 한 건도 못찾았을 경우 질문

0

77

2

64강: mysql-connector-python 버전 관련

0

94

2

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

0

75

2

import 자동완성

0

57

1

FastAPI + Uvicorn 환경에서 메모리 누수 관련 문의드립니다.

0

331

2

EmailStr + max_length=40 같은 경우 질문

0

106

2

item_static.html 질문

0

112

2

uvicorn으로 로컬서버 올렸으나 사내 타 컴퓨터에서 접속이 안됨

0

264

2

머신러닝 백엔드 강좌 언제나오나요?

0

138

2

db connect

0

127

2

pydantic

0

120

2

url_for

0

94

2

react

0

112

2

docstring이 안 먹혀요

0

94

1