inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

3 강의 질문

해결됨

바이브 코딩: Next.js + FastAPI + Faster-Whisper로 음성 메모 앱 만들기

3강의에서 사용하는 코드 에디터는 어떤건가요?

  • next.js
  • FastAPI
  • whisper
  • openai-whisper
하이영 댓글 2 좋아요 0 조회수 109

post 작성 오류

해결됨

실전! FastAPI 입문

강의 내용 그대로 따라왔는데swagger에서 확인하니 post 요청에서 json으로 작성할수가 없고, no parameter라고 떠요. 왜 이런 건가요?

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
댓글 3 좋아요 0 조회수 159

pydantic model 기본

미해결

처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]

강의내용 5분 34초에서 "item-tags" : [1] 을 입력하니깐 Error 422 타입 에러가 생겼는데 이유가 무엇인지 궁금합니다. 제 생각에는 List[str]이므로 List 안에 문자형이 와야 올바르지 않을까 라는 생각을 했습니다. 그리고 1을 입력한 이유도 궁금합니다. 혹시 최신 버전의 Pydantic의 타입 검증이 더 엄격해진 이유일까요??

  • python
  • mvc
  • sqlalchemy
  • FastAPI
  • backend
32205083 댓글 1 좋아요 0 조회수 147

Windows에서 수강하는 분들을 위한 노트

미해결

처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]

Windows를 사용하면서 fastAPI 서버를 WSL(Windows Subsystem for Linux)에서 구동하고, MySql 서버를 Windows상에서 구동하는 경우에는 fastAPI를 통해서 MySql에 접속할 때 오류가 발생하는 경우가 있을 수 있습니다. 이는 fastAPI가 설치된 WSL와 MySql이 설치된 Windows가 별도의 머신으로 구성되어 서로의 localhost가 다르기 때문에 발생하는 문제입니다. 따라서 fastAPI에서 접속할 때 localhost가 아닌 Windows의 ip를 사용하여 접속(cmd창에서 ipconfig를 통해 확인)하셔야 합니다. 올바른 ip를 입력하시더라도 접속이 거부될 수 있는데, 이는 MySql에 접속하는 계정명이 "root"가 아니라 "root@localhost"이기 때문일 수 있습니다. 이를 해결하기 위해서는 아래의 sql문으로 새로운 유저 ID와 패스워드를 지정한 다음 이를 통해 접속하시면 됩니다. CREATE USER 'fastapi'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON . TO 'fastapi'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;

  • python
  • mvc
  • sqlalchemy
  • FastAPI
  • backend
윤형석 댓글 1 좋아요 1 조회수 211

Event Loop 관련 질문드립니다.

해결됨

실전! FastAPI 활용(비동기)

Event Loop에서 질문이 있습니다. 저는 await task()을 하면 작업 큐에 등록된 후 차례가 되면 실행이 되는 것으로 이해를 하였는데 그러면 다음과 같은 코드에서, import asyncio async def inner_task(): print(f"inner_task 시작") await asyncio.sleep(1) print(f"inner_task 완료") return "inner 결과" async def outer_task(n): print(f"outer_task {n} 시작") results = await inner_task() print(f"outer_task {n} 완료") return results async def main(): await asyncio.gather(outer_task(1), outer_task(2), outer_task(3)) asyncio.run(main()) 먼저 큐에 등록된 outer_task들이 먼저 동작을 하는 것으로 예상을 하였지만 먼저 들어간 outer_task보다 내부의 inner_task가 먼저 동작을 하였습니다. 하지만 outer_task에 gather을 사용하여 여러 task를 await하면, 모든 outer_task 이후에 작동을 하는 데 혹시 작동원리가 다를까요?

  • python
  • FastAPI
  • websocket
  • asyncio
  • pubsub
yoonjong.kim 댓글 2 좋아요 0 조회수 120

EmailStr + max_length=40 같은 경우 질문

미해결

FastAPI 완벽 가이드

안녕하세요, 권철민 강사님. FastAPI로 실제 서비스를 운영 중인 주니어 개발자입니다. EmailStr 이나 max_length=40 같은 경우, 프론트엔드에서 입력을 제한하더라도 백엔드에서 예외 처리를 한다고 가정할 때, Pydantic의 검증 오류는 모두 422 에러로 반환됩니다. 이 경우, 클라이언트에서 특정 오류(예: 이메일 형식 오류, 최대 길이 초과 등)를 구분하기 어려운 문제가 있습니다. 클라이언트에서 특정 오류에 대해 모달을 띄우는 등의 처리가 필요할 때, Pydantic 검증 대신 비즈니스 로직에서 200 응답을 반환하고, 약속된 에러 코드를 통해 오류를 구분하는 방식이 적절할까요? 정답은 없지만 어떻게 처리하는게 맞을까요?

  • python
  • sql
  • sqlalchemy
  • FastAPI
