안녕하세요. 강의 잘 듣고 있습니다. 저는 Mac환경에서 수강중이고, airflow 2.7.1을 사용중입니다. 강의에서 dag을 pull하고 2~3분 정도 기다리면 auto-refresh되어 compose를 재실행하지 않아도 된다고 하셨는데, 제 경우엔 auto-refresh가 된 이후에도 새로 추가된 dag이 리스트에 나타나지 않더라구요. 그래서 매번 compose를 재실행하고 있는데, 혹시 의심가는 원인이 있다면 말씀해주실 수 있으실까요? 구글링을 해봐도 해결방법을 찾기 쉽지 않아서 질문 남깁니다ㅜㅜ
theme 적용시, 강사님께서 말씀해주신 것처럼 작업 폴더에 .streamlit 폴더를 만들고, 그 안에 config.toml 파일을 만들어 테마 적용을 했지만, 아래의 문구가 발생하며, 태마가 적용이 되지 않습니다. The page that you have requested does not seem to exist. Running the app's main page. 어떤 이유 인지 알려주세요.
안녕하세요 선생님! 동시성과 병렬성 관련해 기초가 약해 해당 강의를 들으면서 OS 부족한 부분을 많이 알게되어 도움이 많이되고 있습니다. 다름이 아니라 해당 강좌 범위는 벗어나지만.. 구글링해도 명확하게 해결되지 않아 질문 드립니다. 동시성을 구현하는 방법으로 멀티쓰레드 나 코루틴 방법으로 구현을 할 수있고 멀티쓰레드 방법에서 쓰레드 전환 간 context switch가 많기 때문에 오버헤드도 많아 Coroutine 방법을 많이 쓰고 또한 유저가 이벤트루프(스케쥴링)을 app에서 관리한다는 측면에서 디버그가 유용하다 정도로 이해하고 있습니다. 많은 블로그에서 멀티쓰레드보다 코루틴을 소개하면서 동시성 구현시 코루틴을 더 상위(혹은 좋은) 방법으로 서술이 많이 되어 있더라구요. I/O작업이 빈번할 경우 코루틴이 더 유리하다는 이해가 됩니다. 싱글스레드 + async 싱글스레드 멀티스레드 + async 멀티스레드 2개의 구현방법이 레이어가 다르다(thread와 task)보니 4가지 경우의 수를 적용할 수 있는데 실제 동시성을 적용해야되는 상황이면 어떻게 판단하고 최적의 구현방법(4가지 중 선택)을 적용할 수 있을까요? (파이썬 스택을 쓰고 있으며 GIL도 이해하고 있는 상태입니다.) 다시한번 해당 강의와 조금 벗어난 질문드려 죄송합니다. ( _ _ )
Standalone 환경을 처음 세팅하게 되면 dags 디렉토리가 별도로 없는데 사용자가 직접 만들어주면 되는지 질문드립니다. 그리고 standalone 으로 airflow 서버를 작동시킨 이후 다시 exit 할 경우 자꾸 localhost 에 서버가 남아있어 재 실행이 안되서 컴퓨터 리붓을 해야하는데 혹시 다른 방법이 있을까요? 아래와 같은 방식으로 PID 서버를 kill 하지만 그래도 안될 경우가 많은 것 같습니다. (수정) 아래 방법은 작동하는 것 같네요 ps -ef | grep airflow sudo kill -9 [PID port]
안녕하세요. 수업 잘 듣고 있습니다! 년 단위의 데이터를 가져오는 경우엔 1년에 딱 한 번만 코드를 작동하면 되는데, 이런 경우에도 에어플로우로 관리를 해주는 게 좋을까요? 태스크에 비해 너무 자원을 많이 쓰는 건지, 그래도 프로세스를 보기 편하게 관리할 수 있다는 점에도 활용하는 게 좋을지 고민이 많이 되네요. 강사님의 의견이 궁금합니다!
안녕하세요, 현재 M2 macbook을 사용하고 있습니다. 강의에서 윈도우 환경에 WSL을 설치한 후 그 위에 airflow를 설치하여 실습을 진행하는 것으로 이해했습니다. 구글링을 좀 해보니 맥북에서도 airflow 설치는 충분히 가능한 것으로 보이는데, 만약 맥북에서 설치했다고 하더라도 뒷부분 실습과정에서 많은 차이가 있는지 궁금합니다!
강의에서는 강사님께서 airflow standalone 을 사용하셨는데, docker image로 airflow 서버 생성한 다음 postgres 서버와 연결하려고 하니 테스트 fail이 나고 DAG도 돌아가지 않는 것 같습니다. 혹시 docker image 상에서 DB connect 하는 방법 가이드 부탁가능하실까요? Airflow - connection setting DB connection info
하고 싶은 것 일부 주문이 서비스 유형: 픽업임에도 배달메뉴코드로 생성되어 이를 찾고 싶습니다. (배달메뉴와 픽업메뉴 코드는 서로 다름) 엑셀 vookup을 사용해서 상품코드를 배달 메뉴 테이블에서 검색하고, 검색되지 않으면 오주문으로 판단하는 코드를 구현했습니다. 같은 프로그램을 파이썬을 통해 구현해보고 싶은데, 다른 dataframe에 없는 값을 찾아 행을 추가하는 과정이 어려워 조언을 구하고 싶습니다. 파이썬 코드 df_pickup = 픽업 주문내역 데이터 프레임 delivery_menu_code = df_delivery_menu["상품코드"] df_misorder = pd.DataFrame() # 픽업 주문내역에서 상품코드를 꺼내 해당 상품코드가 배달 메뉴 코드에 포함되어 있는지 확인 # 만약에 코드가 없으면 해당 row를 df_misorder에 추가 for idx, row in df_pickup.iterrows(): misorder = df_delivery_menu[delivery_menu_code.str.contains(row["상품코드"], na = False)] if len(misorder) != 0: df_misorder.concat(row) else: pass # 어떻게 추가해도 계속 0개로 나와서, 도와주시면 감사드리겠습니다! len(df_misorder)
중괄호 등을 통해서 코드를 작성할 때 중괄호가 [] 이렇게 두개 자동으로 생성되는데요. 이외에도 '' 등 두개씩 자동으로 만들어줘서 코드를 작성하는데는 편리한데 'LEE' 등 코드를 쓰고 EE에서 '를 넘어 가기 위해 방향키를 눌러줘야 하는 불편함이 있습니다. 혹시 빠르게 작성하기 위해 단투키 같은게 별도로 있을지 문의드립니다
python operator를 이용한 파일 unzip 시 permision denied 오류 발생했습니다. airflow 는 wsl을 이용하여 설치하였고, unzip을 이용하여 네트워크 드라이브에 압축을 풀어 저장하고자 합니다. 이때 [2023-09-01, 18:12:33 KST] { taskinstance.py:1824 } ERROR - Task failed with exception Traceback (most recent call last): File "/home/xxx/airflow_env/lib/python3.10/site-packages/airflow/operators/python.py", line 181, in execute return_value = self.execute_callable() File "/home/xxx/airflow_env/lib/python3.10/site-packages/airflow/operators/python.py", line 198, in execute_callable return self.python_callable(*self.op_args, **self.op_kwargs) File "/home/xxx/airflow/dags/Answersheet_dp_2.py", line 66, in unzip files zip_ref.extractall(extract_path) File "/usr/lib/python3.10/zipfile.py", line 1647, in extractall self._extract_member(zipinfo, path, pwd) File "/usr/lib/python3.10/zipfile.py", line 1701, in extract member open(targetpath, "wb") as target: PermissionError: [Errno 13] Permission denied: '/mnt/s/04.xxxxx/' 와 같은 오류가 발생하였습니다. 위 문제를 해결하려면 어떻게 해야하나요?
안녕하세요 저는 강사님 강의로 공부하고 파이썬으로 코테를 준비하고 있습니다. 저와 같은 상황에 계신분들과 공유하고 싶어 글을 올립니다. 파이썬 풀이에서 부족한 부분 알려주시면 수정하겠습니다.~ import sys sys.setrecursionlimit(10 ** 6) N, M = map(int, sys.stdin.readline().split()) MAX = 1000 + 10 graph = [[False for in range(MAX)] for in range(MAX)] visited = [False for in range(MAX)] for in range(M): x, y = map(int, sys.stdin.readline().split()) graph[x][y] = True graph[y][x] = True def dfs(idx): visited[idx] = True for j in range(1, N + 1): if not visited[j] and graph[idx][j]: dfs(j) cnt = 0 for i in range(1, N + 1): if not visited[i]: dfs(i) cnt += 1 print(cnt)
완전탐색 강의 마지막 문제 1090번 문제 풀이 방법에 의문이 생겨서 질문 올려봅니다. 강의에서는 우리의 집 중에서 한 곳에 모이면 된다고 풀이를 하셨는데, 예시에 나온 4 15 14 15 16 14 15 16 15 4명이 모이기 위한 최적의 장소는 (15,15)입니다. 백준에서도 이것이 정답 좌표이고. 그래서 혹시 제가 1번 2번 3번 아이디어를 이해하는데에서 잘못 이해한 부분이 있을까 싶어 질문을 올립니다. (15 14) (15 16) (14 15) (16 15) 중에 하나에 모인다는 말이 아닌것인가요?
숫자야구 문제 코드 부분에서 약간 오류가 있는 것 같아서 질문드립니다. number, strike, ball에 각각 힌트를 분배할 때 hint[0]~[2]가 아닌 arr[0]~[2]를 담으면서, arr[1]이 strike, arr[2]가 ball이 맞는 것 같은데 영상에 나오는 코드를 다음과 같이 고치면 될까요? for arr in hint: number = arr[0] strike = arr[1] ball = arr[2]