inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

의존성조언에서 UserService의 login은 Clock에 의존하는지 모르지 않나요?

미해결

Java/Spring 주니어 개발자를 위한 오답노트

의존성 조언 두번째 방법에서 문제점이 UserService.login은 여전히 의존성이 감춰져있다. 위와 마찬가지로 Userservice.login을 테스트할 때 clock에 의존하고 있는지 알 수 없다. 이거였는데 세번 째 방법도 UserService를 사용하는 메서드는 login(user)만 남겨서 user가 Clock에 의존하는지 모르지 않나요? 아까 맥도날드 예제에서는 인터페이스를 사용하면 일을 시킨다고 설명하셨는데 이것도 인터페이스를 사용해서 일을 시키는거니 이렇게 구현하면 내부에서 clockHolder를 사용해도 외부에서 몰라도 되나요?

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
seiyoung an 댓글 2 좋아요 0 조회수 472

ModuleNotFoundError: No module named 'database'

해결됨

실전! FastAPI 입문

안녕하세요. 강의 잘 듣고 있습니다. 데이터베이스 연결 강의에서 파이썬 콘솔에서 from database.connection import SessionFactory를 실행할 때 자꾸 모듈을 찾을 수 없다고 나옵니다. sys.path.append를 통해 경로를 추가해주었는데도 찾지를 못하고 있습니다. 해결방법을 알 수 있을까요? 감사합니다!

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

python pandas dataframe을 엑셀 vlookup처럼 활용하고 싶은데 쉽지 않습니다. 도와주세요

미해결

하고 싶은 것 일부 주문이 서비스 유형: 픽업임에도 배달메뉴코드로 생성되어 이를 찾고 싶습니다. (배달메뉴와 픽업메뉴 코드는 서로 다름) 엑셀 vookup을 사용해서 상품코드를 배달 메뉴 테이블에서 검색하고, 검색되지 않으면 오주문으로 판단하는 코드를 구현했습니다. 같은 프로그램을 파이썬을 통해 구현해보고 싶은데, 다른 dataframe에 없는 값을 찾아 행을 추가하는 과정이 어려워 조언을 구하고 싶습니다. 파이썬 코드 df_pickup = 픽업 주문내역 데이터 프레임 delivery_menu_code = df_delivery_menu["상품코드"] df_misorder = pd.DataFrame() # 픽업 주문내역에서 상품코드를 꺼내 해당 상품코드가 배달 메뉴 코드에 포함되어 있는지 확인 # 만약에 코드가 없으면 해당 row를 df_misorder에 추가 for idx, row in df_pickup.iterrows(): misorder = df_delivery_menu[delivery_menu_code.str.contains(row["상품코드"], na = False)] if len(misorder) != 0: df_misorder.concat(row) else: pass # 어떻게 추가해도 계속 0개로 나와서, 도와주시면 감사드리겠습니다! len(df_misorder)

  • python
  • pandas
  • excel
  • vlookup
최경완 댓글 1 좋아요 1 조회수 1020

혹시 강의처럼 잘 안되시는분들을 위해 글을 남깁니다(09.완강)

해결됨

실전! FastAPI 입문

안녕하세요 저는 23년 9월 수강 완료한 수강생인데요 windows10 환경에서 pycharm 을 이용해 해당 강의 수강하며 혹시 저와 같은 이유로 진행이 어려우신 분들을 위해 글을 씁니다 일단 pycharm 버전을 떠나서 강의 초반부 윈도우 환경에서 python -m venv todos 로 폴더를 만들고 강의와 같이 todos 폴더 안에 src 폴더를 만들면서 source root 를 설정하고 진행시 강의 내용처럼 auto import, import 입력시 IDE 에서 도와주는 코드 어시스트 기능을 전혀.. 사용할수가 없었습니다. ㅜ (추측컨데 windows 환경이라서 그런건지는 확실치 않지만, venv(가상환경) 내부에 src 를 만들어서 이용하기 때문에 interpreter 충돌이 일어나는게 아닌지.. 싶습니다 제 경험으로는 강의 처럼 todos 라는 venv 로 가상환경을 만들고 interpreter 세팅을 todos/Script/python.exe 설정을 했을때 온전히 강의처럼 진행이 안됐었습니다.) 그래서 해당 사진처럼 cmd에서 venv 명령이 아닌 파이참 초반에 open project 할때 new project 를 선택해서 위와 같이 설정하고 project tree 구조를 위와같이 잡으니 이후 진행이 강의 내용과 똑같이 진행이 되어 완강할수 있었습니다. 아마 위와같은 설정으로 new project 하시면 초반에 todos/venv 폴더만 있으실 겁니다 그러면 venv 폴더는 건들지 마시고 todos/src 폴더만 새로이 생성한 후 이후 진행은강의 처럼 똑같이 진행 하시면 되겠습니다. % 강의 후반부 쯤 Redis 를 사용하게 되는데 pycharm 에서 import 하기 전 pip install redis 설치해야 그후 부터 python console 에서 redis import 가능합니다 %

  • python
  • 리팩토링
  • orm
  • FastAPI
  • pytest
BIGO_corp 댓글 1 좋아요 2 조회수 918

pytest시 import error

해결됨

실전! FastAPI 입문

