안녕하세요, Langchain RAG 강의 잘 듣고 있습니다. 데이터셋이 방대해질 경우 분명 시간이 지나면서 이제는 사용되지 않은 정보 구식의 정보라고 해야할까요? 그런 것들이 생기는데, 그런 데이터들은 어떻게 필터가 되는지 궁금합니다. 예) Python 2.xx 버전 문서 저장 Python 3.xx 버전으로 신규 업데이트 분명 검색을 할 때 동일하게 겹치는 내용이라면 1번과 2번 모두 가져올 것 같은데요! 이 경우 최신 버전으로만 불러올 수 있게 가능한가요??
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.) - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~ - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 강의 예제를 학습 할 때, 연습 파일명이 구분이 잘안되어서.... 강의를 보며, 학습할 때는 괜찮은데, 넘버링으로 체계적으로 정리가 안되니, 리뷰하기가 힘든 것 같습니다 ㅠ
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
ifnull(인자1, 인자2) 은 인자1이 null이면 인자2를 값으로 사용한다고 설명하셨는데요. 이것을 보고 생각나는 것이 테이블 생성시에 필드에 지정하는 default 가 생각나는데요. 이 default도 필드 값이 null이면 지정한 default값을 사용하는데 그렇다면 ifnull()과 default의 차이점은 뭔가요? 당장 제 수준에서 생각나는건 ifnull()은 매 쿼리 작성할때 기본값을 유연하게 변경할 수 있다? 이정도일 것 같은데 이것말고 특별한 차이점 같은 것이 있을까요?
TOdo List 라는 툴도 설명해주셔서 감사드립니다. AI 가 생각보다 멍청하다 라는 말이 인상깊었는데요. 제가 궁금한 건 TODO List 를 작성해야하는 이유는 우리가 개발을 하다가 다시 다음 날 한다고 했을때, TODO List 를 설명하지 않고, 기억하고 있겠지 ? 라고 하면서 그대로 진행하는 것보다는 TODO List 로 한번 상기시켜주는 것이 좋다 라고 해석하면 될까요 ? 제가 아마 잘 못 따라간 것 같은데, 정확히 언제 쓰는게 맞는건지 조금만 더 구체적으로 설명해주시면 감사드리겠습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요~ 문제와 풀이2의 문제2(모든 상품 옵션 조합에 재질 추가하기)에서 선생님 실행 결과가 (사이즈) S -> M -> L -> XL 순서로 나오던데요, 제 생각에는 기본 문자열 정렬이라면 L -> M -> S -> XL 순서가 맞는 것 아닌가요? 혹시 제가 놓친 부분이 있을까요?
안녕하세요? 2일차 2-2 실습_회귀_모델링에서 마지막 평가부분에서 결과가 아래처럼 나오는데요 MSE : 31.6591796875 MAE : 4.914498329162598 MAPE : 127302268616704.0 MAPE 가 매우 큰값이 나왔는데 이게 맞는건가요? 강사님이 주신 코드를 그대로 실행해 봐도 매우 큰값이 나오던데 이렇게 큰값이 나와도 괜찮은건가요?
웹소켓 켜고 커넥트 해서 채널 받았는데요. called join_channel 부터 안 되는데 왜 그럴까요? 계속 하다 보니 연결은 됐는데요. New client connected Received message from client: {"type":"join","channel":"kvisl10k"} Sending message to client: undefined New client connected New client connected 원래는 계속 Received message from client: {"type":"join","channel":"kvisl10k"} Sending message to client: undefined 여기까지만 나오고 안 된것 같은데 여러가지 확인하고 삭제하고 원복하고 하다보니 New client connected New client connected 이게 두번뜨고 연결이 되는데 왜 계속 sending ~ 여기까지만 나온걸까요?
강의에서는 비동기적으로 engine을 만들때, 아래 처럼 engine = create_async_engine( DATABASE_URL, echo=True, future=True, # SQLAlchemy 2.0 # encoding="utf-8" ) 했는데.... poolclass=QueuePool를 사용하여, DB 연결을 풀링하여 재사용하는 것이 도움이 될 듯한데... 강의에서는 언급이 없으셔서, AI에게 물어봤더니... " FastAPI에서 create_async_engine 과 함께 QueuePool 을 사용하는 것은 비동기 데이터베이스 연결을 효율적으로 관리하기 위함 입니다. QueuePool 은 데이터베이스 연결을 풀링하여 재사용함으로써, 매번 새로운 연결을 생성하고 종료하는 오버헤드를 줄여줍니다. 특히 FastAPI와 같이 비동기 요청을 처리하는 환경에서는 여러 연결을 동시에 관리해야 하므로, 풀링은 성능 향상에 큰 도움이 됩니다." 이렇게 답을 주고... from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy.pool import QueuePool DATABASE_URL = "your_database_url" # 예: postgresql+asyncpg://user:password@host:port/database engine = create_async_engine( DATABASE_URL, poolclass=QueuePool, pool_size=10, # 풀에 유지할 연결 수 max_overflow=20, # 풀 크기가 초과될 때 허용할 추가 연결 수 pool_recycle=3600, # 초 단위로 연결을 재활용할 시간 (초과 시 재연결) echo=True # SQL 실행 로그 출력 (디버깅용) ) # 이후 엔진을 사용하여 데이터베이스 작업 수행 예시코드로 이렇게 주던데... 실제로, 비동기적으로 engine을 만들때에 AI의 답변처럼 도움이 되나요? 저희 강의의 코드는 아래와 같은 흐름을 타고 있던데... from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.orm import sessionmaker, declarative_base from typing import AsyncGenerator from sqlalchemy.orm import configure_mappers configure_mappers() DATABASE_URL = "sqlite+aiosqlite:///./sql_app.db?charset=utf8" engine = create_async_engine( DATABASE_URL, echo=True, future=True, # SQLAlchemy 2.0 # encoding="utf-8" ) from sqlalchemy.ext.asyncio import async_sessionmaker AsyncSessionLocal = async_sessionmaker( engine, class_=AsyncSession, # add expire_on_commit=False, autocommit=False, autoflush=False ) Base = declarative_base() async def get_db() -> AsyncGenerator[AsyncSession, None]: session: AsyncSession = AsyncSessionLocal() print(f"async def get_db(): Session created: {session}") try: yield session except Exception as e: print(f"Session rollback triggered due to exception: {e}") await session.rollback() raise finally: print(f"async def get_db(): Closing session: {session}") await session.close()
mysql-connector-python=9.4.0으로 2025.8.17일 현재의 최신 버전을 설치했더니, engine.connect() 부터 적용이 안되던데... 이유가 궁금합니다. 왠만해서는 안될 이유가 없을 것 같은데... 희한하게 안되더라구요... 궁금해서 질문 남깁니다. 감사합니다.
먼저 유사한 질문이 있었는지 검색해보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하십니까 선생님, PDF P282 단원정리문제 28번 정답이 1번이라고 되있던데 랩탑, 모니터, 키보드 전부 포함된게 정답이 아닐지 여쭤봅니다.\\ 문제 30번도 다 합치면 15,500인데 이상한거같습니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요 영한님! 데이터베이스 입문/기본편 강의에서 GROUP BY, 집계함수, CASE 문 등을 배우고 공부하면서, DBMS에서 레코드를 읽고 표현식을 처리하는 내부 과정에 대해 관심을 갖게 되었습니다. 이번 강의에 조건부 집계 같은 나름 복잡한? 쿼리를 이해하려고 노력하면서 몇 가지 궁금증이 떠올랐습니다. 질문1) 배치 처리 방식 vs 파이프라인 처리 방식 영한님의 자바 고급편 강의에서, 데이터 요소들의 처리하는 방식에는 파이프라인 방식과, 배치 처리 방식이 있다고 하셨던 부분이 떠올랐습니다. 데이터베이스 쿼리의 논리적 순서는 FROM -> WHERE -> (GROUP BY -> HAVING -> ) SELECT -> .... 과정으로 이뤄지는데, 실제 DBMS에서는 FROM 절 -> WHERE 절 배치처리 -> SELECT 절 배치처리 이런 과정으로 이뤄지는지, 아니면 레코드 하나를 단위로 FROM -> WHERE -> SELECT 파이프라인을 거쳐 처리가 되는 것인지 궁금합니다. 질문 2) GROUP BY와 집계 함수 처리 시점 COUNT()나 SUM()과 같은 집계함수는 select 절에 존재하고, 쿼리의 논리적 순서에 따르면 GROUP BY 다음 SELECT 절이 실행되는데요. (HAVING 제외) 실제로는 GROUP BY를 실행하면서 SELECT 절에서 필요한 집계 값을 누적시키는지, 아니면 특별한 자료구조에 그룹별로 레코드를 모아두고 SELECT절 수행 시점에 집계함수 값을 얻어내는건지 궁금합니다.