inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

자동 생성되는 괄호 넘어가는 단축키

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

중괄호 등을 통해서 코드를 작성할 때 중괄호가 [] 이렇게 두개 자동으로 생성되는데요. 이외에도 '' 등 두개씩 자동으로 만들어줘서 코드를 작성하는데는 편리한데 'LEE' 등 코드를 쓰고 EE에서 '를 넘어 가기 위해 방향키를 눌러줘야 하는 불편함이 있습니다. 혹시 빠르게 작성하기 위해 단투키 같은게 별도로 있을지 문의드립니다

  • python
9시30분출근 댓글 1 좋아요 0 조회수 581

섹션2. HTTP Response 처리 에서 from_orm 관련 오류가 나서 질문드립니다.

해결됨

실전! FastAPI 입문

섹션2. HTTP Response 처리 에서 from_orm 관련 오류가 나서 질문드립니다. The from_orm method is deprecated; set model_config["from_attributes"]=True and use model_validate instead. 라는 에러와 함께 서버를 작동시켜도 Swagger에서 GET함수가 반영되지 않고 status code 500으로 Error가 발생하는데 해결법을 혹시 아실까요? 구글링을 해봐도 정보가 잘 나오지 않네요ㅠ if order and order == "DESC": return ListToDoResponse( todos=[ToDoSchema.from_orm(todo) for todo in todos[::-1]] )

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
beop Uk 댓글 1 좋아요 0 조회수 676

파이썬 가상환경 질문

해결됨

실전! FastAPI 입문

파이썬 가상환경 구축영상에서, 터미널에서 가상환경 구축하셨는데, 어느 터미널에서 실행하는지도 안알려주시고 알려주시면 좋겠습니다. 설명이 너무 빈약하네요...;; 일단 파이참은 설치했는데 어떻게 하는지 자세히 설명 부탁드립니다.

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
윤태영 댓글 1 좋아요 0 조회수 672

api 데이터 모델링 시, pandantic?

해결됨

실전! FastAPI 입문

강의를 보고 문서를 보고 정리하는 과정 중에 헷갈리는 점이 있어서 질문 드려봅니다. 저희 코드에서 schema안에 response , request 의 스키마는pydantic의 basemodel로 설계가 되어있고 , database Orm에는 유저 모델과 todo를 만들었는데, 이 부분은 sql alcemy의 base declaritve를 사용한걸로 기억합니다. (모델 폴더와 스키마 폴더가 헷갈립니다..) 백엔드 설계를 할때, 데이터 구조 그리고 erd등 관계도 설정 후에 모델링을 fast api로 할때는 , 저희 강의 때 한 것처럼 orm안에 해준 것처럼 하는 방식일까요? pydantic으로 schema(폴더명 때문에 헷갈리는 부분일 수도.)에서는 단순히 req,res 에 있어서 타입을 검증하기 위한 모델을 설계한 것이라고 보면 될까요? 강의를 듣고, 실제로 백엔드 api 만들어서 프로젝트 구성해보려 하는 과정에서 질문이 있어서 드려봅니다. 1 to many는 아래처럼 하고 , m to m인 경우도 아래 와 비슷한 형식으로 모델링을 하는 걸까요? 강의에서는 맛보기로 간단하게 소개형식이지만 실제로 프로젝트를 한다고 했을땐, 어떻게 작성하는지 궁금합니다. user_id = Column(Integer, ForeignKey("user.id")) Repository 는 mvc의 컨트롤러라고 생각하면 될까요? 모델링 할때, SQLModel로 하는 방법과 강의에서 나온 Base상속방법의 차이는 무엇일까요? 구글링해도 잘 나오지 않네요.. 둘다 상관없다면, 어떠한 것이 선호가 되는지 왜 강의에서는 base상속을 했는지 이유가 있으실까요? SQL Model도 fastapi 저자가 만든 것인고 pydantic기반이라고 들었습니다. 번외로.. 저희가 배운걸로는 declartive 를 상속받는데, 아래와 같은 형식으로도 모델링을 하기도 하나요? from sqlmodel import SQLModel, Field class User(SQLModel, table = True): nickname: str = Field(primary_key = True) password: str

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
luke 댓글 1 좋아요 0 조회수 497