안녕하세요 선생님! 강의 잘 듣고 있습니다. pytest진행하는 과정에서 똑같이 directory구조 만들고 pytest를 명령어로 입력했더니 ImportError while importing test module: test_main.py 절대경로 Hint: make sure your test modules/packages have valid python names. 라는 Error와 함께 pytest가 진행되지 않아서 해결책좀 질문드리고 싶습니다 ㅠ. 참고로 SwaggerUI로 API test를 해보면 잘 작동합니다!

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

ORM적용 POSTAPI 강의

해결됨

실전! FastAPI 입문

RecursionError: maximum recursion depth exceeded 오류가 발생하네요. 찾아보니 너무 많은 라이브러리를 임포트해서 그렇다는데 방법이 없을까요;;

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

HTT

해결됨

실전! FastAPI 입문

HTTP Response 처리하는 강의에서 7:53초, response 타입을 -> ~으로 정의하는 부분에서 오류가 발생하내요;; 왜이런지

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

사용자 정의 함수 방언 등록

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 사용자 정의함수를 db에 등록시켜놓은 다음에 jpql로 사용을 해보니 따로 방언을 등록하지 않아도 사용이 가능합니다. List<String> str = em.createQuery("select create_prefix(m.username) from Member m", String.class).getResultList(); create_prefix는 직접 등록한 함수입니다. 수업에서는 방언으로 사용자 정의 함수를 등록해야지 적용이 된다고 하는데 이 경우 왜 작동되는지 알고싶습니다.

  • java
  • jpa
준영 댓글 2 좋아요 1 조회수 874

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

미해결

프로그래밍 시작하기 : 파이썬 입문 (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

@Autowired와 @Transactional으로 EntityManager주입 받기

미해결

실전! 스프링 데이터 JPA

@Autowired로 EntityManager를 주입받을때 여러 쓰레드가 동시에 접근하면 동시성 문제가 발생합니다. 하지만 @Transactional 을 추가해준다면 //1 @Repository @RequiredArgsConstructor @Transactional public class AutowiredRepository { private final EntityManager em; } //2 @Repository public class PersistenceContextRepository { @PersistenceContext private EntityManager em; } @PersistenceContext 처럼 Transaction에 의해 쓰레드간 동시성 문제를 해결해준다 고 생각하는데 맞게 생각한건지 궁금합니다. 두가지 방법 다 EntityManager를 호출 할때마다 Proxy를 통해 EntityManager를 생성하여 Thread-Safe를 보장해준다라고 볼수 있는 건가요?? 답변주시면 정말 감사하겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
코딩먹는하마 댓글 1 좋아요 1 조회수 622

파이썬 가상환경 질문

해결됨

실전! FastAPI 입문

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

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

penJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 이러한 오류가 뜨는데, 실행하는데는 문제가 없습니다. 이 오류를 고쳐야 할 것 같은데, 어떻게 고쳐야할까요?

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 380

실무에서 사용자 정의 함수를 많이 사용하나요?

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

실무에서 DB방언을 상속받아 사용자 정의 함수를 등록해서 사용하는 경우가 많은지 궁금합니다!

  • java
  • jpa
spacebar 댓글 1 좋아요 0 조회수 366

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

안녕하세요 강사님 이전 재고 관리 강의와 차이에 대해 궁금합니다.

미해결

실습으로 배우는 선착순 이벤트 시스템

쿠폰 생성 발급 로직도 컬럼에 쿠폰의 개수를 지정해놓으면 이전 강의랑 똑같은 거 같은데 왜 이번 강의는 쿠폰 엔티티를 새로 생성해서 그 개수를 체크하는 건지 궁금합니다. 이전 컬럼에 개수를 두어 관리하는 거랑 지금처럼 엔티티를 생성하는 방식의 차이점이 너무 궁금해요 항상 감사합니다.

  • java
  • docker
  • spring-boot
  • kafka
  • redis
진짜 잘하고싶다 댓글 2 좋아요 0 조회수 583

쿠폰 카운트를 Redis에 의존하고 있는데요

미해결

실습으로 배우는 선착순 이벤트 시스템

만약 Redis에 장애가 발생한다면 2차 장치로 DB Count에 의존할 수 밖에 없는걸까요? 실무에선 어떻게 대응하시는지 궁금합니다!

  • java
  • docker
  • spring-boot
  • kafka
  • redis
목동 개발자 댓글 2 좋아요 4 조회수 1075

MySQL 사용에 대한 조언 질문있습니다.

해결됨

Java/Spring 주니어 개발자를 위한 오답노트

안녕하세요 주니어 개발자 길라잡이가 되주셔서 감사합니다. fulltext index에 대해서 질문이 있습니다. 임계점이 올경우 튜닝으로도 해결할 수 없는 문제라고 말씀해주셨는데요 경험담이라고 해주셨는데 그 경험담을 듣고 싶어서 질문을 남겨봅니다. 공식 문서에서 찾아보니까 https://dev.mysql.com/doc/refman/8.0/en/innodb-fulltext-index.html#innodb-fulltext-index-deletion 동시 경합이 발생할 수 있다고 작성이 되어있는데 이 문제로 발생한건가요 ? 아니면 다른 인덱스와 다르게 인덱스 용량 때문에 발생한 문제이신건가요 ? FULLTEXT INDEX의 한계 검색을 해도 다 좋은점만 나오더라구요..

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
티벳로보 댓글 2 좋아요 0 조회수 887

인기 태그

인프런 TOP Writers

주간 인기글