https://www.inflearn.com/questions/1131692/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%EC%9D%B4-%EB%B3%B4%EC%9E%A5%EB%90%98%EA%B3%A0-%EC%B2%98%EB%A6%AC%EB%90%98%EC%96%B4%EC%95%BC%EB%A7%8C-%ED%95%98%EB%8A%94-n%EA%B0%9C%EC%9D%98-%EC%9E%91%EC%97%85%EC%9D%B4-%EC%9E%88%EB%8B%A4%EB%A9%B4-%EB%B3%84%EB%8F%84%EC%9D%98-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A1%9C-%EC%B6%94%EC%B6%9C%ED%95%98%EB%9D%BC%EB%8A%94-%EB%A7%90%EC%9D%B4-%ED%97%B7%EA%B0%88%EB%A6%BD%EB%8B%88%EB%8B%A4 게시물 위치 옮겼습니다.
openAI 패키지 버전이 최초 강의 녹화 후 업데이트가 되어 동영상과 최신 개발 환경이 맞지 않습니다. 동영상에 맞는 openAI 패키지를 설치하려고 해도 이번엔 VC++ 버전과 또 뭐가 안 맞다고 나오네요.. 개발툴 교육의 경우 필요한 여러 개발툴들이 각각 버전업이 되거나 하는 경우 강의를 따라가기 곤란한 경우가 심심찮게 발생하더라구요.. 어느 정도 수준이 되는 학습자의 경우 해당 문제들을 알아서 해결할 수 있겠지만, 프로그래밍 초보자이거나, 해당 기술 분야에 익숙하지 않은 사용자의 경우 몹시 곤란하고 짜증스러운 상황에 부딪히는 경우가 많습니다. 하여 강의에 사용된 툴들의 버전을 공지 등에 미리 알려주신다면 쓸데없는 고생을 막을 수 있을 겁니다. 이런 문제로 제 생각에 이 강의는 초보자가 절대 따라할 수 없을 것 같습니다.
선생님 안녕하세요 좋은 강의 감사합니다. section 9 dags_external_task_sensor 에서, task b 가 fail로 뜨지 않고 계속 running 인 오류가 나는 데 이유를 모르겠습니다. dags_branch_python_operator는 아래와 같습니다. from airflow import DAG import pendulum from airflow.operators.python import PythonOperator from airflow.operators.python import BranchPythonOperator with DAG( dag_id='dags_branch_python_operator', start_date=pendulum.datetime(2023,4,1, tz='Asia/Seoul'), schedule='0 1 * * *', catchup=False ) as dag: def select_random(): import random item_lst = ['A','B','C'] selected_item = random.choice(item_lst) # 만약 실행해야 하는 task가 하나라면 task_id를 str 으로 하나만 넣는다. # 만약 실행해야 하는 task가 두개 이상이라면 list of str을 넣는다. if selected_item == 'A': return 'task_a' elif selected_item in ['B','C']: return ['task_b','task_c'] python_branch_task = BranchPythonOperator( task_id='python_branch_task', python_callable=select_random ) def common_func(**kwargs): print(kwargs['selected']) task_a = PythonOperator( task_id='task_a', python_callable=common_func, op_kwargs={'selected':'A'} ) task_b = PythonOperator( task_id='task_b', python_callable=common_func, op_kwargs={'selected':'B'} ) task_c = PythonOperator( task_id='task_c', python_callable=common_func, op_kwargs={'selected':'C'} ) python_branch_task >> [task_a, task_b, task_c] 마지막으로 돌린 기록은 a를 선택하고, b,c 는 skipped 된 상태입니다. dags_external_task_sensor 는 아래와 같고요 from airflow import DAG from airflow.sensors.external_task import ExternalTaskSensor import pendulum from datetime import timedelta from airflow.utils.state import State with DAG( dag_id='dags_external_task_sensor', start_date=pendulum.datetime(2023,4,1, tz='Asia/Seoul'), schedule='0 7 * * *', catchup=False ) as dag: external_task_sensor_a = ExternalTaskSensor( task_id='external_task_sensor_a', external_dag_id = 'dags_branch_python_operator', external_task_id='task_a', allowed_states=[State.SKIPPED], # task_a 가 skipped로 되면 sensor_a task는 success로 표시된다는 뜻 # allowed states 조건을 만족하지 못하면 계속 실행된다. 10초마다 execution_delta=timedelta(hours=6), poke_interval=10 # 10초 ) external_task_sensor_b = ExternalTaskSensor( task_id='external_task_sensor_b', external_dag_id = 'dags_branch_python_operator', external_task_id='task_b', failed_states=[State.SKIPPED], # task_b 가 skipped로 되면 sensor_b task는 failed로 표시된다는 뜻 execution_delta=timedelta(hours=6), poke_interval=10 ) external_task_sensor_c = ExternalTaskSensor( task_id='external_task_sensor_c', external_dag_id = 'dags_branch_python_operator', external_task_id='task_c', allowed_states=[State.SUCCESS], # task_c 가 success로 되면 sensor_c task는 success로 표시된다는 뜻 # success가 뜰때까지 꼐속 시도를 한다. execution_delta=timedelta(hours=6), poke_interval=10 ) 이대로라면 강의에서 나온것 처럼 , b만 fail로 뜨고 a,c는 계속 running 이어야 하는데요, 셋다 running 이 나옵니다. log를 보면 계속 b를 poke만 하고 있더라고요 혹시 무엇이 문제일까요..?ㅠ
AnnotationConfigApplicationContext의 경우 생성자로 들어온 파라미터의 값을 AnnotatedBeanDefinitionReader로 읽은뒤 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); AnnotationConfigApplicationContext은 BeanDefinition에 대한 구현체를 주입받아서 사용한다라고 이해하면될까요?
안녕하세요 강의 잘 수강하고 있습니다. 클러스터 설치중 아래와 같은 오류 메세지가 나옵니다. Error: loading config file "-": error converting YAML to JSON: yaml: line 24: mapping values are not allowed in this context 몇 번을 지웠다가 설치해봐도 이런 메세지가 생기네요 환경변수도 충분히 집어 넣어서 카펜더 설치 정상적으로 완료했어도요... 어떻게하면 해결할 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 김영한선생님 로드맵이 jpa로드맵이랑 스프링로드맵이 있는걸로 알고있는데 두개의 로드맵을 다 들으면 좋겠지만 빠르게 취준을 하고싶은 욕심 때문에 두개의 로드맵 중 하나만 듣고 취업준비를 하고싶습니다. 어떤 로드맵이 더 취준용으로 좋을지 추천 받고 싶습니다.
안녕하세요, 수강생 여러분 학습 관련 내용을 질문해주세요! 영상에나온 Gmail Api python 샘플 코드와 현재 구글에서 제공하는 샘플 코드가 다른거같아요. 영상에서 나온 코드를 직접 타이핑 하면될까요? 참고로 구글에서 제공하는 샘플코드는 아래와 같아요. import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # If modifying these scopes, delete the file token.json. SCOPES = ["https://www.googleapis.com/auth/gmail.readonly"] def main(): """Shows basic usage of the Gmail API. Lists the user's Gmail labels. """ creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists("token.json"): creds = Credentials.from_authorized_user_file("token.json", SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( "credentials.json", SCOPES ) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open("token.json", "w") as token: token.write(creds.to_json()) 개인적으로 스크래핑/크롤링하는 사이트에 대한 질문에 대해서는 답변을 드리지 않아요!
기존 노트북에서는 잘 되었다가 다른 노트북에서 깃허브에서 pull해서 설정잡고 실행시키니 404에러가 뜹니다. yarn dev시 http://localhost:3000로 접속하면 잘 접속이 되지만 http://localhost:3000/section0909-04-boards 이렇게 접속하면 404에러가 뜹니다. 실행은 cs class로 이동 후 했습니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 처음 강사님께서 save 메서드에서는 @Test public void save(){ Member member = new Member(); member.setName("Spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertThat(member).isEqualTo(result); } 처럼 assertThat(member) 를 넣고 그 다음 isEqualTo(result)를 넣어 사용하셨는데, 이후에 findByName 에서는 @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring2").get(); Assertions.assertThat(result).isEqualTo(member1); } 이처럼 result가 먼저 나오고 그 다음 member를 넣어 사용하십니다. 혹시 무슨 차이일까요?
수업을 듣는 중에 가상 클래스의 정의가 이해가 가지 않아서 질문을 드려요수업에서는 가상 클래스의 정의를 ' 별도의 클래스를 정의하지 않아도 지정한 것처럼 ' 이라는 문구가 적혀있는데,가상 클래스의 사용할 때는 '클래스의 이름: 가상 클래스의 이름' 으로 작성을 하는 데, 이러면 클래스를 정의한 상태인 것 같아서 이해가 되지 않습니다. 혹시 좀 더 풀어서 설명해 주시면 안될까요?
안녕하세요, 아래에 다른분께서 질문하신 내용의 답변을 토대로 다시 궁금증이 생겨 여쭙니다. 타입에러가 아닌 상태에서 바인딩이 된 상태에서 필드오류가 발생한다면 bindingResult 의 fieldError에 오류내용이 담기는것은 이해했습니다. 만약 , 타입에러가 난다면 바인딩 이 안되는데, 이부분도 validation 과 마찬가지로 스프링이 필드오류보다 먼저 binding result 에 오류값이 담기나요?
실제 적용 방법 차시에서 질문드립니다. (1분 28초 부분) asset 폴더 main 안이 아닌 다른곳에 생성되어 있던데, 그걸 main 폴더로 옮기면 되나요? 안드로이드 스튜디오에 열어놓으신 페이지가 3개 있던데, 따로 설정해야 하는게 있는건지... 영상이 중간에 건너뛴 느낌이라... 이 부분 부터 못따라 가겠어요. ㅠ /Gradle Scripts/build.gradle(Module:app) 저는 이 폴더가 없어요. 뭘 잘못한걸까요?ㅠ 좀더 자세한 설명 부탁드립니다.