TODO 테스트 코드 작성

해결됨

실전! FastAPI 입문

저의 경우는 아래와 같이 해주어야 테스트 코드가 통과됩니다. 그 이후는 sql 도커의 데이터가 5개가 있어서 실제는 5개이기 때문이라 생각되어지는데요. 강의를 보면서 테스트코드 감을 못잡앗는데, 궁금한 점은 테스트 코드에서 user 변수에다가 id1 이고 test란 이름의 유저네임을 넣어주고 거기다가, todos를 목업으로 2개를 넣어줬는데, 왜 마지막에 assert할때는 user.todos에 넣어준 배열로 하는게 아닌 실제 db들어간 5개의 데이터로 assert로 체크하더라구요. 그러면 아래 mocker patch해준 부분이 제대로 안먹는건가요? 흠.. user = User(id=1, username="test", password="hashed") user.todos = [ ToDo(id=1, contents="FastAPI Section 0", is_done=True), ToDo(id=2, contents="FastAPI Section 1", is_done=False), ] mocker.patch.object(UserRepository, "get_user_by_username", return_value=user) def test_get_todos(client, mocker): access_token: str = UserService().create_jwt(username="test") headers = {"Authorization": f"Bearer {access_token}"} user = User(id=1, username="test", password="hashed") user.todos = [ ToDo(id=1, contents="FastAPI Section 0", is_done=True), ToDo(id=2, contents="FastAPI Section 1", is_done=False), ] mocker.patch.object(UserRepository, "get_user_by_username", return_value=user) # order=ASC response = client.get("/todos", headers=headers) assert response.status_code == 200 assert response.json() == { "todos": [ {"id": 1, "contents": "FastAPI Section 0", "is_done": True}, {"id": 2, "contents": "FastAPI Section 0", "is_done": True}, {"id": 3, "contents": "string", "is_done": True}, {"id": 4, "contents": "string", "is_done": True}, {"id": 5, "contents": "string", "is_done": True}, ] } # order=DESC response = client.get("/todos?order=DESC", headers=headers) assert response.status_code == 200 assert response.json() == { "todos": [ {"id": 5, "contents": "string", "is_done": True}, {"id": 4, "contents": "string", "is_done": True}, {"id": 3, "contents": "string", "is_done": True}, {"id": 2, "contents": "FastAPI Section 0", "is_done": True}, {"id": 1, "contents": "FastAPI Section 0", "is_done": True}, ] }

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
luke 댓글 1 좋아요 0 조회수 355

회원가입 test Api Assertion Error

해결됨

실전! FastAPI 입문

해결완료... user: User = User.create(username=request.username, hashed_password=hashed_password) 저 부분에서 username 안하고, positional Arugment처럼 User.create(request.username)이런 식으로 코드를 썻네요.. 파이썬에서는 named Argument형식을 맞춰야 하나요? test api user 코드 입니다. def test_user_sign_up(client, mocker): hash_password = mocker.patch.object( UserService, "hash_password", return_value="hashed" ) user_create = mocker.patch.object( User, "create", return_value=User(id=None, username="test", password="hashed") ) mocker.patch.object( UserRepository, "save_user", return_value=User(id=1, username="test", password="hashed"), ) body = {"username": "test", "password": "plain"} response = client.post("/users/sign-up", json=body) hash_password.assert_called_once_with(plain_password="plain") user_create.assert_called_once_with(username="test", hashed_password="hashed") assert response.status_code == 201 assert response.json() == {"id": 1, "username": "test"} 깃 헙 나온 코드로도 해봤지만, 여전히 user_create.assert_called_once_with() 이 부분에서 에러가 납니다. 주석처리하면 잘 통과 되구요. 아래가 에러 메세지 내용이고, 혹시 오타 있을까봐 깃허브 코드 그대로 가져와도 동일하네요. test_users_api.py:5 (test_user_sign_up) {'hashed_password': 'hashed'} != {'hashed_password': 'hashed', 'username': 'test'} Expected :{'hashed_password': 'hashed', 'username': 'test'} Actual :{'hashed_password': 'hashed'} expected는 적었떤 username="test"가 나와야 하는데 , 실제는 없나봅니다. 그래서 user_create.assert_called_once_with(hashed_password="hashed") 이런식을 변경하면, 아래처럼 여전히 통과 하지 못하네요 ('test',) != () Expected :() Actual :('test',)

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
luke 댓글 1 좋아요 0 조회수 293