BH J 댓글 2 좋아요 0 조회수 153

강의상의 readme와 배포되어 있는 것이 다른 것 같아요

미해결

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요 . 스크린샷이 안되서 안타깝긴 한데 강의상의 inflearn-teaching-backend-drf가 어디있을까요?

  • python
  • 동시성
  • FastAPI
shin 댓글 1 좋아요 0 조회수 131

pnpm install is not found 오류

해결됨

Next.js와 yolov11로 화재감지 시스템 구축하기

훤@□□□□ MINGW64 /c/LeeHwon/FlameGuard/FlameGuard/frontend (main) $ pnpm install bash: pnpm: command not found 이렇게 안 뜨는 이유가 무엇일까요..

  • react
  • python
  • next.js
  • FastAPI
  • yolo
댓글 2 좋아요 0 조회수 1209

sql_app.db 연동 관련

미해결

FastAPI 실전편: JWT와 Redis로 완성하는 인증 시스템

../src 경로에서 sqlite3 sql_app.db 실행 및 접속 이후 SQLite version 3.43.2 2023-10-10 13:08:14 Enter ".help" for usage hints. sqlite> .tables sqlite> .tables sqlite> post 확인이 안됩니다

  • jwt
  • redis
  • FastAPI
  • python3
창범 댓글 1 좋아요 0 조회수 160

git 저장소 주소가 어디있나요?

미해결

바이브 코딩: Next.js + FastAPI + Faster-Whisper로 음성 메모 앱 만들기

강의 잘 듣고 있습니다. git 주소를 찾을 수 없네요. 감사합니다.

  • next.js
  • FastAPI
  • whisper
  • openai-whisper
jino 댓글 2 좋아요 0 조회수 204

uvicorn 종료 문제

해결됨

실전! FastAPI 입문

수업 진행 중 코드는 문제가 없지만 컨트롤+c를 눌러도 아무 반응이 없고 uvicorn 종료가 안됩니다 ㅠㅠ 해결방법이 있을까요?ㅠㅠ

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
하늘111 댓글 2 좋아요 0 조회수 615

클라우드 docker compose up 에러

미해결

FastAPI 찍어먹기 (FastAPI + React.js + AWS LightSail)

cms-1 | /src/ entrypoint.sh : line 7: /src/.venv/bin/activate: No such file or directory cms-1 | Waiting for database to be ready... cms-1 | Waiting for database to be ready... cms-1 | /src/ entrypoint.sh : line 7: /src/.venv/bin/activate: No such file or directory cms-1 | /src/ entrypoint.sh : line 7: /src/.venv/bin/activate: No such file or directory cms-1 | Waiting for database to be ready... cms-1 exited with code 1 cms-1 | Waiting for database to be ready... cms-1 | /src/ entrypoint.sh : line 7: /src/.venv/bin/activate: No such file or directory cms-1 | Waiting for database to be ready... cms-1 | /src/ entrypoint.sh : line 7: /src/.venv/bin/activate: No such file or directory cms-1 | /src/ entrypoint.sh : line 7: /src/.venv/bin/activate: No such file or directory Lightsail ubuntu에서 docker compose up 시 위와 같이 entrypoint 쉘에서 /src/.venv/bin/activate 못찾는 에러가 발생합니다... 미리 파이썬 가상환경을 만들어 놓아도 에러가 발생해요..ㅠㅠ

  • aws
  • mysql
  • FastAPI
  • nginx
  • react.js
하늘111 댓글 2 좋아요 0 조회수 167

왜 return타입이 ToDo라는 스트링인가요?

해결됨

실전! FastAPI 입문

안녕하세요. 항상 좋은 강의 감사드립니다. 수업을 듣던중 2:31경에 나오는 리턴타입을 왜 스트링으로 설정하는지 궁금해서 질문드립니다. 이상입니다. 감사합니다.

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
특별한 지렁이 댓글 2 좋아요 0 조회수 171

schema 클래스의 model_config 속성 관련 질문

미해결

FastAPI 찍어먹기 (FastAPI + React.js + AWS LightSail)

