kafka topic을 생성할 때 broker 서버를 지정하는 것으로 보이는데요, broker 여러대로 구성된 클러스터에서 한 브로커 서버를 지정해서 파티션 10개의 토픽을 생성하고 토픽 정보를 describe로 확인하면 어떻게 되나요? 10개의 파티션이 분산되어서 해당 브로커 서버의 파티션 개수는 일부만 찍히게 되는건가요?
안녕하세요. 재밌게 수강을 잘 하였습니다. 혹시 gui.py 에서 개별 이미지 마다 브라우저 url 연결하는 것을 좀 코드를 추가한 내용을 올려주실 수 없을까요? 그리고 끝 부분에 다음시간 강의 내용안내가 있었는데 그게냥 끝나버렸네요. 혹시 추가해주실 생각은 없으실까요? ? ㅡㅡ;
본강의영상에는 마지막에 df_map_join_vac라는 값이 console을 보면 깔끔하고 가독성좋게 데이터시각화되어 표기되는것을 확인할수있습니다. 이번에 새로 올려주신 scrips_v2 파일을 보면서 공부를 하고 있는데요. 세계지도 시각화를 만들기위해 모든과정을 거쳐 마지막에 넣는 값 df_map_join_vac가 무슨 값을 가지고있는지 알아보기가 매우 힘듭니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용]안녕하세요 다음과같이 함수 내부에서 입금,출금액을 입력받도록 설계하는것 보다 영한님처럼 외부에서 입력받고 인자로 넘기는 방식이 더 좋은 방식인가요?
새로 올려주신 파일로 백신데이터 공부중입니다. df_agg = aggregate(data = df[, -5], total ~ ., FUN = "sum") ## 이코드가 무슨 의미인가요? 제가 이해한 내용은 다음과같습니다 "df데이터 중 5번째 항목은 제외한 데이터를 가지고, ( . <-이 전체를 의미하는건가요?그렇다치면) 전체를 기준으로total 변수를 sum(합)합한다." '뭘 어떻게 합한거지(sum)?? 해당코드를 출력해보면 데이터출력에 차이가 생기기는 하는데, 이해하기 어렵습니다.
[질문 내용] HandlerExceptionResolver시작 17:23초 경 @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { try{ if(ex instanceof IllegalArgumentException){ log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST,ex.getMessage()); return new ModelAndView("test"); } }catch (IOException e){ log.error("reslover ex",e); } return null; 해당 부분에서 IllegalArgumentException발생되면 ModelAndView를 동작시킨다고 하셨는데 response.sendError인해서 400에러가 was까지 전달된후 다시 was는 해당 Error를 읽고 다시 BasicErrorController로 설정된 값이 return 되기때문에 우리가 ModelAndView부분은 sendError로 인해서 반환이 못되는 상태가 아닌가요?? 제가 잘못 이해했나해서 질문드립니다!
선생님 안녕하세요 좋은 강의 감사합니다. section 8, connection 과 hook 강의 9분 대에서 처음으로 postgres 서버와 연결하는 부분에서 연결이 안된다고 에러가 뜨는데요 에러내용은 아래와 같습니다. 참고로 저는 5432 포트 대신 5429 포트를 사용했고, dbeaver 상에 postgres도 제대로 연결이 되었고, py_opr_drct_insrt 테이블도 제대로 만들어졌습니다. 오류 내용 중에 이런 내용이 있던데 conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError: connection to server at "172.28.0.3", port 5429 failed: Connection refused Is the server running on that host and accepting TCP/IP connections? postgres 설정에 무슨 문제가 있는 것일까요? 891c9ef91a84 *** Found local files: *** * /opt/airflow/logs/dag_id=dags_python_with_postgres/run_id=manual__2024-01-01T05:58:04.315802+00:00/task_id=insrt_postgres/attempt=1.log [2024-01-01, 14:58:06 KST] { taskinstance.py:1103 } INFO - Dependencies all met for dep_context=non-requeueable deps ti=<TaskInstance: dags_python_with_postgres.insrt_postgres manual__2024-01-01T05:58:04.315802+00:00 [queued]> [2024-01-01, 14:58:06 KST] { taskinstance.py:1103 } INFO - Dependencies all met for dep_context=requeueable deps ti=<TaskInstance: dags_python_with_postgres.insrt_postgres manual__2024-01-01T05:58:04.315802+00:00 [queued]> [2024-01-01, 14:58:06 KST] { taskinstance.py:1308 } INFO - Starting attempt 1 of 1 [2024-01-01, 14:58:06 KST] { taskinstance.py:1327 } INFO - Executing <Task(PythonOperator): insrt_postgres> on 2024-01-01 05:58:04.315802+00:00 [2024-01-01, 14:58:07 KST] {standard_task_ runner.py:57 } INFO - Started process 80 to run task [2024-01-01, 14:58:07 KST] {standard_task_ runner.py:84 } INFO - Running: ['***', 'tasks', 'run', 'dags_python_with_postgres', 'insrt_postgres', 'manual__2024-01-01T05:58:04.315802+00:00', '--job-id', '447', '--raw', '--subdir', 'DAGS_FOLDER/9. dags_python_with_ postgres.py ', '--cfg-path', '/tmp/tmp7_5f243h'] [2024-01-01, 14:58:07 KST] {standard_task_ runner.py:85 } INFO - Job 447: Subtask insrt_postgres [2024-01-01, 14:58:07 KST] {task_ command.py:410 } INFO - Running <TaskInstance: dags_python_with_postgres.insrt_postgres manual__2024-01-01T05:58:04.315802+00:00 [running]> on host 891c9ef91a84 [2024-01-01, 14:58:07 KST] { taskinstance.py:1547 } INFO - Exporting env vars: AIRFLOW_CTX_DAG_OWNER='***' AIRFLOW_CTX_DAG_ID='dags_python_with_postgres' AIRFLOW_CTX_TASK_ID='insrt_postgres' AIRFLOW_CTX_EXECUTION_DATE='2024-01-01T05:58:04.315802+00:00' AIRFLOW_CTX_TRY_NUMBER='1' AIRFLOW_CTX_DAG_RUN_ID='manual__2024-01-01T05:58:04.315802+00:00' [2024-01-01, 14:58:07 KST] { taskinstance.py:1824 } ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.7/site-packages/airflow/operators/ python.py ", line 181, in execute return_value = self.execute_callable() File "/home/airflow/.local/lib/python3.7/site-packages/airflow/operators/ python.py ", line 198, in execute_callable return self.python_callable(*self.op_args, **self.op_kwargs) File "/opt/airflow/dags/9. dags_python_with_ postgres.py ", line 16, in insrt_postgres with closing(psycopg2.connect(host=ip, dbname=dbname, user=user, password=passwd, port=int(port))) as conn: File "/home/airflow/.local/lib/python3.7/site-packages/psycopg2/__init__.py", line 122, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError: connection to server at "172.28.0.3", port 5429 failed: Connection refused Is the server running on that host and accepting TCP/IP connections? [2024-01-01, 14:58:07 KST] { taskinstance.py:1350 } INFO - Marking task as FAILED. dag_id=dags_python_with_postgres, task_id=insrt_postgres, execution_date=20240101T055804, start_date=20240101T055806, end_date=20240101T055807 [2024-01-01, 14:58:07 KST] {standard_task_ runner.py:109 } ERROR - Failed to execute job 447 for task insrt_postgres (connection to server at "172.28.0.3", port 5429 failed: Connection refused Is the server running on that host and accepting TCP/IP connections? ; 80) [2024-01-01, 14:58:07 KST] {local_task_job_ runner.py:225 } INFO - Task exited with return code 1 [2024-01-01, 14:58:07 KST] { taskinstance.py:2653 } INFO - 0 downstream tasks scheduled from follow-on schedule check 같은 강의 15:00 부분 connection 부분 실습에서 test를 누르면 아래와 같은 에러가 뜹니다. 아마 같은게 아닐까 싶습니다 connection to server at "172.28.0.3", port 5429 failed: Connection refused Is the server running on that host and accepting TCP/IP connections? dags_python_with_postgres 파일에서 구간마다 print 를 해서 실행되는지 여부를 확인해본 결과 print('실행1') with closing(psycopg2.connect(host=ip, dbname=dbname, user=user, password=passwd, port=int(port))) as conn: print('conn', conn) '실행1' 은 프린트가 되는데 conn은 프린트가 안됩니다. 그런데 ip, port, dbname, user, passwd, **kwargs 모두 정확하게 들어갔거든요 ㅠ
해당 강의가 없어 직접 질문 하게 되었습니다. 2251번 책을 보면 이동 가능한 경로가 A -> B, A ->C, B -> A, B -> C, C -> A, C ->B 로 총 6개인것은 이해를 했습니다. 근데 최초의 물이 C에만 담겨있는데 왜 sender, receiver를 6크기의 배열로 선언해주고 아래처럼 for문을 돌리고 없는 물을 처음에 6개의 경로에 따라 퍼다 나르는지 이해가 잘 가지 않습니다. for (int k = 0; k < 6; ++k) { // next[0] = a, next[1] = b, next[2] = c int next[] = { a, b, c }; next[Receiver[k]] += next[Sender[k]]; next[Sender[k]] = 0; // 대상 물통의 용량보다 물이 많아 넘칠 때 if (next[Receiver[k]] > now[Receiver[k]]) { // 초과하는 만큼 다시 이전 물통에 넣음 next[Sender[k]] = next[Receiver[k]] - now[Receiver[k]]; // 대상 물통은 최대로 채움 next[Receiver[k]] = now[Receiver[k]]; } // A와 B의 물의 양을 통하여 방문 배열 체크 if (visit[next[0]][next[1]] == false) { visit[next[0]][next[1]] = true; q.push(make_pair(next[0], next[1])); // A의 물의 양이 0일 때 C의 물의 용량을 정답 변수에 저장 if (next[0] == 0) { ret[next[2]] = true; } } }
아래와 같은 양식으로 질문을 남겨주세요 🙂 수업을 들으시면 이해하기 어려운 부분이 있으면 상세히 질문을 남겨주세요. 서로 Tone and Manner 를 지키며, 즐거운 수업 시간을 만들어보아요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의를 통해 열심히 공부중인 학생 입니다. 혹시 슬라이드 자료를 따로 열람 가능한지 여쭙고 싶습니다. 좋은 강의 잘듣고 공부하고 있습니다. 감사합니다.
--onefile 과 -n new_file_name 까지는 잘 되는데, --noconsole 옵션을 추가하게 되면, "win32ctypes.pywin32.pywintypes.error: (225, '', '파일에 바이러스 또는 기타 사용자 동의 없이 설치된 소프트웨어가 있기 때문에 작업이 완료되지 않았습니다')" 라는 문구가 나오면서 exe 생성이 멈춰버립니다. 구굴링을 해보니, exe 파일 다운로드 관련하여 윈도우 보안>바이러스 및 위협방지 설정 쪽을 off 후 하라고 되어 있던데요. 회사 컴퓨터라서 수정을 할 수가 없는데요. 혹시 해당 부분을 수정해야 할까요??
안녕하세요, 선생님! 연습문제를 풀고 구글 스프레드 시트 와 블로그에 정리해두었어요. 검색 필터 기능 로그 지표 부분에서 질문이 있어 스프레드시트 event컬럼에 초록색으로 표기해두었는데요 1) 검색필터 기본, 주문 많은 순, 배달 빠른 순 등등 세분화된 필터를 파라미터에 명시해두는 것이 나을지 2) 파라미터단에는 filter_name, filter_id 정도로 명시해두고 value에서 설명을 달아두는 것이 나을지 헷갈리더라구요. 1안과 2안 중 어떤 것이 업무에서 효율적인지 그렇다면 이유가 무엇인지 궁금합니다! 감사합니다. 새해 복 많이 받으세요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. if-none-match는 etag값을 사용하여 원본 데이터가 바뀌었는지 확인하고 if-modfied-since는 last-modified 값을 사용하여 원본 데이터의 수정을 확인하는 것으로 배웠습니다. 여러 사이트를 확인해봤을 때 이 둘을 동시에 사용하는 경우가 있던데 그 이유를 정확히 모르겠습니다. 데이터가 바뀌더라고 etag를 의도적으로 같게 설정하는 경우(주석이 바뀐 상황 등)가 있는데 이 상황인 경우 etag는 의도적으로 같게 하더라도 수정 날짜는 바뀌어 결국 새로 보내게 되는데 둘이 함께 공존하는 이유를 정확히 모르겠습니다.
public class AllBeanTest { @Test void finaAllBean() { ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Member(1L, "userA", Grade.VIP); int discountPrice = discountService.discount(member, 1000, "fixDiscountPolicy"); assertThat(discountService).isInstanceOf(DiscountService.class); assertThat(discountPrice).isEqualTo(1000); int rateDiscountPrice = discountService.discount(member, 20000, "rateDiscountPolicy"); assertThat(rateDiscountPrice).isEqualTo(2000); } static class DiscountService { private final Map<String, DiscountPolicy> policyMap; private final List<DiscountPolicy> policies; @Autowired // 생략가능 생성자가 하나이기 때문에!!! public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) { this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies); } public int discount(Member member, int price, String discountCode) { DiscountPolicy discountPolicy = policyMap.get(discountCode); return discountPolicy.discount(member, price); } } } 첫번째 질문, AnnotationConfigApplicationContext을 해주게되면 스프링컨테이너로 등록을하고 ac를 통해 빈으로 등록된 AutoAppconfig.class와 DiscountService.class에 접근이 가능하다고 알고있습니다. 밑에보면 ac로 DiscountService.class에만 접근하고있어서 AutoAppconfig.class를 빼주었더니 밑에있는 discountprice에 discout에서 오류가 발생합니다. 이유가 무엇일까요? 두번째 질문, 밑에 DiscountService에 강의에서 생성자를 선언해주었습니다. 지금보면 어디에서 호출이되었는지와 어떻게 값을 넣어주었는지 궁금합니다. 제생각에는 AnntationConfigApplicationContext를 할때 API문서를 보니 refresh()의 finishBeanFactoryInitialization(beanFactory); 에서 AutoAppConfig.class, DiscountService.class 에 대한 값을 이미 생성되었다고 판단되었는데 이게맞을까요? 이게맞다면 1번질문이 결국 2번질문과 연관되어있을거같습니다 세번째 질문, map에 대해 공부를해봤는데 map<String, DiscountPolicy> 에서 만약 AutoAppconfig 가 들어가있다면 this.policyMap에는 AutoAppconfig가 들어가있는 상태이고 AutoAppconfig를 들여다보니 ComponentScan이 있어서 Component로 등록되어있는 RateDiscountPolicy, FixDiscountPolicy에 매개변수로 들어온 discountCode로 접근이 가능하다가 맞을꺼같은데 제가 이해한게맞을까요?