print(soup.a) 태그 값이 None으로 나옵니다.

미해결

파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)

태그 관련 내용이 반환이 안 되는데 어떻게 하면 될까요?

  • python
  • 웹-크롤링
  • selenium
  • 웹-스크래핑
고인규 댓글 4 좋아요 0 조회수 1209

fetchPointTransactionsOfBuying API에서 특정 정보만 불러와지지 않습니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

안녕하세요 강사님. 마이페이지 내 포인트 화면의 구매내역 조회기능을 구현 중에 있습니다. fetchPointTransactionsOfBuying API 로 구매내역을 조회하는데 판매자의 이름이 불러와지지 않습니다.. const FETCH_POINT_TRANSACTIONS_OF_BUYING = gql` query fetchPointTransactionsOfBuying($search: String, $page: Int) { fetchPointTransactionsOfBuying(search: $search, page: $page) { _id impUid amount balance status statusDetail useditem { _id name price seller { _id # name # email } buyer { _id name email } soldAt } createdAt } } `; useditem.seller._id 까지는 조회가 되는데 name 과 email 은 조회가 되지않습니다. 혹시나 해서 buyer 정보를 불러왔는데 buyer 도 _id 만 조회가 되고 name 과 email 는 조회가 되지 않습니다. 위와 같은 오류가 나오는데 제가 모르는 부분이 있는건지 데이터에 문제가 있는건지 잘 모르겠습니다.. !

  • react
  • node.js
  • seo
  • graphql
  • next.js
summery 댓글 2 좋아요 0 조회수 348

연결요소개수 - 파이썬 풀이 공유

해결됨

