묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결처음 만난 리덕스(Redux)
counter 예제에서 script로 redux를 CDN으로 불러올 때
counter 예제에서 script로 redux를 CDN으로 불러올 때404가 나는 것 같습니다!<script src=">"https://unpkg.com/browse/redux@5.0.1/dist/redux.mjs"></script>위와 같이 수정했는데 Redux를 찾을 수 없다고 나오네요..!혹시 뭐가 문제일까요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
원탐과 원복
강의 듣고 DFS랑 무슨 차이인지 한번에 정리가 안되어 글 남겨봅니다..DFS는 경로에 대해 완전 탐색하는 것은 맞으나 그 경로의 모든 경우의 수를 탐색하는 것은 아니다.왜냐하면 앞서 지나간 자리에는 visited가 걸려있으므로 목적지를 찍은 후 재귀로 중간 부분으로 돌아온다면 다른 경로로 진입했을 시 visited가 걸려있을 수 있고 어쩌면 목적지에 도달할 수 없을 수도 있다.완탐과 원복에서는 목적지까지 도달한 후 왔던 경로에 대해 방문 처리를 원복하기 때문에 목적지로 도달하는 모든 경로의 경우의 수를 가져갈 수 있다.따라서 코스트가 더 많이 요구되는 것은 완탐과 원복하는 것이며,즉 단순히 원하는 목적지만을 탐색하는 것을 목표하고자 한다면 DFS. 모든 경우의 수를 확인하여 최소, 최대 값을 원한다면 완탐과 원복을 사용하자.라고 이해했는데 뭔가 잘못 이해한 것 같습니다.하지만 그걸 몰라서 질문을 잘 못하겠네요.. 답변 주신다면 감사하겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
resources 폴더의 static 폴더와 templates 폴더 차이
resources 폴더의 static 폴더와 templates 폴더 차이점이 무엇인가요?두 폴더에 html을 나눠서 생성하는 이유는 무엇인가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
consumes, produces 속성 질문
consumes 속성은 클라이언트가 요청한 헤더를 제한하는 거고, produces 속성은 클라이언트에게 응답할 만들어진 응답의 헤더를 제한하는 것인가요?
-
미해결
강의자료 p78쪽 copy에서 begin()생략?
copy(v, v + n, ret); p78쪽 코드에 저러한 코드가 나와있는데요 위에서 설명하실때는 begin이 포함이 되어있었던것 같은데 왜 없는건가요? 혹시 생략이 가능한건가요??
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller @RestController 차이
@Controller는 반환 값이 String이면 뷰 이름이 반환되는 것으로 인식하고 뷰를 찾고 랜더링되고, @RestController는 뷰를 찾아 렌더링하지 않고 메시지 바디에 바로 입력되서 클라이언트에게 보내진다라고 이해했습니다. 그렇다면 @RestController사용하게 되면, 주로 언급하신 Spring MVC 플로우(디스패처 서블릿을 중간에 놓고, 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버 등등)에서 뷰에 관련한 플로우가 생략되는 거라고 보면 될까요?
-
해결됨자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
[keepAliveTime - 스레드 유휴 시간 설정] - 설명에 대한 의문점
안녕하세요 선생님, 강의를 듣다가 의문점이 드는 설명이 있어서 질문 올립니다.[keepAliveTime - 스레드 유휴 시간 설정] 강의03:56 ~ 04:20 의 설명을 듣고 나서 처음에는 끄덕였는데,강의를 다 듣고 나니까 뭔가 의문점이 생겼습니다.해당 시간대에 설명에서는 Thread.sleep(3000) 메소드가 유휴상태를 일으키고, 이것 때문에 keepAliveTime 에 의해서 쓰레드가 제거된다고 설명해주십니다.이때 듣고 나서 아래와 같은 생각을 하게 되더라구요."그러면 Thread.sleep(3000) 을 하고, KeepAliveTime 을 2초를 줘서 정말 저 3초가 지나기 전에 쓰레드가 삭제되야 된다면 쓰레드가 제거되기 전에 InterruptedException 같은 걸 던지려나?" ... 라는 생각을 하게 되더라구요.그리고 제가 한 테스트 결과는 그렇지 않더군요...이상해서 이리저리 찾아보니 다음과 같은 설명을 jdk 소스 파일에서 발견했습니다. 여기서 제가 주목한 구절은 "Timeout in nanoseconds for idle threads waiting for work." 입니다.이 말은 Thread 가 sleep 같은 상태에서 멈추더라도,해당 Thread 는 "다음 일을 받기 위해서 대기하는 쓰레드" 가 아니기 때문에 keepAliveTime 에 의해서 제거되는 타겟이 아니지 않나요?더 정확히는...keepAliveTime 의 유휴시간은==> Thread.sleep(3000) 에서 유휴시간 Check X==> 쓰레드가 자기의 task 를 모두 끝난 직후부터 유휴시간 Check O... 인 게 맞지 않나요?
-
미해결
트랜잭션이 보장되고 처리되어야만 하는 N개의 작업이 있다면 별도의 서비스로 추출하라는 말이 헷갈립니다.
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++ 버전과 또 뭐가 안 맞다고 나오네요..개발툴 교육의 경우 필요한 여러 개발툴들이 각각 버전업이 되거나 하는 경우 강의를 따라가기 곤란한 경우가 심심찮게 발생하더라구요..어느 정도 수준이 되는 학습자의 경우 해당 문제들을 알아서 해결할 수 있겠지만, 프로그래밍 초보자이거나, 해당 기술 분야에 익숙하지 않은 사용자의 경우 몹시 곤란하고 짜증스러운 상황에 부딪히는 경우가 많습니다.하여 강의에 사용된 툴들의 버전을 공지 등에 미리 알려주신다면 쓸데없는 고생을 막을 수 있을 겁니다. 이런 문제로 제 생각에 이 강의는 초보자가 절대 따라할 수 없을 것 같습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문드립니다
(사진)
-
미해결Airflow 마스터 클래스
dags_external_task_sensor 오류 질문
선생님 안녕하세요좋은 강의 감사합니다. 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만 하고 있더라고요 혹시 무엇이 문제일까요..?ㅠ
-
해결됨스프링 핵심 원리 - 기본편
@Configuration과 바이트코드 조작의 마법에 대해서 궁금한점이 있습니다.
현재 스프링 심화편을 다듣고나서 기본편 재복습을 하고있는데 @Test void configurationDeep() { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); //AppConfig도 스프링 빈으로 등록된다. AppConfig bean = ac.getBean(AppConfig.class); System.out.println("bean = " + bean.getClass()); //출력: bean = class hello.core.AppConfig$$EnhancerBySpringCGLIB$$bd479d70 }CGLIB객체로 호출이 된다고하셨는데 그러면 스프링 빈으로 등록되는 객체들은 무조곤 프록시 객체로 생성된다는 말씀이실까요?
-
미해결스프링 핵심 원리 - 기본편
BeanDefinition에 대해서 궁금한점이 있습니다.
AnnotationConfigApplicationContext의 경우 생성자로 들어온 파라미터의 값을AnnotatedBeanDefinitionReader로 읽은뒤 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);AnnotationConfigApplicationContext은BeanDefinition에 대한 구현체를 주입받아서 사용한다라고 이해하면될까요?
-
해결됨CloudNet@와 함께하는 Amazon EKS 기본 강의
섹션 21 EKS cluster 설치시 오류
안녕하세요 강의 잘 수강하고 있습니다.클러스터 설치중 아래와 같은 오류 메세지가 나옵니다.Error: loading config file "-": error converting YAML to JSON: yaml: line 24: mapping values are not allowed in this context 몇 번을 지웠다가 설치해봐도 이런 메세지가 생기네요환경변수도 충분히 집어 넣어서 카펜더 설치 정상적으로 완료했어도요...어떻게하면 해결할 수 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
로드맵 선택에 있어서 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]김영한선생님 로드맵이 jpa로드맵이랑 스프링로드맵이 있는걸로 알고있는데 두개의 로드맵을 다 들으면 좋겠지만 빠르게 취준을 하고싶은 욕심 때문에 두개의 로드맵 중 하나만 듣고 취업준비를 하고싶습니다. 어떤 로드맵이 더 취준용으로 좋을지 추천 받고 싶습니다.
-
미해결[Rookiss 켠김에 출시까지] MMO Lab #1 (M1) <유니티 방치형 키우기 게임>
늦었지만 멘토링 한 자리 추가 가능한가요
라이브 토요일->일요일 변경사실을 모르고 오늘 업로드된 강의를 들으려고 왔더니 월요일 업로드로 바뀌었네요.평일에는 한번에 3시간 이상 내기가 어려워서, 멘토링 비용 지출하더라도 주말에 깔끔하게 강의를 다 듣고 싶은데 지금이라도 멘토링 한 자리 받아갈 수 있을까요..?
-
해결됨업무 자동화 첫걸음: Python으로 이메일 대량 전송하기와 크롤링 프로젝트 완성하기
샘플 코드가 다른거 같아요.
안녕하세요, 수강생 여러분학습 관련 내용을 질문해주세요! 영상에나온 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()) 개인적으로 스크래핑/크롤링하는 사이트에 대한 질문에 대해서는 답변을 드리지 않아요!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
리액트 404 에러가 떠요 ㅜㅜ
기존 노트북에서는 잘 되었다가 다른 노트북에서 깃허브에서 pull해서 설정잡고 실행시키니 404에러가 뜹니다.yarn dev시 http://localhost:3000로 접속하면 잘 접속이 되지만 http://localhost:3000/section0909-04-boards이렇게 접속하면 404에러가 뜹니다.실행은 cs class로 이동 후 했습니다~
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThat을 사용할때 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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를 넣어 사용하십니다.혹시 무슨 차이일까요?
-
미해결따라하며 배우는 HTML, CSS
가상 클래스(의사 클래스)의 정의가 이해가 되지 않습니다.
수업을 듣는 중에 가상 클래스의 정의가 이해가 가지 않아서 질문을 드려요수업에서는 가상 클래스의 정의를 '별도의 클래스를 정의하지 않아도 지정한 것처럼' 이라는 문구가 적혀있는데,가상 클래스의 사용할 때는 '클래스의 이름: 가상 클래스의 이름' 으로 작성을 하는 데,이러면 클래스를 정의한 상태인 것 같아서 이해가 되지 않습니다.혹시 좀 더 풀어서 설명해 주시면 안될까요?