묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결FastAPI 완벽 가이드
uvicorn으로 로컬서버 올렸으나 사내 타 컴퓨터에서 접속이 안됨
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요.- 먼저 유사한 질문이 있었는지 검색해보세요- 서로 예의를 지키며 존중하는 문화를 만들어가요.- 잠깐! 인프런 서비스 운영 관련 문의는 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를 쪼아서 물어봤는데도 계속 똑같은 이야기, 방화벽 설정에서 인바운드 포트설정이야기만 합니다혹시 어떤 문제인지 좀.. 도와주십시요. 내일 대표님 앞에서 프로젝트 시연을 해야하는데 지금 ...큰 문제입니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
섹션 8 PostgresToSnowflake DAG 실행 중 발생한 오류
안녕하세요 선생님,강의를 정말 재밌게 수강하고 있습니다. 섹션 8 PostgresToSnowflake DAG를 실행해서 Snowflake에 user_session_channel 테이블과 session_timestamp 테이블에 CSV 파일 로드할 때 오류가 있는것 같아요. 간단하게 해결할 수 있는 문제인데 DAG 파이썬 파일에서 os import 구문이 빠져있는거 같아요 import os이거 넣어서 간단하게 해결했습니다!좋은 강의 만들어주셔서 감사하고 곧 추가될 강의도 기다리고 있겠습니다!
-
미해결실리콘밸리 데이터 리더가 알려주는 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()요렇게 변경해주니까 데모 영상에 나온 것과 같이 똑같이 스노우플레이크에 잘 적재되었습니다.!제가 제대로 해결한게 맞을까요??
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
샘플 쿼리 관련 문의드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.섹션 3. 쿼리 금기사항> Non-SARG, Index 열 값 변형강의 시간 9분 정도에 나오는 3. datediff vs. dateadd 예제의 정상 구현 쿼리가 이상합니다.WHERE ShippedDate >= DATEADD(dd, -1, '19980506')위 조건이면 ShippedDate가 '19980505' 이후 인 모든 데이터가 조회될 것으로 보입니다. DB를 설치하고 진행한게 아니라 실제 데이터가 어떻게 입력되어 있는지는 알 수 없으나 조건이 이상해서 문의드립니다.WHERE ShippedDate >= DATEADD(dd,-1,'19980506') AND ShippedDate <= '19980506'제 생각으론 이렇게 수정해야 맞는 것 같습니다.
-
미해결실리콘밸리 데이터 리더가 알려주는 Airflow 기초
ETL 작성 이유
이 과정은 google colab을 사용하여 ETL 프로세스를 만들어 스노우플레이크에 적재하는 방식을 보여줍니다. 두 개의 컬럼을 갖고 있는 country_capital.csv 파일을 텍스트로 풀어 쓰고 콤마로 나눠 country와 capital 로 나누는 과정을 설명해주는데, 이 과정을 진행하는 이유가 단순 궁금합니다.스노우플레이크 GUI 환경에서 add data 하여 스테이지-테이블 순으로 적재를 하면 되는데 코드화 하여 적재하는 구분하여 적재하는 이유가 단순히 궁금합니다. 혹시, 나중에 처리하여 올리기 힘든 데이터의 경우 이렇게 전처리 과정을 미리 거쳐 올리는 방법을 알려주시는건가요?
-
미해결실무 활용 SQL 데이터 분석: 효율적인 데이터 처리와 인사이트 도출
2-2. 실습 2A 6, 7번 문제
Ex 7. # fact_orders 테이블에서 product id 순으로 다음 10개의 제품을 표시하세요 select product_id, prod_cat_name_eng from ecommerce.dim_products order by product_id limit 10 offset 10; 왜 문제는 'fact_orders 테이블에서'인데 from ecommerce.dim_products인거죠?
-
미해결FastAPI 완벽 가이드
머신러닝 백엔드 강좌 언제나오나요?
머신러닝 강좌는 언제 오픈하나요? 빨리듣고 싶습니다. ㅎㅎ 일 때문에 빨리 듣고싶은데 프리뷰 필요하시면 연락부탁드립니다.
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
artist 테이블을 생성 시 "권한 불충분" 오류 관련 문의
artist 테이블을 생성하기 위해서 공유해 주신 스크립트를 실행하면 "SQL Error [1031] [42000]: ORA-01031: 권한이 불충분합니다"라는 에러가 발생합니다. 해결 방안을 문의 드립니다.
-
해결됨[2025] SQLD 문제가 어려운 당신을 위한 노랭이 176 문제 풀이
DATA_FORMAT문제
DATE_FORMAT(날짜, 형식)문자열을 지정된 날짜 형식으로 포맷팅하는 함수입니다.이 문제의 경우 DATE_FORMAT 함수는 MySQL에서 지원되며, 반환 값은 문자열이므로 조건이 맞지 않습니다.예: DATE_FORMAT('2022-11-02', '%Y-%m-%d') → '2022-11-02' (문자열) 학습노트에 DATA_FOMAT함수 문자열 조건이 맞지않는다고 써져있는데 3번문항이 '2022-11-02' 이렇게 문자열로 나와야한다는건가요..?그럼3번문항도 ''로 감싸진 문자열이아니니틀렸다는건가요 ?
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-9. [자습] PIVOT 테이블 생성하기
WITH base as ( SELECT event_date, event_timestamp, event_name, user_id, user_pseudo_id, platform, MAX(IF(params.key='firebase_screen', params.value.string_value, NULL)) as firebase_screen, -- MAX(IF(params.key='food_id', params.value.int_value, NULL)) as food_id, MAX(IF(params.key='session_id', params.value.string_value, NULL)) as session_id, FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as params WHERE -- event_date = "2022-08-01" # 적은 데이터로 쿼리를 작성하기 위해 만든 조건 event_date BETWEEN "2022-08-01" AND "2022-08-18" GROUP BY ALL ), fileter_event_and_concat_event_and_screen AS( -- event_name + screen 하면서(필요한 이벤트만 WHERE 조건에 걸어서 사용) SELECT * EXCEPT(event_name, firebase_screen, event_timestamp), CONCAT(event_name, "-", firebase_screen) AS event_name_with_screen, DATETIME(TIMESTAMP_MICROS(event_timestamp), "Asia/Seoul") AS event_datetime FROM base WHERE event_name IN("screen_view", "click_payment") ) -- step_number + cnt 만들기 -- step_number : CASE WHEN을 사용해 숫자 지정 , pivot_base as ( SELECT event_date, # 일자별로 퍼널별 유저 수 쿼리, 일자별로 처리하기 위해 event_date 추가 event_name_with_screen, CASE WHEN event_name_with_screen = 'screen_view-welcome' THEN 1 WHEN event_name_with_screen = 'screen_view-home' THEN 2 WHEN event_name_with_screen = 'screen_view-food_category' THEN 3 WHEN event_name_with_screen = 'screen_view-restaurant' THEN 4 WHEN event_name_with_screen = 'screen_view-cart' THEN 5 WHEN event_name_with_screen = 'click_payment-cart' THEN 6 ELSE NULL END AS step_number, COUNT(DISTINCT user_pseudo_id) as cnt FROM fileter_event_and_concat_event_and_screen GROUP BY ALL HAVING step_number IS NOT NULL ORDER BY event_date -- WHERE -- user_pseudo_id = "2173465695.8694960923" -- user_pseudo_id = "2173465695.8694960923" :event_name_with_screen = screen_view-welcome의 user_id는 NULL -> home에서 로그인 -- food_detal, search 등 event_name_with_scree의 여러 요소들을 확인해보기 ) # [자습] 위 테이블을 screen_view 타입별로 피벗 테이블 만들기 쿼리 (위 테이블을 with 절로 만들고 아래 쿼리 실행) SELECT event_date, MAX(IF(event_name_with_screen="screen_view-welcome", cnt, NULL)) as `scren_view-welcome`, MAX(IF(event_name_with_screen="screen_view-home", cnt, NULL)) as `scren_view-home`, MAX(IF(event_name_with_screen="screen_view-food_category", cnt, NULL)) as `scren_view-category`, MAX(IF(event_name_with_screen="screen_view-restaurant", cnt, NULL)) as `scren_view-restaurant` FROM pivot_base GROUP BY event_date ORDER BY event_date과제 올립니다 감사합니다
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
DBeaver를 연결했는데 도커를 또 연결해야해요?
DBeaver를 연결했는데 도커를 또 연결해야해요?
-
해결됨[2025] SQLD 문제가 어려운 당신을 위한 노랭이 176 문제 풀이
노랑이 39P 15번문제
FROM (SELECT (LENGTH(C1) -LENGTH(REPLACE(C1,CAR(10))+1 CCFROM TAB1 이부분에서 LENGTH(REPLACE(C1,CAR(10))+1+1이라는게 C1의 ROWNUM1이 >ROWNUM2를 가르키나요? 저는 C1 ROW1을 공백제거해서 2C2ROW2를 공백제거해서 3 해서2+3=5 여기에 +1일해서 6이 정답인줄알았는데+1이 정확히 뭘의미하는지잘모르겠어요ㅜ
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
3-7. 리텐션 쿼리 작성 및 질문(Weekly, Montly)
안녕하세요,강의 수강하면서 Weekly, Monthly Retention 쿼리를 작성해보았습니다!그리고 질문이 하나 있는데, 첨부해드린 코드는 현재 첨부해드린 사진처럼 오류가 발생합니다. 그런데 Weekly Retention 쿼리를 전부 주석처리하면 Monthly Retention 쿼리는 정상 작동합니다. 반대로 Monthly Retention 쿼리를 주석처리하면 Weekly Retention 쿼리는 정상 작동합니다.이 현상의 원리에 대한 감이 잡히지 않아서 질문드립니다!그 외에 쿼리 관련해서 고칠 점이 있다면 편하게 말씀해주시면 감사하겠습니다!WITH base AS ( SELECT user_id, user_pseudo_id, event_name, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul')) AS event_date, DATETIME(TIMESTAMP_MICROS(event_timestamp), 'Asia/Seoul') AS event_datetime FROM advanced.app_logs WHERE event_date BETWEEN "2022-08-01" AND "2022-11-03" ), first_week_and_diff AS ( SELECT *, -- DATE_DIFF(event_date, first_date, DAY) diff_of_day DATE_DIFF(event_week, first_week, WEEK) diff_of_week FROM ( SELECT DISTINCT -- 일자별로 중복 제거 user_pseudo_id, -- DATE_TRUNC DATE_TRUNC(MIN(event_date) OVER (PARTITION BY user_pseudo_id), WEEK(MONDAY)) AS first_week, MIN(event_date) OVER (PARTITION BY user_pseudo_id) AS first_date, DATE_TRUNC(event_date, WEEK(MONDAY)) AS event_week, event_date FROM base ) ), first_month_and_diff AS ( SELECT *, -- DATE_DIFF(event_date, first_date, DAY) diff_of_day DATE_DIFF(event_month, first_month, MONTH) AS diff_of_month FROM ( SELECT DISTINCT user_pseudo_id, --DATE_TRUNC DATE_TRUNC(MIN(event_date) OVER (PARTITION BY user_pseudo_id), MONTH) AS first_month, DATE_TRUNC(event_date, MONTH) AS event_month, MIN(event_date) OVER (PARTITION BY user_pseudo_id) AS first_date, event_date FROM base ) ) -- Weekly Retention SELECT *, ROUND(SAFE_DIVIDE(user_cnt, first_cnt), 3) AS week_retention_rate FROM ( SELECT *, FIRST_VALUE(user_cnt) OVER (ORDER BY diff_of_week) AS first_cnt FROM ( SELECT diff_of_week, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_and_diff GROUP BY diff_of_week ) ) ORDER BY diff_of_week; -- 추가. Monthly Retention SELECT *, ROUND(SAFE_DIVIDE(user_cnt, first_cnt), 3) AS month_retention_rate FROM ( SELECT *, FIRST_VALUE(user_cnt) OVER (ORDER BY diff_of_month) AS first_cnt FROM ( SELECT diff_of_month, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_month_and_diff GROUP BY diff_of_month ) ) ORDER BY diff_of_month;
-
미해결오라클 SQL 데이터베이스
SQL Command Line 실행법
안녕하세요. 강의를 듣고 Docker로 오라클 DB를 실행하며 실습하고 있습니다. DELETE를 이용한 데이터 삭제 영상에서 RETURNING절 설명에 커맨드 라인으로 명령을 입력하라고 하셨는데, Docker로 실행한 경우 커맨드 라인을 여는 방법을 모르겠어서 질문드립니다.
-
미해결FastAPI 완벽 가이드
db connect
안녕하세요! 강사님!처음으로 fastAPI를 접하는데 강사님 수업을 통해 배움을 얻어 가게되어 우선 감사 말씀드립니다. DB Connect 세팅 시create_engine 함수를 이용하여 엔진 객체만 생성하여 DB에 연결을 하는데 다른 참고 자료들과 비교하면 모델 클래스 생성은 ORM을 사용하지 않으니 생성을 할필요가 없을테고, sessionmaker 함수를 통한 세션 클래스는 따로 생성하지 않더군요.혹시 sessionmake를 통해 생성된 세션 클래스의 역할과 지금 강의에서는 사용하지 않은 이유를 알 수 있을까요?
-
미해결중고급 SQL과 실전 데이터 분석 101 문제 풀이
28번 문제 답에대해서 질문드립니다.
강의를 보기전에 혼자 쿼리를 작성하고 강의를 보았는데 강사님의 쿼리와 다른 방식으로 작성을 하여서 질문 합니다!.WITH 절을 사용하여 다음과 같이 쿼리를 작성하였는데 이런방식으로도 현업?이나 주로 작성하는지 궁굼합니다. 제가 작성한 쿼리는 다음과 같습니다!WITH rented_films AS ( SELECT DISTINCT I.film_id FROM rental R JOIN inventory I ON I.inventory_id = R.inventory_id)SELECT F.titleFROM film FLEFT JOIN rented_films RF ON RF.film_id = F.film_idWHERE RF.film_id IS NULL;
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
섹션13-집계함수 SUM, AVG, MIN, AVG, COUNT 강의
해당 강의의 1:39 초에 ORDER BY sal ROWS UNBOUNDED PRECEDING을 추가적으로 넣어주셨는데 avg의 결과값이 이해가 안돼서 질문드리게 되었습니다. avg를 계산할 때도 rows unbounded preceding이 적용되었으니 [CLERK] 파티션에서는- SMITH : 800- ADAMS : (800+950) /2 = 875 이런식으로 계산이 되어야 하는건 아닌지 궁금합니다.하단 테이블에 실제 계산된 값을 보니, [CLERK] 파티션의 AVG 값은 (800 + 950 + 1100+ 1300) / 4 = 1,037.5 값을 출력한 것으로 보이는데 이유가 궁금합니다!
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
mac에서 ORA-12528
ORA-12528: TNS:리스너: 적절한 모든 인스턴스가 새 접속을 차단하고 있습니다. 현재 맥으로 수업중인데해당 오류가 발생하고 있습니다. ㅠㅠ 오라클 테스트 단계에서 못넘어가고 있어요
-
미해결실습으로 손에 잡히는 SQLD의 정석(2과목)
mac에서 ORA-12541 오류 발생
DBeaver에서 DBMS에 접속하고 테스트 쿼리해보기 항목에서 오라클에 연결중에 ORA-12541이라는 오류가 발생하면서 데이터베이스에 접속할 수 없습니다. %s에 리스너가 없습니다. 이러한 설명이 나와있습니다. 어떻게 해결하면 될까요?
-
해결됨FastAPI 완벽 가이드
pydantic
안녕하세요. 강의에서 사용한 pydantic은 V2인게 맞는 걸까요??