안녕하세요! fastapi 입문으로 강사님 강의를 듣게되어 영광입니다. 강의 내용 따라 진행은 잘되고 있으나 강사님이 구현하신 class SubCategoryCreate(BaseModel): model_config = ConfigDict(from_attributes=True) subcategory_name: str category_id: int model_config = { "json_schema_extra": { "example": { "subcategory_id": 1, "subcategory_name": "수도", "category_id": 1 } } 이렇게 구현을 하셨는데 model_config 변수가 두번사용 되어 마지막에 사용된 model_config 값이 첫번째 ConfigDict(from_attributes=True) 값을 덮어 씌워 첫번째로 사용된 model_config 변수의 역할이 없어지는것이 아닌가 하여 의문이 들어 왜 같은 변수명으로 덮어 씌우는지 궁금하여 질문 드립니다.

  • aws
  • mysql
  • FastAPI
  • nginx
  • react.js
하늘111 댓글 1 좋아요 0 조회수 192

item_static.html 질문

미해결

FastAPI 완벽 가이드

<h3><a href="/static/link_tp.html">another link</a></h3> 링크가 /static으로 시작하기 때문에 정적파일로 간주되고 static 뒤에 붙은 link_tp.html은 app.mount에서 알아서 html문서로 문자열 파싱하나요?

  • python
  • sql
  • sqlalchemy
  • FastAPI
최재정 댓글 2 좋아요 0 조회수 149

ORM 연관관계

해결됨

실전! FastAPI 입문

안녕하세요! Nest에서 Fast API로 컨버젼중입니다. Nest는 Many to Many, Many to One 등등 이러한 연관관계를 설정해서 테이블을 생성합니다. Fast API에서는 아래 코드처럼 단순히 join만 걸어두고 사용하면 되는 걸까요?? class User(Base): __tablename__ = "user" id = Column(Integer, primary_key=True, index=True) username = Column(String(256), nullable=False) password = Column(String(256), nullable=False) todos = relationship("ToDo", lazy="joined")

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
Full Stack 개발자 댓글 2 좋아요 0 조회수 156

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

미해결

FastAPI 완벽 가이드

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요. - 먼저 유사한 질문이 있었는지 검색해보세요 - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님. 안녕하세요. 현재FAST_API를 구성하여 uvicorn app.main:app --reload --host 0.0.0.0 --port 8010 위와 같이 로컬서버를 열었습니다. 사내에서 프론트엔드쪽에서 제 서버로 접속을 시도하는데 공용 Wifi를 쓰고 있어서 IP주소만 192.168.0.x:8010으로 프론트엔드쪽에 전달을 했습니다. 하지만 프론트쪽에서는 제 로컬 서버로 접속이 안되고 계속 로딩만 되고 있습니다. 로컬에서 swagger를 열어서 서버테스트를 했을 때에는 전혀 문제가 없었는데 현재 문제는 공용 라우터 아래 무선 랜을 잡아서 쓰고 있는 두 컴퓨터간의 통신이 안되고 있습니다... 하지만 프론트에서 index.html을 5500포트로 열어서 공유한 것을 잘 열립니다. 정말 gpt, claude를 쪼아서 물어봤는데도 계속 똑같은 이야기, 방화벽 설정에서 인바운드 포트설정이야기만 합니다 혹시 어떤 문제인지 좀.. 도와주십시요. 내일 대표님 앞에서 프로젝트 시연을 해야하는데 지금 ...큰 문제입니다.

  • python
  • sql
  • sqlalchemy
  • FastAPI
soodar17 댓글 2 좋아요 0 조회수 332

Oracle DB 연결과 관련해 질문이 있습니다..

미해결

실전! FastAPI 입문

Sqlalchemy 라이브러리와 Python-oracledb 드라이버를 이용해 DB 연결을 하려고 하는데 쉽지 않습니다.. 저는 service name 정보만 있고 SID 정보는 없는 상태인데, 공식문서를 참고해 아래와 같이 접속을 시도해도 에러가 발생합니다..ㅠ 에러 내용 ) File "src/oracledb/impl/thin/transport.pyx", line 289, in oracledb.thin_impl.Transport.send_oob_break OSError: [Errno 22] Invalid argument DB 접속 코드 ) import sqlalchemy engine = sqlalchemy.create_engine("oracle+oracledb://MY_USERNAME:MY_PASSWORD@MY_DB_HOST:MY_DB_PORT/?service_name=MY_DB_SERVIC_NAME") disable_oob=True로 하면 될 것 같은데, sqlalchemy에서 어떻게 해당 값을 세팅해야 하는지 모르겠습니다...ㅠ 따로 설정파일을 만들어야 하나요?ㅠㅠ

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
qpal1zm23 댓글 2 좋아요 0 조회수 207

비동기 서버 구성하다 알 수 없는 에러에 빠졌는데...

해결됨

실전! FastAPI 활용(비동기)

