묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결카프카 완벽 가이드 - ksqlDB
복합키 디코딩 오류 질문드립니다.
안녕하세요 강사님. 좋은 강의 감사드립니다. 항상 강의 잘듣고 있습니다 😀다름이 아니라, 복합키 디코딩 관련 질문이 있습니다. 아래와 같이 Group By와 Window Session 함수를 결합한 CTAS절입니다.CREATE OR REPLACE TABLE MASTERWITH (KAFKA_TOPIC = 'master',KEY_FORMAT = 'JSON',VALUE_FORMAT = 'JSON' )AS SELECTTRID AS KEY,AS_VALUE(TRID) AS "trid",WINDOWSTART AS "min_time",WINDOWEND AS "max_time",(WINDOWEND - WINDOWSTART) AS "duration",MINtimestamp) AS "@timestamp",COLLECT_LIST(service) AS services,COLLECT_SET(system) AS systemsFROM ORIGINAL_STREAMWINDOW SESSION (5 SECONDS)GROUP BY TRID EMIT CHANGES; 제가 기대한 값으로는 master라는 토픽의 key에 trid와 windowstart 값으로 결합된 JSON 형식의 값이 저장되는 것이었습니다. ksqldb에서 print 문으로 topic을 조회하면 잘 읽히지만, kafka-consumer에서 topic을 조회하면, 디코딩 부분에서 깨져서 조회가 됩니다.명령어: ./kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic cpm_master --from-beginning --property print.key=true현재는 총 두 개의 쿼리를 추가적으로 사용하여 id 값을 컨슈머가 읽을 수 있도록 정제하고 있습니다. 혹시 이 문제에 대해서 아신다면 답변 주시면 감사하겠습니다!
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
zookeeper가 실행이 안되요
echo $CONFLUENT_HOME이 정확한 위치인것 확인했고, zookeeper.properties와 zookeeper-server-start가 정확한 위치인 것도 확인했습니다.그러나 zookeeper-server-start $CONFLUENT_HOME/etc/kafka/zookeeper.properties를 치면아무것도 나오지 않습니다.에러 문구조차도 없네요
-
해결됨카프카 완벽 가이드 - 코어편
Cooperative Sticky Rebalancing 질문
안녕하세요.Cooperative Sticky Rebalancing할 때컨슈머 3만 reassign rebalance된다고 하셨습니다.궁금한건 컨슈머 1 2에서 topic A, B / Partion 1 2 각각 총 4개는 유지된다고 하셨는데이떄 poll은 계속 동작하고 있는건지 궁금합니다.즉, 3이 죽고 이걸 새로 붙이는 컨슈머 1 2에 있는 모든 토픽과 모든 파티션에 poll이 정지되나요?아니면 같은 토픽 컨슈머만 정지되나요?(여기선 A P1이 있어고 A에 P3가 붙으므로 P1이 P3를 위한 assign rebalance 때문에 컨슈머 1 A 토픽 poll 전체 정지) reassign rebalance: 부분 할당rebalance: 전체 할당으로 이해하면 되는지도 궁금합니다. 감사합니다.
-
해결됨카프카 완벽 가이드 - 코어편
consumer 설정 질문
안녕하세요.Consumer Fetcher관련 주요 파라미터와 Fetcher 메커니즘의 이해 강의 5:03에서 망냑 파티셩니 10개 있으면 최대 10MB 가져올 수 있따이렇게 말씀하셨는데컨슈머를 띄울 때 파티션별로 각 서버마다 따로 뜨게 하시는지한 컨슈머 서버에 여러 파티션을 구독하게 띄우시는지 궁금합니다. 이를 설정하는 기준이 있으신지도 궁금합니다. 제가 카프카를 처음 공부하고 있어서 혹시 질문이 잘못되었다면 알려주시면 감사하겠습니다. 감사합니다.
-
해결됨카프카 완벽 가이드 - 코어편
consumer.poll 질문입니다.
안녕하세요.consumer.poll 관련해서 궁금한 점이 생겨 질문드립니다. 일단 가정으로데이터 있으면 기다리지 않고 값을 반환한다고 하셨는데, 이 부분이 이해가 가지 않습니다. 처음에 직관적으로 poll이 데이터를 가져오는 주기라고 생각했습니다.하지만 설명을 듣고 시간을 지정하는게 의미가 있나? 하는 생각이 들었습니다. 그 후 존재 이유를 poll 시간 이유 -> heart beat를 위한 것인가?로 생각했지만heart beat 는 다른 스레드에서 동작하기 때문에 이도 아니라고 생각했습니다. 제 생각으로는 추론할 수 없어서 poll에 시간을 지정하는 이유가 무엇인지 설명해주시면 감사하겠습니다. 그리고, 추가 질문 2개가 더 있습니다.추가 질문 1.카프카는 왜 지연해서 poll하는 기능을 지원하지 않는지 궁금합니다.카프카 철학 때문인건지 아니면 기술적 제한떄문인건지 궁금합니다. 추가 질문 2.heart beat thread는 만약 여러 토픽과 토픽 내에서도 여러 그룹 아이디로 구독하고 있다 했을 때 어떻게 동작을 하는지 궁금합니다. A, B 토픽 존재하고A 토픽에 1 2 3 그룹 아이디 / B 토픽 ㄱ 그룹 아이디 존재한다 했을 때heart beat thread가 3 + 1인 4개 생성되는게 맞는지 궁금합니다. 항상 좋은 강의 감사합니다.
-
미해결카프카 완벽 가이드 - 코어편
mainThread.join() 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의 영상 잘 보고 있습니다! 영상 보다가 궁금한 점이 있어서 질문을 남기게 됐습니다.JVM에서 정상 종료의 경우는 항상 모든 Shutdown Hook의 실행이 보장되지 않나요? 메인 쓰레드에 대한 join() 호출 없어도 정상 종료의 흐름에서는 wakeup과 JVM 내부에서는 finally 블럭의 consumer.close()의 호출이 보장되지 않나요? 명시적으로 join()을 호출하지 않았을 때 발생할 수 있는 문제 상황이 궁금합니다!
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
Debezium CDC Source Connector 이벤트 메시지
안녕하세요, Debezium CDC Source Connector가 이벤트를 만들때 before, after 값 설명하시는 부분에서 이해가 안가는 부분이 있어서 질문드립니다.before값이 필요한 이유가 나중에 rollback할때 다시 after를 before로 가지고 갈 수 있어서라고 설명을 주셨는데, 이것은 RedoLog에 한정된 얘기인가요 아니면 CDC Source Connector에서도 실제로 이 값을 이벤트로 들어온다는 뜻인가요?커밋이 확정된 변경 내용만 CDC 캡쳐를 하는 것으로 알고있어서 Redolog에 한정된 설명이라고 이해했는데 그렇다면 before값이 필요하다고 설명주신 이유가 정확히 어떤 뜻인지 궁금합니다.혹시 아니면 CDC Event Source Connector에도 롤백처리된 트랜잭션의 변경이전데이터가 after값에 저장되어 온다는 의미인가요?
-
미해결베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
종합 점수 계산시에 가중치 관련 질문
안녕하세요. 강의 잘 따라 하고 있습니다. ^^섹션5 > 20. 매수 추천 종목 조회 API 코드 설명 강의 보다가, 몇가지 질문이 있어서 글을 남깁니다.get_combined_recommendations_with_technical_and_sentiment 함수에서# 7. 종합 점수 계산 및 정렬에 보면tech_conditions_count = ( 1.5 * item["golden_cross"] + 1.0 * (item["rsi"] < 50) + 1.0 * item["macd_buy_signal"] ) item["composite_score"] = ( 0.3 * item["rise_probability"] + 0.4 * tech_conditions_count + 0.3 * sentiment_score )이런식으로 가중치를 주고 있는데, 이 가중치의 기준은 어떻게 정하셨나요? (제가 주식은 엄청 초보라서, 이 강의 보면서 학습하고있습니다) 그리고 강의 맨 처음에 얘기하셨지만, 국내 주식은 여러 이슈 때문에 분석이 쉽지 않다고 하셨는데 설명해주시는 코드의 로직으로는 전혀 분석이 안되는지도 궁금합니다.
-
미해결베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
cursor 관련 질문
cursor pro버전을 꼭 사용애햐 하나요? free버전으론 수업이 불가할까요?
-
미해결베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
pip 설치 오류 문의
pip를 공식사이트에서 받아서 직접 설치후 명령창에 "pip install fastapi uvicorn"을 입력하면 "warning : There was an error checking the latest version of pip"라는 문구가 뜹니다. 그런데 또 막상 Scripts폴더나 명령창에 pip list 확인시 설치가 되어있는걸 확인할수 있습니다. 이 메시지를 무시하고 진행해도 문제가 없을까요?
-
미해결베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
문의 드릴 메일 주소좀 알려주시면 감사하겠습니다.
수고 많은십니다. 치트키 알려주는 남자님^^문의드릴 메일 주소를 못찾아서요 ㅠㅠ주소알려주시면 감사하겠습니다.
-
미해결Airflow 마스터 클래스
섹션 9. Connection & Hook - 50강 관련 질문
안녕하세요. 오늘도 Airflow 강의를 듣던 중 에러가 나는 부분이 있어 질문드리고자 합니다 ㅠ 우선 customized 된 Hook의 bulk_load 기능을 사용하는 과정에서 에러가 발생하는데요..강의에서 알려주신대로 아래와 같이 두 개의 파이썬 파일을 작성해서 DAG을 실행했습니다.(코드도 GitHub에 올려주신 것과 동일합니다)plugins/hooks/custom_postgres_hook.pydags/dags_python_with_custom_hook_bulk_load.py 그런데 DAG 실행 과정에서 아래와 같은 에러가 발생합니다.(Failure caused by 'Engine' object has no attribute 'cursor') 제가 docker-compose.yaml 파일 내 postgres_custom 서비스를 정의할 때, 5433:5432로 포트 포워딩 해줘서 그런가 싶어서, custom_postgres_hook.py 코드에서 uri 변수에 포트번호를 5432로 같이 부여해줬음에도 동일한 에러가 발생합니다. 무엇이 문제일까요..?
-
미해결베개 투자법: 자면서 돈 버는 AI 주식 자동 매매 머신
파이선 설치 문제
현재(9월5일 기준) 파이선 3.13.7을 다운받고 보면 scripts폴더가 없거나 있어도 아무것도 없이 텅 비어있습니다. 당연히 fastapi와 uvicorn 설치도 안되구요 ㅠㅠ 더이상 진행을 못하고 있습니다 ㅠㅠ어떻게 해야할까요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
없는강의요청해도됩니까,,
데이터모델링,,쿼리튜닝,,따로따로 심도있게 추후계획있는지 궁금합니다,,인프런에선 몇년전부터 게속 기대하고 찾아보는데 하나도 없네요,,심도있는강의가없어요,,철민님이 유일하게 하실수 있을것같아 조심스레 한번물어봅니다(다른사람 대체불가)
-
미해결Airflow 마스터 클래스
docker 설치 관련 질문
영상에서 도커 설치하는 부분을 듣고 있는데 예전 강의다보니까공식 홈페이지에서 도커 설치하는 커맨드가 많이 바뀐 거 같습니다.어떻게 따라가면 좋을까요?
-
미해결Airflow 마스터 클래스
38강. Task groups 관련 질문
안녕하세요. Task group 생성 시, task decorator를 활용한 방법과 그렇지 않은 방법 이렇게 두 가지가 있다고 하셨는데, task decorator를 활용한 방법의 경우, docstring에 작성한 내용이 UI에서 보여지고,task decorator를 활용하지 않은 방법의 경우, tooltip 인자에 입력된 내용이 UI에서 보여지는 것으로 알고 있습니다. 그런데 Airflow 3.0.x 버전에서 실제로 실습을 진행해보니 docstring 및 tooltip 인자에 작성한 내용이 아래와 같이 UI 화면에서 보이지 않는 것으로 확인됩니다 ㅠ Airflow 3.0.x 버전 공식 문서를 읽어봐도 강사님 말씀과 동일하게 docstring 및 tooltip을 사용하면 UI 화면에서 보여질 거라고 적혀있는데... 뭐가 문제일까요..? 코드는 강사님이 작성하신 것과 동일한데, 혹시 몰라 제가 작성한 코드도 같이 첨부 드립니다.import pendulum # Airflow 3.0 버전부터 아래 경로에서 import from airflow.sdk import DAG, task, task_group, TaskGroup from airflow.providers.standard.operators.python import PythonOperator # Airflow 2.10.5 이하 버전에서 실습 시, 아래 경로에서 import # from airflow.operators.python import PythonOperator # from airflow import DAG # from airflow.decorators import task # from airflow.decorators import task_group # from airflow.utils.task_group import TaskGroup with DAG( dag_id = 'dags_python_with_task_group', schedule = None, start_date = pendulum.datetime(2023, 4, 1, tz = 'Asia/Seoul'), catchup = False ) as dag: def inner_func(**kwargs): msg = kwargs.get('msg') or '' print(msg) @task_group(group_id = 'first_group') def group_1(): ''' task_group decorator를 이용한 첫 번째 그룹입니다. ''' @task(task_id = 'inner_function1') def inner_func1(**kwargs): print('첫 번째 TaskGroup 내 첫 번째 task 입니다.') inner_function2 = PythonOperator( task_id = 'inner_function2', python_callable = inner_func, op_kwargs = {'msg': '첫 번째 TaskGroup 내 두 번째 task 입니다.'} ) inner_func1() >> inner_function2 with TaskGroup(group_id = 'second_group', tooltip = '두 번째 그룹입니다') as group_2: ''' 여기에 적은 docstring은 표시되지 않습니다. ''' @task(task_id = 'inner_function1') def inner_func1(**kwargs): print('두 번째 TaskGroup 내 첫 번째 task 입니다.') inner_function2 = PythonOperator( task_id = 'inner_function2', python_callable = inner_func, op_kwargs = {'msg': '두 번째 TaskGroup 내 두 번쨰 task 입니다.'} ) inner_func1() >> inner_function2 # Task Group도 flow 설정 가능 group_1() >> group_2
-
해결됨실리콘밸리 엔지니어와 함께하는 Apache Airflow
공식 compose 내 postgres db 설치시
저는 postgres를 airflow 공식 compose에서 함께 띄었습니다. 그렇게 하니 connection에서 오류가 발생했었습니다. 이후 구글링을 통해 connection에서 host를 해당 컨테이너의 서비스 명으로 변경해주시면 된다는 점을 확인했습니다. 이유는 왜 그런지 모르겠습니다. 강의 들으시는 분들 참고하시면 좋을 것 같습니다.
-
미해결Airflow 마스터 클래스
Python & Email Operator 기반 Xcom 강의(32강) 관련 참고사항
안녕하세요.질문은 아니고 혹시나 저와 같은 에러가 발생하신 분들이 보다 빠르게 문제를 해결하고 강의를 들으실 수 있도록 comment 하나 남깁니다! 현재 저는 Airflow 3.0.x 버전으로 수강 중인데, Python & Email Operator 기반 Xcom 강의(32강)를 듣던 중, 아래와 같이 AirflowException: SMTP connection is not found 에러가 발생했습니다. 원인 파악을 위해 코드를 다시 보던 중, 강사님 GitHub에 있는 코드(dags_python_email_xcom.py)에서 EmailOperator에 conn_id 부분이 없는 것을 확인했습니다.혹시나 저처럼 Airflow 3.0.x 버전으로 실습을 진행하시는 분들이 참고하실 수 있도록 내용 공유 드립니다~! 그럼 완강까지 다들 화이팅입니다!
-
미해결데이터 분석 SQL Fundamentals
10. 조인 실습 - 02 관련 질문
안녕하세요.강의를 들으면서 잘 이해가 되지 않는 부분이 있어 질문 드립니다.질문 드리고자 하는 부분은 "직원명 SMITH의 과거 소속 부서 정보를 구할 것"이라는 문제의 쿼리문인데요. 우선 제가 작성한 쿼리문은 아래와 같습니다.selecta.ename, a.empno, b.deptno, c.dname, b.fromdate, b.todatefromhr.empajoinhr.emp_dept_histbona.empno = b.empnojoinhr.deptcona.deptno = c.deptnowherea.ename = 'SMITH'; 그리고 강사님께서 작성하신 쿼리문은 아래와 같구요.selecta.ename, a.empno, b.deptno, c.dname, b.fromdate, b.todatefromhr.empajoinhr.emp_dept_histbona.empno = b.empnojoinhr.deptconb.deptno = c.deptnowherea.ename = 'SMITH'; 두 쿼리문의 차이는 join hr.dept c on 부분에서 "a.deptno = c.deptno"과 "b.deptno = c.deptno"입니다. 제 생각에는 위 두 쿼리문이 같은 결과를 뱉어야 할 것 같은데.. 아래 쿼리문 결과를 보면 dname 부분이 다르게 출력됩니다. 1) 제가 작성한 쿼리문 결과 2) 강사님이 작성하신 쿼리문 결과 제 짧은 지식으로는 두 결과가 동일해야 할 것 같은데, 제가 잘못 생각한 부분이 있다면 말씀 부탁드립니다 ㅠ
-
미해결[2025] 비전공자도 한 번에 합격하는 SQLD 올인원
Part 2 > Chapter 3 단원 정리 문제
문제 2번입니다.답지에는 3번으로 나와있는데 1번도 정답아닌가요?문제 4번입니다.답이 1번 같은데 답지에는 2번이라고 나와있습니다.조건이 CATEGORY = 'Electronics' 인데 모든 PRICE에 1.1이 곱해진거 같습니다. 문제 5번입니다.답이 1번 같은데 답지에는 1, 2번이라고 나와있습니다.