안녕하세요 강사님. 제목의 강의 중에서 depth_first 함수의 동작이 궁금하여 기본 코드에서 "2.코드 변경"과 같이 print 문을 추가 하여 분석 중 "3. 실행결과"와 같이 출력 되는 것을 확인 하였습니다. 질문 Node(3) 출력하기 전에 s-yield가 한번 출력 되어야 할 것 같은데 두 번 출력에 대한 해석이 안됩니다. f-yield Node(3) s-yield Node(1) Node(3) s-yield Node(0) Node(3) Node(3) @@추가 질문을 올려 놓고 고민 하다 보니 Node(1).depth_first() 함수가 한번만 호출 된다고 생각했는데. 프로그램이 종료 될 때 까지 총 4번이 호출 되면 말이 되는 듯 한데.. 추측한 시나리오가 맞는지요? Node(1).depth_first() : next(Node(1)) 4번 호출 Node(3).depth_first() : next(Node(3)) 2번 호출 Node(4).depth_first() : next(Node(4)) 2번 호출 Node(2).depth_first() : next(Node(2)) 3번 호출 Node(5).depth_first() : next(Node(5)) 2번 호출 코드 변경 def depth_first(self): print("f-yield",self) yield self print("f-next",self) for c in self: for x in c.depth_first(): print("s-yield",self,x) yield x print("s-next",self,x) 실행 결과 f-yield Node(0) Node(0) f-next Node(0) f-yield Node(1) s-yield Node(0) Node(1) Node(1) s-next Node(0) Node(1) f-next Node(1) f-yield Node(3) s-yield Node(1) Node(3) s-yield Node(0) Node(3) Node(3) s-next Node(0) Node(3) s-next Node(1) Node(3) f-next Node(3) f-yield Node(4) s-yield Node(1) Node(4) s-yield Node(0) Node(4) Node(4) s-next Node(0) Node(4) s-next Node(1) Node(4) f-next Node(4) f-yield Node(2) s-yield Node(0) Node(2) Node(2) s-next Node(0) Node(2) f-next Node(2) f-yield Node(5) s-yield Node(2) Node(5) s-yield Node(0) Node(5) Node(5) s-next Node(0) Node(5) s-next Node(2) Node(5) f-next Node(5)
안녕하세요, 데이터 엔지니어에 관심을 가지고 이제 막 공부를 시작한 학생입니다. 섹션 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() 요렇게 변경해주니까 데모 영상에 나온 것과 같이 똑같이 스노우플레이크에 잘 적재되었습니다.! 제가 제대로 해결한게 맞을까요??
7:36초 부분에 대해 문의드립니다. 자식 클래스를 생성하면 부모 클래스에 있는 기본 생성자인 Car()가 한번 호출된다고 말씀해주셨는데, 만약 자식 클래스의 생성자와 부모 클래스의 생성자에 동일한 파라미터로 구성된 경우에는 어떻게 동작하나요? 예를 들어, 부모 클래스에 Car(String name, Int price)라는 생성자가 있고, ElectricCar(String name, Int price)라는 생성자가 있을때, ElectricCar의 두 파라미터를 입력하여 객체를 생성하는 경우입니다. 이런 경우에도 부모 클래스에서는 파라미터가 들어간 생성자가 호출되는 것이 아니라, 기본 생성자가 호출되나요?
안녕하세요. redis를 공부하던 중 궁금한 점이 생겨서 질문드립니다. 개발상황 window10 springboot 3.4.3 티스토리 를 참고해서 redis 설치 window for docker 설치 문제상황 docker의 compose.yml을 생성해서 docker 이미지(springboot와 redis)를 생성해서 동작을 시켰습니다. 이때 window에서 동작 중인 redis를 중지시키지 않았지만 docker의 redis는 포트 충돌 없이 정상적으로 동작합니다. window와 docker에서 redis가 여전히 동작 중인 것은 확인했습니다. Dockerfile FROM openjdk:17-jdk COPY build/libs/*SNAPSHOT.jar app.jar ENTRYPOINT ["java", "-jar", "/app.jar"] compose.yml services: api-server: build: . ports: - 8080:8080 depends_on: cache-server: condition: service_healthy cache-server: image: redis ports: - 6379:6379 healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s retries: 10 docker와 window에서 redis 서버를 동작시키는 상황에서 Windows 명령 프롬프트에서 netstat 명령어를 통해서 포트번호와 IP를 확인했습니다. C:\Users>netstat -ano | findstr :6379 TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 15492 TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 19004 TCP [::]:6379 [::]:0 LISTENING 15492 TCP [::1]:6379 [::]:0 LISTENING 3800 아래는 docker redis만 동작시켰을 때 상황입니다. C:\Users>netstat -ano | findstr :6379 TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 15492 TCP [::]:6379 [::]:0 LISTENING 15492 TCP [::1]:6379 [::]:0 LISTENING 3800 아래는 window redis만 동작시켰을 때 상황입니다. C:\Users>netstat -ano | findstr :6379 TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 19004 질문 redis는 docker와 window가 다른 네트워크 인터페이스를 가지고 있어서 포트 번호가 같아도 충돌이 나지않는걸까요? 그렇다면 왜 springboot 어플리케이션은 같은 포트로 동작시켰을 때 포트 충돌이 발생하지 않아야하는거 아닐까요? springboot 어플리케이션은 포트 충돌로 인해 docker 또는 window 둘 중 하나에서만 실행시킬 수 있습니다. docker, redis에 깊은 이해를 하고 있지 않아서 많이 어려운 것 같습니다. 문제 접근 방식이 잘못된건지 저에게는 어렵네요
안녕하세요 더치 페이 함수 만들기에서 going_dutch 함수 리턴값 계산하실 때 return float(total) / num_of_ppl 로 int 값인 total을 float으로 바꾸셨는데 굳이 float으로 바꾸신 이유가 궁금합니다 어차피 int끼리 나눗셈(/)을 하면 결과가 무조건 float으로 나오는데, 굳이 total을 float으로 바꾸신 이유가 있을까요? 바꾸지 않아도 결괏값은 float으로 나오지 싶어서요. 답변 기다리겠습니다. 감사합니다
next는 자동적으로 캐시 저장기능이 있고 next에서도 DB 데이터가 필요한 페이지에서 직접 불러와서 사용하는 것을 권장한다 라고 말씀해주셨는데요 그러면 next는 보통 zustand, recoli, redux와 같은 상태관리 라이브러리를 사용하지 않는 것을 추천하시나요? 아니면 사용하는 것을 추천하시나요??