[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편

안녕하세요 저는 강사님 강의로 공부하고 파이썬으로 코테를 준비하고 있습니다. 저와 같은 상황에 계신분들과 공유하고 싶어 글을 올립니다. 파이썬 풀이에서 부족한 부분 알려주시면 수정하겠습니다.~ import sys sys.setrecursionlimit(10 ** 6) N, M = map(int, sys.stdin.readline().split()) MAX = 1000 + 10 graph = [[False for in range(MAX)] for in range(MAX)] visited = [False for in range(MAX)] for in range(M): x, y = map(int, sys.stdin.readline().split()) graph[x][y] = True graph[y][x] = True def dfs(idx): visited[idx] = True for j in range(1, N + 1): if not visited[j] and graph[idx][j]: dfs(j) cnt = 0 for i in range(1, N + 1): if not visited[i]: dfs(i) cnt += 1 print(cnt)

  • 코딩-테스트
  • 알고리즘
  • dfs
  • python
8055kjh 댓글 1 좋아요 1 조회수 335

useCallback 과 React.memo 의 사용 기준

미해결

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 초심자의 입장에서 사실 저러한 기능을 보면 그냥 처음에 만들때는 useCallback, React.memo 를 다 써보고 나중에 문제 생기면 그때 바꿔쓰면 되지 않나? 라는 생각이 듭니다. 마치 평소에는 const 로 다 만들고, 해보다가 let 으로 변경이 필요하다 싶으면 let 으로 바꾸는 것처럼요. 이걸 어떤 기준을 잡고 사용해야 할까요? 정확한 기준이 있는지도 궁금합니다. 렌더링 되는데 걸리는 시간이 몇 초 이상일시 변경한다거나 하는 기준이 있을까요?

  • javascript
  • react
  • node.js
흰머리오목눈이 댓글 1 좋아요 0 조회수 836

완전탐색 강의 1090번 문제 풀이 방법 의문

미해결

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

완전탐색 강의 마지막 문제 1090번 문제 풀이 방법에 의문이 생겨서 질문 올려봅니다. 강의에서는 우리의 집 중에서 한 곳에 모이면 된다고 풀이를 하셨는데, 예시에 나온 4 15 14 15 16 14 15 16 15 4명이 모이기 위한 최적의 장소는 (15,15)입니다. 백준에서도 이것이 정답 좌표이고. 그래서 혹시 제가 1번 2번 3번 아이디어를 이해하는데에서 잘못 이해한 부분이 있을까 싶어 질문을 올립니다. (15 14) (15 16) (14 15) (16 15) 중에 하나에 모인다는 말이 아닌것인가요?

  • python
  • 코딩-테스트
  • 알고리즘
migaele98 댓글 2 좋아요 4 조회수 987

DI 주입

해결됨

실전! FastAPI 입문

현재구조는 todo.py ( controller 역할 ) @router.get("/", status_code=200) def get_todos_handler( order: str | None = None, todo_repo: ToDoRepository = Depends(ToDoRepository), ) -> TodoListSchema: todos: List[ToDo] = todo_repo.get_todos() if order and order == "DESC": return TodoListSchema( todos=[ToDoSchema.from_orm(todo) for todo in todos[::-1]] ) return TodoListSchema( todos=[ToDoSchema.from_orm(todo) for todo in todos] ) repository.py ( service 와 repository 역할 ) 로 되어있다면 class ToDoRepository: def __int__(self, session: Session): self.session = session def get_todos(self) -> List[ToDo]: return list(self.session.scalars(select(ToDo))) 만약 controller, service , repository 로 구조를 변경한다고 했을때도 controller 에서 부터 todo_repo: ToDoRepository = Depends(ToDoRepository) 를 작성해서 service -> repository 까지 끌고와야 할까요 ??

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
SJ 댓글 1 좋아요 0 조회수 374

패키지 와 폴더

해결됨

실전! FastAPI 입문

테스트 코드 까지 강의를 들었습니다. 패키지와 폴더의 차이 자세히 이해가 가지 않습니다. 패키지로 해도 되고 폴더로 해도되면 모두 패키지 폴더로 생성해도 되지않나 생각이 드는데요 어떻게 이해하면 되며 어떤 상황에서 패키지와 폴더를 사용하면 될까요 ?? 강사님이 패키지를 자주 사용하지 않고 폴더만 을 사용하시다가 패키지는 필요할때만 사용하시는것 같아서 그이유가 있으실까요 ?

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
SJ 댓글 1 좋아요 0 조회수 376

update 테스트 코드

해결됨

실전! FastAPI 입문

update 코드를 @app.patch("/todos/{todo_id}", status_code=status.HTTP_200_OK) def update_todo_handler( todo_id: int, is_done: bool = Body(..., embed=True), session: Session = Depends(get_db), ): todo: ToDo | None = get_todo_by_todo_id(session=session, todo_id=todo_id) if todo: todo.done() if is_done is True else todo.undone() todo: ToDo = update_todo(session=session, todo=todo) return ToDoSchema.from_orm(todo) return HTTPException(status_code=404, detail="Todo not found") 위와 같이 작성하고 난뒤에 , 테스트 코드 200 을 제외한 우선 404 기준으로만 작성했을때 # 404 mocker.patch("main.get_todo_by_todo_id", return_value=None) response = client.patch("/todos/1", json={"is_done": True}) assert response.json()['status_code'] == 404 assert response.json()['detail'] == "Todo not found" 다음과 같이 작성했을때 통과가 됐습니다. 하지만 위의 작성된 코드는 영상과 다른 코드입니다. 저렇게 정확히 키값을 설정을 해줘야만 통과가 되더라구요. 제가 어디를 놓치고 있는걸까요 ?

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
SJ 댓글 1 좋아요 0 조회수 358

Django 와 Fast API

해결됨

실전! FastAPI 입문

머신러닝 이라던지 딥러닝 프로젝트를 서버에 배포하게 될때는 Fast API 를 선호하게 되고 , 백엔드 서버 배포시에는 그럼 Django 를 추천하시나요?

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

LeNet-5 실습 중 loss값 nan이 나오고 있습니다.

해결됨

파이썬을 활용한 머신러닝 딥러닝 입문

강의와 동일하게 코드를 쳐서 진행한 것 같은데 loss값 자체가 nan이 나오고 accuracy는 0.1을 넘기지 못하는 중입니다. 왜 이렇게 나오는 건지 알려주실 수 있을까요?

  • python
  • 머신러닝
  • 딥러닝
  • pandas
  • numpy
  • keras
  • tensorflow
  • anaconda
  • matplotlib
  • cnn
MR.SONOB 댓글 1 좋아요 0 조회수 678

node server.js 실행 시 오류 발생

미해결

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

Express에서 데이터 처리하기 강의 수강 중에 생긴 오류 입니다. 이후에 포스트맨에서 body 수정 후 send 시에도 Error: connect ECONNREFUSED이 오류가 떳습니다. index.js를 실행 후에 웹 브라우저에 http://localhost:8080/products 입력하면 [{"name":"농구공","price":5000}] 이렇게 웹 화면에 뜨면서 node:events:492 thorw er;도 같이 뜨면서 서버 에러가 납니다 database.sqlite3을 vs코드 열었을 때는 위 사진처럼 뜨고 sqllite로 열었을 때는 읽을 수 없다고 뜹니다

  • HTML/CSS
  • javascript
  • react
  • node.js
  • react-native
  • 머신러닝
  • express
  • tensorflow
Wakgood 댓글 2 좋아요 1 조회수 2028

'Session' object has no attribute 'scalars' 오류 발생합니다.

해결됨

실전! FastAPI 입문

강사님 안녕하세요. 파이썬 콘솔에서는 list(session.scalars(select(ToDo))) 이 코드가 잘 실행되었는데, main.py 코드 모두 작성 후 스웨거에서 get /todos 에서 실행하면, 터미널에 AttributeError: 'Session' object has no attribute 'scalars' 오류가 뜹니다. ㅠㅠ

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
보로미오 댓글 1 좋아요 0 조회수 480

숫자야구 문제 질문

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

숫자야구 문제 코드 부분에서 약간 오류가 있는 것 같아서 질문드립니다. number, strike, ball에 각각 힌트를 분배할 때 hint[0]~[2]가 아닌 arr[0]~[2]를 담으면서, arr[1]이 strike, arr[2]가 ball이 맞는 것 같은데 영상에 나오는 코드를 다음과 같이 고치면 될까요? for arr in hint: number = arr[0] strike = arr[1] ball = arr[2]

  • python
  • 코딩-테스트
  • 알고리즘
댓글 1 좋아요 5 조회수 704

웹스크래핑 코드 리뷰 도와주세요 (초렙.. '-')

미해결

네이버웹툰 만화 -> 신혼일기 -> 15화 제목을 가져와 보려고 하기와 같이 코드를 작성했습니다만 주피터 노트북에서 run 했을 때 [ ] 라고만 나옵니다 ㅠㅠ 어떻게 해야 할까요?? import requests from bs4 import BeautifulSoup as bs url = " https://comic.naver.com/webtoon/list?titleId=812354 " rsp = requests.get(url, verify=False) rsp.raise_for_status() soup = bs(rsp.text, "lxml") print(soup.find_all("span", attrs={"class": "EpisodeListList__title--lfIzU"}))

  • python
  • requests
  • scraping
김하린 댓글 1 좋아요 0 조회수 482

인기 태그

인프런 TOP Writers

주간 인기글