안녕하세요. 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
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 상황 1) 동적 페이지여서 셀레니움을 사용하려고 했음 2) 셀레니움으로 접근 시 '사람임을 확인하라'는 메시지만 뜨고 더 이상 작업을 할 수 없음 이런 경우에는 아래 방법으로 진행을 해야 할까요? 1) 크롤링 원하는 페이지에 접속 2) 개발자 도구에서 Copy > Copy Element 로 HTML 코드 복사 3) HTML 코드에서 원하는 부분을 추출하는 파이썬 코드를 사용 4) 1~3 과정을 반복해서 봐야 하는 페이지가 많다면 자동화할 수 있는 방법이 있을지?
김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 영한 강사님이 추천하시는 db설계책이 있을까요?
graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
지금 영화 추천하는 강의 보고 있습니다. 질문 있습니다. 일반적인 sql 쿼리를 써도 해당 내용으로 추천 내용 다 작성 할 수 있을 것 같은데 neo4j 랑 사이퍼 쿼리를 쓰는 이유는 해당 데이터를 노드화 해서 연결 함으로써 검색 속도가 빨라지는 장점이 있을까요? 감사합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 해당 웹페이지 변경으로 공지글과 하단 일반글이 둘다 <tbody>로만 되어있고, 확인되는 class태그인 article, board-list, inner-list 가 모두 동일한데 어떻게 구분해서 크롤링 할 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 해당 강의에서 아래 2가지 방법으로 '50개씩' 선택하는 법을 알려주셨는데, 드롭박스 선택 후 > 50개씩 선택 드롭박스 선택 없이 자바스크립트로 50개씩 선택 근데 2번의 경우, 자바스크립트 인자로 element를 보내야해서 먼저 element 선언을 해줘야하는데, 드롭박스 클릭을 하지 않으면 여전히 element 찾는 과정에서 NoSuchElementException 오류가 납니다. 드롭박스를 열어야 하는건가요 ..? 그렇다면 1번과 차이가 무엇인지 궁금합니다!
저는 postgres를 airflow 공식 compose에서 함께 띄었습니다. 그렇게 하니 connection에서 오류가 발생했었습니다. 이후 구글링을 통해 connection에서 host를 해당 컨테이너의 서비스 명으로 변경해주시면 된다는 점을 확인했습니다. 이유는 왜 그런지 모르겠습니다. 강의 들으시는 분들 참고하시면 좋을 것 같습니다.
안녕하십니까 강사님 마지막까지 좋은 강의로 마무리해주셔서 감사드립니다. 혹시 시간이 괜찮으시다면 지금까지 배운 내용들을 토대로 end-to-end mlops framework를 만들어서 실제로 사용하는 모습에 대한 강의도 추가적으로 제작해주실 수 있으신가요? mlops의 각 파트에 대한 내용은 너무 자세히 다뤄주셨지만 각 파트당 연결되는 부분이랑 결국 최종적으로 이 배운것들을 어떻게 융합하는지에 대한 내용도 있으면 너무 좋을 것 같습니다. 감사합니다.
안녕하세요. 강사님. 강의를 보고 개인 웹사이트를 만들었는데요. https://mirihomepage.com/ 로그인이 안됩니다;;; superuser도 있고, 카테고리/google 사이트 등록까지 분명 다 했는데, https인증 받고, 도메인 연결하고 그러는 사이에 뭔가 달라진건가싶습니다...
안녕하세요, 영한님. 강의록에 사소한 오타가 있어 제보합니다. [오타 정보] 위치: 12. 저장 프로시저, 함수, 트리거.pdf - p.5 맨 위의 '프로시저 호출( CALL )' 부분 내용: 변경 전: 이제 user_id가 2번인 '네이트' 고객의 주소를 '경기도 성남시' 로 변경하는 프로시저를 호출해 보자. 변경 후: 이제 user_id가 2번인 '네이트' 고객의 주소를 '경기도 성남시2' 로 변경하는 프로시저를 호출해 보자.
안녕하세요. 질문은 아니고 혹시나 저와 같은 에러가 발생하신 분들이 보다 빠르게 문제를 해결하고 강의를 들으실 수 있도록 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 버전으로 실습을 진행하시는 분들이 참고하실 수 있도록 내용 공유 드립니다~! 그럼 완강까지 다들 화이팅입니다!
settings.py를 똑같이 작성하고, hands_on 경로에 있는 것도 잘 확인했는데, PRINT_SQL=1 py manage.py shell을 작성하면, -------------------------------- PRINT_SQL=1 : 'PRINT_SQL=1' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + PRINT_SQL=1 + ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (PRINT_SQL=1:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException ----------------------------------- 이렇게 에러가 납니다.. 그래서 좀 찾아보니까 ------------------- $env:PRINT_SQL=1 py manage.py shell ------------------- 이렇게 작성하면 된다고 하는데 맞을까요?