묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
논문 구현
강의 제목이 논문 구현인데 논문에 대해서는 너무 짧은거같습니다 ㅠ 혹시 연구원(강사) 님 다른 강의추천 해주실수있나요..
-
해결됨코딩테스트 [ ALL IN ONE ]
LCA 관련해서 질문이 있습니다.
LCA 코드에서 left, right 변수는 방명록 (visited) 변수와 같이 방문한 값을 저장하기 위한 용도로 사용하는 것인 가요?!
-
미해결실전! FastAPI 입문
Oracle DB 연결과 관련해 질문이 있습니다..
Sqlalchemy 라이브러리와 Python-oracledb 드라이버를 이용해 DB 연결을 하려고 하는데 쉽지 않습니다..저는 service name 정보만 있고 SID 정보는 없는 상태인데, 공식문서를 참고해 아래와 같이 접속을 시도해도 에러가 발생합니다..ㅠ 에러 내용 )File "src/oracledb/impl/thin/transport.pyx", line 289, in oracledb.thin_impl.Transport.send_oob_breakOSError: [Errno 22] Invalid argumentDB 접속 코드 )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에서 어떻게 해당 값을 세팅해야 하는지 모르겠습니다...ㅠ따로 설정파일을 만들어야 하나요?ㅠㅠ
-
미해결파이썬 중급
이터레이터와 제러네이터 4 - 재귀 제너레이터
안녕하세요 강사님.제목의 강의 중에서 depth_first 함수의 동작이 궁금하여 기본 코드에서 "2.코드 변경"과 같이 print 문을 추가 하여 분석 중 "3. 실행결과"와 같이 출력 되는 것을 확인 하였습니다.질문Node(3) 출력하기 전에 s-yield가 한번 출력 되어야 할 것 같은데 두 번 출력에 대한 해석이 안됩니다.f-yield Node(3) s-yield Node(1) Node(3) s-yield Node(0) Node(3) Node(3)@@추가질문을 올려 놓고 고민 하다 보니 Node(1).depth_first() 함수가 한번만 호출 된다고 생각했는데.프로그램이 종료 될 때 까지 총 4번이 호출 되면 말이 되는 듯 한데.. 추측한 시나리오가 맞는지요?Node(1).depth_first() : next(Node(1)) 4번 호출Node(3).depth_first() : next(Node(3)) 2번 호출Node(4).depth_first() : next(Node(4)) 2번 호출Node(2).depth_first() : next(Node(2)) 3번 호출Node(5).depth_first() : next(Node(5)) 2번 호출 코드 변경 def depth_first(self): print("f-yield",self) yield self print("f-next",self) for c in self: for x in c.depth_first(): print("s-yield",self,x) yield x print("s-next",self,x)실행 결과f-yield Node(0) Node(0) f-next Node(0) f-yield Node(1) s-yield Node(0) Node(1) Node(1) s-next Node(0) Node(1) f-next Node(1) f-yield Node(3) s-yield Node(1) Node(3) s-yield Node(0) Node(3) Node(3) s-next Node(0) Node(3) s-next Node(1) Node(3) f-next Node(3) f-yield Node(4) s-yield Node(1) Node(4) s-yield Node(0) Node(4) Node(4) s-next Node(0) Node(4) s-next Node(1) Node(4) f-next Node(4) f-yield Node(2) s-yield Node(0) Node(2) Node(2) s-next Node(0) Node(2) f-next Node(2) f-yield Node(5) s-yield Node(2) Node(5) s-yield Node(0) Node(5) Node(5) s-next Node(0) Node(5) s-next Node(2) Node(5) f-next Node(5)
-
해결됨챗GPT와 파이썬으로 주식 자동매매 앱 및 웹 투자 리포트 만들기
Anaconda 32비트 다운로드하는건가요?
64로 되어 있어서 키움하고 연결이 안되는거 같아요(kiwoom32) PS C:\Users\main> python -c "import struct; print(struct.calcsize('P') * 8)">> 64(kiwoom32) PS C:\Users\main>
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
섹션 8 yfinance 강의 수강 중 발생한 오류
안녕하세요, 데이터 엔지니어에 관심을 가지고 이제 막 공부를 시작한 학생입니다.섹션 8 yfinance 첫 번째 강의를 수강하던 도중에 에러가 생겨서 문의 남깁니다.작성되어 있는 코드 중에extract(symbol) >> load(file_path, symbol, schema, table)이 부분에서 문제가 생겼었습니다.그래서 file_path = extract(symbol) extract(symbol) >> load(file_path, schema, table)이렇게 수정해서 오류를 해결했는데, airflow web ui에서 다른 오류가 발생했길래 또 찾아보니 load함수에서 문제가 생긴 것 같습니다. file_path를 load함수에서도 다시 만들어줘서 snowflake에 데이터를 적재할 때 올바른 파일 경로를 찾지 못해서 생기는 오류가 발생하는거 같아요.def load(file_path, schema, table): cur = util.return_snowflake_conn("snowflake_conn") try: cur.execute(f"USE SCHEMA {schema};") cur.execute( f"""CREATE TABLE IF NOT EXISTS {table} ( date date, open float, close float, high float, low float, volume int, symbol varchar )""" ) cur.execute("BEGIN;") delete_sql = f"DELETE FROM {table}" logging.info(delete_sql) cur.execute(delete_sql) # 바로 받은 file_path 사용 (더 이상 경로 재생성 X) util.populate_table_via_stage(cur, table, file_path) cur.execute("COMMIT;") except Exception as e: cur.execute("ROLLBACK;") raise e finally: file_name = os.path.basename(file_path) table_stage = f"@%{table}" cur.execute(f"REMOVE {table_stage}/{file_name}") cur.close()요렇게 변경해주니까 데모 영상에 나온 것과 같이 똑같이 스노우플레이크에 잘 적재되었습니다.!제가 제대로 해결한게 맞을까요??
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
부모 클래스와 자식 클래스의 생성자에 파라미터가 같은 경우에 동작 방식 문의
7:36초 부분에 대해 문의드립니다. 자식 클래스를 생성하면 부모 클래스에 있는 기본 생성자인 Car()가 한번 호출된다고 말씀해주셨는데, 만약 자식 클래스의 생성자와 부모 클래스의 생성자에 동일한 파라미터로 구성된 경우에는 어떻게 동작하나요? 예를 들어, 부모 클래스에 Car(String name, Int price)라는 생성자가 있고, ElectricCar(String name, Int price)라는 생성자가 있을때, ElectricCar의 두 파라미터를 입력하여 객체를 생성하는 경우입니다. 이런 경우에도 부모 클래스에서는 파라미터가 들어간 생성자가 호출되는 것이 아니라, 기본 생성자가 호출되나요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
total을 float으로 바꾸신 이유
안녕하세요 더치 페이 함수 만들기에서 going_dutch 함수 리턴값 계산하실 때 return float(total) / num_of_ppl 로 int 값인 total을 float으로 바꾸셨는데 굳이 float으로 바꾸신 이유가 궁금합니다 어차피 int끼리 나눗셈(/)을 하면 결과가 무조건 float으로 나오는데,굳이 total을 float으로 바꾸신 이유가 있을까요?바꾸지 않아도 결괏값은 float으로 나오지 싶어서요. 답변 기다리겠습니다. 감사합니다
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다.
dsom8383@naver.com
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
함수 속 if문
36:06main함수 6번째줄 if(isEven(testVal, 1))을 실행하러 왼쪽의 isEven함수에 가면 if문 2개 다 실행하는게 아닌가요? if(mode==1) 실행하고 if(number%2==0)도 실행해서 '1는 홀수입니다 / 1는 홀수입니다.(0)' 두 줄이 프린트된다고 생각했는데 왜 아닌지 궁금합니다.
-
미해결파이썬으로 장고(Django) 공략하기: 입문
빨간 줄이 뜨네요
첨부파일 화면처럼 빨간 줄이 나타납니다. 실행은 전혀 문제가 없이 실행이 잘 됩니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
선생님 학습 방법 질문이 있습니다.
파이썬 기초 문법 학습 후 현재 강의를 듣는 중인데 2번 세션 맛보기 반복 숙달 어느정도까지 해야 다음 챕터로 넘어가는 것이 맞나요? 강의 이름은 맛보기인데 중요한 것 들 같아서 반복 숙달을 어느정도 까지 하는게 좋을 지 궁금합니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
ETL 작성 이유
이 과정은 google colab을 사용하여 ETL 프로세스를 만들어 스노우플레이크에 적재하는 방식을 보여줍니다. 두 개의 컬럼을 갖고 있는 country_capital.csv 파일을 텍스트로 풀어 쓰고 콤마로 나눠 country와 capital 로 나누는 과정을 설명해주는데, 이 과정을 진행하는 이유가 단순 궁금합니다.스노우플레이크 GUI 환경에서 add data 하여 스테이지-테이블 순으로 적재를 하면 되는데 코드화 하여 적재하는 구분하여 적재하는 이유가 단순히 궁금합니다. 혹시, 나중에 처리하여 올리기 힘든 데이터의 경우 이렇게 전처리 과정을 미리 거쳐 올리는 방법을 알려주시는건가요?
-
미해결Prompt Engineering: 완벽 가이드
reddit data 는 어디있을까요?
수업 자료에는 code, review_criteria이 두개만 있어요.이 강의에서 사용하는 레딧 자료가 어디있는지 모르겠네요.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
Mac Book import 문제 해결완료!! (*window 동일하게 해결가능)
흠... 많은 분들이 module 파일을 가져오실 때, 에러가 발생하는 듯 한데 그 누구도 뭔가 속시원하게 말씀해주지 않으시는 듯하여 아래와 같이 제가 해결한 내용 공유드립니다.1.우선, 다음과 같은 사전지식이 필요합니다.- vscode에서 python 코드를 실행하면, vscode 내 python 전용서버인 Pylance가 실행되며, 해당 서버는 모듈을 찾을 때 기본적으로 특정한 경로만 확인합니다. 그 특정 경로라는 것이 바로 sys.path 안에 포함되어 있는 경로라고 보시면 됩니다.그래서 vscode에서 다음과 같이 코드 입력 후 터미널에서 실행보면 이 때에는 math 폴더가 포함되어 있지 않다는 것을 알 수 있습니다.import sys print(sys.path) print(type(sys.path))따라서 sys.path.append()와 import test_module을 입력하셔도 해당 모듈을 찾아올 수 없었던 것 입니다!! 2.python 전용서버인 Pylance에 sys.path 경로 탐색 외 vscode를 통해 별도 경로도 탐색할 수 있도록 해주세요.- 현재 작업중인 루트폴더 (*수업으로 생각해보면, 파이썬 입문과정)에 .vscode라는 폴더 생성- 만약 현재 작업중인 폴더만 띄어놓고 하고 싶다면, Chapter06 이라는 폴더에다가 생성해줘도 됩니다!- 해당 폴더에 Pylance가 참조할 수 있는 경로 추가 설정- 경로 추가 설정하는 방법 : settings.json 파일 생성 후 아래 코드 입력{ "python.analysis.extraPaths": ["/Users/admin/Documents/파이썬 입문과정/math"] }위 처럼 설정하시면, 이제 Pylance는 import 예약어를 통해 특정 모듈을 가져오고자 할 때, 기본 경로인 sys.path 뿐만 아니라, 개발자가 추가 설정해준 위 경로에서도 값을 참조해 올 수 있게 됩니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
내장 메서드와 슬라이싱의 출력 형태 (따옴표의 차이)
안녕하세요 선생님, 수업 잘 듣고 있습니다. 내장 타입과 메서드 강의 자료와 문자열 슬라이싱 마스터하기 강의 자료에 대한 질문입니다. (1) 내장 메서드를 이용한 출력의 경우s = "Hello, World!"에 대한 print(s.lower()) 이 'hello, world!'그리고 print(s.upper()) 이 'HELLO, WORLD!'이런 식으로 작은 따옴표가 붙어서 출력되는데 (2) 사전 형태의 메서드의 경우에서는 왜 my_dict = {"name" : "WeekendCode" (이하 생략)} 의 print(my_dict.get("job", "Not Found")) 가 그냥 Not Found 이렇게 따옴표가 없이 출력되는지 궁금합니다. (3) 반면 문자열 슬라이싱에서는 기본 예제에서는 주석으로 출력형이 'Hello' 이런식으로 달려있습니다만, 음수 인덱스의 출력값에는 World 이런식으로 쓰여있는데 따옴표가 있는 형태와 없는 형태 둘 중 어느 것이 정답인지 궁금합니다. 시험에 나온다고 생각했을때 내장 메서드를 이용한 출력은 출력값에 따옴표를 붙이고사전 형태의 메서드에서 내장 메서드를 사용해 키 또는 값등을 불러올때는 출력값에 따옴표를 붙이지 않으며문자열 슬라이싱을 하는 경우에는 출력값에 따옴표를 붙이지 않는다 이렇게 생각하면 될까요?늘 좋은 강의에 감사드립니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
8:39 파이썬 문제 문의
안녕하세요! 제가 풀어봤는데 도저히 정답이 이해가지 않아서 틀린부분을 알려주시면 감사하겠습니다.제가 푼 방식은 아래와 같습니다. b는 a의 처음부터 3번째 까지의 문자이므로, "eng"c는 a의 4번째부터 6번째 까지의 문자인데 첫 문자를 0부터 세므로 4번째 문자는 n이된다. 즉, "nee"d는 a의 28번째부터 끝까지의 문자이므로, "ing" b+c+d 는 "engneeing" 정답은 "engneeing" 일 것 같은데, 왜 "engneing" 일까요?
-
해결됨실전! 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 도대체 어디서 문제가 생긴걸까요...
-
미해결FastAPI 완벽 가이드
머신러닝 백엔드 강좌 언제나오나요?
머신러닝 강좌는 언제 오픈하나요? 빨리듣고 싶습니다. ㅎㅎ 일 때문에 빨리 듣고싶은데 프리뷰 필요하시면 연락부탁드립니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
구조체 변수, 구조체 포인터와 malloc에 관한 질문
안녕하세요. typedef 강의를 수강하다 처음 보는 내용들이 너무 많은 와중, typedef 기출 문제(약 3분 15초 즘)에 대해 질문을 남깁니다. 구조체 형태의 Data라는 타입명을 가진 변수 Data를 커스텀으로 정의 후, 해당 타입을 활용하기 위해 main 함수 내부에서 Data 타입(구조체) 변수 d1과 Data 포인터 타입(구조체 포인터) 변수 d2를 선언했습니다. 이 문제에서 핵심은구조체 타입의 포인터 변수를 선언할 경우, 해당 변수의 멤버 변수에 .(dot)을 통해 직접 접근 할 수 없다.우리는 멤버 변수에 할당된 메모리 주소에 접근할 수 있기 때문에, ->(arrow)를 통해 접근하여 해당 주소에 저장된 값을 불러오는 방법을 활용해야 한다.라고 생각했습니다. 즉, d1의 numPtr에 값을 저장 및 접근 할 때와 d2에서 할 때의 차이를 배우기 위한 문제라고 생각이 들었습니다. 그런데, 갑자기 stdlib.h의 내장 함수인 malloc에 대한 코드가 나왔습니다.malloc은 동적으로 메모리 주소를 할당하기 위한 함수라는 것을 알게 되었습니다.,malloc(sizeof(type명))을 통해 포인터 변수에 메모리 영역을 할당하고, 이후 main 함수를 빠져나가기 전 free를 통해 할당했던 메모리 영역을 해제시켜 줬는데요. 왜 해당 방식으로 문제가 출제되었는지 이해가 되지 않아서 질문을 남깁니다.독립적인 Data 타입의 구조체 인스턴스(?)를 만들고 싶은데, 이를 d1 처럼 생성하고 싶지 않을 경우에는 반드시 저 방법을 활용해야 하는 것인가요???malloc을 통해 선언 하는 방식과 아래의 방식에 차이가 있나요?Data d2; // 구조체 변수 선언 Data *d2Ptr = &d2; // 구조체 변수의 메모리 주소에 접근하기 위한 포인터 변수 선언부족한 지식으로 인해 아직은 어렵지만, 차근차근 배워나가는 재미가 있습니다. 항상 좋은 강의 감사드립니다!