안녕하세요. 좋은 강의 감사합니다. 강의를 기반으로 제 방식대로 서버를 구성하다가 알 수 없는 에러에 빠졌습니다. 서버는 정상 구동은 되고, postman으로 root url인 localhost:8000/ 에 request를 날리면 정상적으로 결과값을 반환 받는데 localhost:8000/api/recommend?userId=1 만 호출하면 바로 에러메세지 없이 500만 응답으로 받고 있습니다. print(1) 도 서버 로그에 찍히지 않고 서버 로그는 아예 나오질 않네요. localhost:8000/ 에서도 동일하게 서버 로그는 찍히지 않습니다 우선 의도는 BaseRepository 클래스를 만들어서 find_by_id 같은 중복 코드를 하나로 관리해보려고 했습니다. 의존성 주입 부분은 지피티의 도움을 받아서 위치를 조정했습니다. 도저히 어디서 문제가 난건지 알 수 없어서 도움 요청 드립니다 ㅜㅜ # main.py from typing import Dict from dotenv import load_dotenv from fastapi import FastAPI from src.app.app import create_app load_dotenv() app: FastAPI = create_app() @app.get("/") async def health_check_handler() -> Dict[str, str]: return {"statusMsg": "good"} # app.py from contextlib import asynccontextmanager from typing import AsyncGenerator import anyio from fastapi import FastAPI from src.app.endpoints.recommend import router @asynccontextmanager async def lifespan(app: FastAPI) -> AsyncGenerator: limiter = anyio.to_thread.current_default_thread_limiter() limiter.total_tokens = 200 yield def create_app() -> FastAPI: app = FastAPI(lifespan=lifespan) app.include_router(router, prefix="/api") # 다른 설정들(예: 미들웨어, 이벤트 핸들러 등)을 추가할 수 있습니다. return app # connection.py import os import urllib from typing import AsyncGenerator from dotenv import load_dotenv from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, async_sessionmaker, create_async_engine load_dotenv() DB_USERNAME: str = os.getenv("DB_USERNAME", "root") DB_PASSWORD: str = os.getenv("DB_PASSWORD", "root") DB_HOST: str = os.getenv("DB_HOST", "127.0.0.1") DB_NAME: str = os.getenv("DB_NAME", "") DB_PORT: str = os.getenv("DB_PORT", "3306") DB_ECHO: bool = os.getenv("DB_ECHO", "true").lower() == "true" if not DB_NAME: raise ValueError("DB_NAME 환경변수가 설정되지 않았습니다.") # 비밀번호 특수문자 허용 encoded_password = urllib.parse.quote_plus(DB_PASSWORD) DATABASE_URL: str = f"mysql+asyncmy://{DB_USERNAME}:{encoded_password}@{DB_HOST}:{DB_PORT}/{DB_NAME}" engine: AsyncEngine = create_async_engine( DATABASE_URL, echo=DB_ECHO, pool_size=10, max_overflow=0, pool_timeout=30, # second pool_recycle=60, # second pool_pre_ping=True, ) SessionFactory = async_sessionmaker(autocommit=False, autoflush=False, bind=engine) async def get_db() -> AsyncGenerator[AsyncSession, None]: session = SessionFactory() try: yield session finally: await session.close() # user_route.py from typing import Dict from fastapi import APIRouter, Depends, status from src.app.dependency.query_param_denpendency import snake_case_query from src.core.common_type import V from src.core.exception.not_found_exceptions import UserNotFoundExceiption from src.db.connection import get_db from src.entity.user import UserEntity from src.repository.user import UserRepository, get_user_repository from src.dto.response.user_response import UserResponse router = APIRouter(prefix="/recommend") @router.get(path="", status_code=status.HTTP_200_OK, response_model=UserResponse) async def get_recommend_schedule( params: Dict[str, V]=Depends(snake_case_query), user_repo: UserRepository=Depends(get_user_repository) ): print(1) user_id: int = int(params.get("user_id", None)) user: UserEntity | None = await user_repo.get_user_by_id(user_id) if not user: raise UserNotFoundExceiption() user = UserResponse.model_validate(user) return user # base_repository.py from typing import Type from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from src.core.common_type import E class BaseRepository: def __init__(self, db: AsyncSession): self.db = db async def get_entity_by_id(self, model: Type[E], entity_id: int) -> E | None: print(2) entity: E | None = await self.db.execute(select(model).where(model.id==entity_id)) return entity.scalars().first() # user_repo.py from fastapi import Depends from sqlalchemy.ext.asyncio import AsyncSession from src.db.connection import get_db from src.entity.user import UserEntity from src.repository.base_repository import BaseRepository def get_user_repository(db: AsyncSession = Depends(get_db)) -> "UserRepository": return UserRepository(db) class UserRepository(BaseRepository): async def get_user_by_id(self, user_id: int) -> UserEntity | None: print(3) return await self.get_entity_by_id(UserEntity, user_id) # user_response.py from datetime import datetime from typing import Optional from pydantic import BaseModel class UserResponse(BaseModel): id: int name: str nickname: str email: str phone: str join_date: datetime updated_at: Optional[datetime] = None deleted_at: Optional[datetime] = None class Config: from_attributes = True 도대체 어디서 문제가 생긴걸까요...

  • python
  • FastAPI
  • websocket
  • asyncio
  • pubsub
윤서준 댓글 5 좋아요 0 조회수 598

인기 태그

인프런 TOP Writers

주간 인기글