토스 개발자와 함께하는 Data Workflow Management 기반의 대용량 데이터 처리 설계 패턴
안녕하세요 섹션6의 강의를 듣다가 질문드릴게 있어 글을 작성하게되었습니다 우선 강의를 너무 잘 듣고 있음에 감사드립니다. 다만 질문이 하나있는데요 섹션 6강의의 실습환경에 기반이 되어지는 python과 airflow 그리고 DB는 버전에 맞게 미리 설치를 하고 강의를 들어야하는게 맞는거죠? 저는 강의에서 최초 환경부터 같이 설치하는 모습을 보여주시나 했는데 없어서 여쭈어봅니다.
위치: SingleTopic/Chart/ChartCanvas.jsx (39번 라인) 문제: stroke={colors[i].bg} // ❌ 현재 코드 원인: voteColors.js 의 실제 구조는 문자열 배열입니다 예: 2: ["#10B981", "#F43F5E"] .bg 프로퍼티가 존재하지 않아 undefined 반환 해결: stroke={colors[i]} // ✅ 수정 코드 결과: 수정 후 차트 선 색상이 정상적으로 표시됩니다. 제안: 후속 수강생들을 위해 강의 자료 업데이트 부탁드립니다. 강의 노션 코드에 오타가 너무 많아서 도움을 주는 자료인지 강의 진행을 방해하는 자료인지 모를 정도입니다. 솔직히 좀 심각합니다. 감사합니다.
코드 5줄의 마법, 5줄 머신러닝 PyCaret: 데이터 분석 프로젝트에 AutoML 날개 달기
ydata_profiling 버전 확인 시 'v4.17.0' 입니다. 이슈 해결을 위해 노력해보았으나 너무 어려워 확인 부탁드립니다. 버전 충돌 문제인 지 어렵네요.. 처음에 Overview 화면은 잘 나오나 뒤에 Correlations 등 클릭하면 다시 미니 주피터랩 화면으로 나타납니다. html로 저장하여 확인 시에는 전부 다 잘 확인되는데 notebook 화면에서 확인이 안됩니다. notebook화면에서 확인할 수 있는 방법 알려주시면 감사하겠습니다. conda 명령어로도 실행해보았으나 동일한 이슈가 발생합니다. conda install -c conda-forge ydata-profiling import numpy as np import pandas as pd from ydata_profiling import ProfileReport df = pd.DataFrame(np.random.rand(100, 5), columns=["a", "b", "c", "d", "e"]) profile = ProfileReport(df, title="YData Profiling Report") profile
안녕하세요 한기용 지식공유자님. 37. 앞서 Airflow 예제를 개선해보자 (v4) - 실습 강의에서 데이터의 벌크 업로드를 위해 dag의 insert into 코드를 copy into로 변경했습니다. 그러나 이 경우 기존에 한 줄씩 insert into 하던 방식보다 더 느린 결과가 나옵니다(insert into의 경우 2분, copy into의 경우 3분) 개인적으로는 제 컴퓨터의 IO 연산이 좋지 않고, 데이터의 양이 크지 않아서 오버헤드가 더 크기 때문인 것으로 예상하고 있는데, 지식공유자님의 의견도 알고 싶습니다 🙂
현재 CURSOR IDE로 개별 노드 다운후 수정한 후 다시 업로드 해보고 코파일럿에게 물어봐도 그대로 오류가 떠서요 근데 call blog image maker노드는 다운받아서 CURSOR IDE로 수정후 다시 업로드 했더니 완벽히 수정됬습니다.(강의를 보고 따라한 파일들인데 오류가 떠서 커서 IDE)에 물어보니 자기가 이렇게 수정했다고 하네요 (수정후 3번 그림처럼 executive workflow해보니 call blog image maker노드는 정상작동하는것도 확인되네요 그리고 그림 크기가 갑자기 정상으로 돌아왔습니다 2번째 사진 처럼요, 원래는 1번째 사진처럼 오류가 있었습니다. 그리고 워드프레스 글도 정상적으로 올라갔습니다. 이제 http request 노드 3개 오류(오류가 떴는데 워드프레스 글은 정상적으로 올라오는데 상관없을까요?)만 수정하면 됩니다.~~!! ) 1 2 바로 위가 3번 그림 아래는 제가 커서 IDE에 물어본 내용들입니다. 수정 완료 요약 a.json 파일의 오류를 성공적으로 수정했습니다! 🔧 수정된 문제들: JSON 구조 불완전 문제 : 마지막에 불필요한 쉼표와 닫는 중괄호 누락 해결 : 올바른 JSON 구조로 완성 n8n 워크플로우 구조 부족 문제 : 필수 워크플로우 속성들이 누락됨 해결 : 다음 속성들 추가: "name": "Search WEB Tool" "active": false "settings": { "executionOrder": "v1" } "id": "search-web-tool" "tags": [] ✅ 수정 결과: 이제 a.json 파일은 완전하고 유효한 n8n 워크플로우 파일입니다: JSON 구문 : 올바른 JSON 형식으로 수정됨 워크플로우 구조 : n8n에서 인식할 수 있는 완전한 구조 기능 : "Search WEB" HTTP Request Tool이 포함된 워크플로우 이 파일을 n8n에 import하면 정상적으로 작동할 것입니다. 이제 수정된 파일을 확인해보겠습니다: Read b.json 수정 완료 요약 b.json 파일의 오류를 성공적으로 수정했습니다! 🔧 수정된 문제들: JSON 구조 불완전 문제 : 마지막에 불필요한 쉼표와 닫는 중괄호 누락 해결 : 올바른 JSON 구조로 완성 n8n 워크플로우 구조 부족 문제 : 필수 워크플로우 속성들이 누락됨 해결 : 다음 속성들 추가: "name": "Search W Tool" "active": false "settings": { "executionOrder": "v1" } "id": "search-w-tool" "tags": [] ✅ 수정 결과: 이제 b.json 파일은 완전하고 유효한 n8n 워크플로우 파일입니다: JSON 구문 : 올바른 JSON 형식으로 수정됨 워크플로우 구조 : n8n에서 인식할 수 있는 완전한 구조 기능 : "Search W" HTTP Request Tool이 포함된 워크플로우 차이점 : a.json과는 다른 노드 ID ( f6fb76dc-1121-45de-af68-7f494d155945 )와 위치 ( [784, 576] )를 가짐 📝 a.json과 b.json의 차이점: 노드 이름 : a.json은 "Search WEB", b.json은 "Search W" 노드 ID : 서로 다른 고유 ID 위치 : 서로 다른 좌표 위치 워크플로우 ID : 각각 다른 워크플로우 식별자 이제 두 파일 모두 n8n에 정상적으로 import할 수 있습니다! 이제 수정된 파일을 확인해보겠습니다: Read c.json 수정 완료 요약 c.json 파일의 오류를 성공적으로 수정했습니다! 🔧 수정된 문제들: JSON 구조 불완전 문제 : 마지막에 불필요한 쉼표와 닫는 중괄호 누락 해결 : 올바른 JSON 구조로 완성 workflowInputs 비어있는 문제 문제 : workflowInputs.value 가 빈 객체 {} 로 되어있어서 이미지 생성에 필요한 데이터가 전달되지 않음 해결 : 이미지 프롬프트와 alt 텍스트를 전달하도록 수정 "workflowInputs" : { "mappingMode" : "defineBelow" , "value" : { "image_prompt" : "={{ $json.image_prompt }}" , "image_alt" : "={{ $json.image_alt }}" } } n8n 워크플로우 구조 부족 문제 : 필수 워크플로우 속성들이 누락됨 해결 : 다음 속성들 추가: "name": "Blog Image Maker Caller" "active": false "settings": { "executionOrder": "v1" } "id": "blog-image-maker-caller" "tags": [] ✅ 수정 결과: 이제 c.json 파일은 완전하고 유효한 n8n 워크플로우 파일입니다: JSON 구문 : 올바른 JSON 형식으로 수정됨 워크플로우 구조 : n8n에서 인식할 수 있는 완전한 구조 기능 : "Blog-Image-Maker" 워크플로우를 호출하는 executeWorkflow 노드 데이터 전달 : 이미지 프롬프트와 alt 텍스트가 올바르게 전달됨 📝 세 파일 비교: a.json : "Search WEB" HTTP Request Tool b.json : "Search W" HTTP Request Tool c.json : "Call 'Blog-Image-Maker'" Execute Workflow 노드 이제 세 파일 모두 n8n에 정상적으로 import하고 사용할 수 있습니다! 🎉
한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)
from firecrawl import Firecrawl firecrawl.search(query, limit=5, integration="crewai") ... TypeError: search() got an unexpected keyword argument 'integration' 환경 패키지: firecrawl-py 3.4.0 문서 관련 Firecrawl Python SDK 페이지에 search() 파라미터 목록이 나와 있으나 integration 항목은 보이지 않습니다. docs.firecrawl.dev Search API 레퍼런스/가이드에도 query , limit , sources , location , timeout 등은 보이나 integration 은 확인하지 못했습니다. 사실 어떻게 연동하는지에 대한 초점이 맞춰져 있어서 작성을 망설였는데, 학습하다 보니 궁금해서 작성하게 되었어요. integration 없이 호출해도 괜찮은지 확인 부탁드려요.
문제 발생 섹션: 4-1. Footer 제작 문제 내용: 강의 자료에서 제공된 App.jsx 코드에 구조적 오류가 있습니다. 문제점: 1. RootLayout 컴포넌트 내부에서 <Outlet /> 컴포넌트를 사용하고 있으나, 라우터 설정에 자식 라우트(children routes)가 정의되어 있지 않습니다. 2.현재 라우터 구조: ``` const router = createBrowserRouter([ { path: "/", element: <LootLayout />, // children이 없음 - Outlet이 렌더링할 내용이 없음 }, ]); ``` 발생한 에러: Outlet 컴포넌트 관련 에러 발생 해당 코드 제거 시 정상 동작 제안 사항: 아래 두 가지 중 하나로 수정이 필요합니다: 방법 1) 자식 라우트가 없다면 Outlet 제거 ``` <main className="flex-grow container mx-auto px-4 py-8"> {/* <Outlet /> 제거 */} </main> 추가 의견: 해당 강의를 수강하면서 이번 건 외에도 여러 오류를 발견했습니다. 학습에 상당한 지장이 있는 상황이므로, 강의 전체에 대한 코드 검수 및 업데이트를 요청드립니다. 특히 React Router v6의 최신 문법과 개념(Outlet, createBrowserRouter 등)이 정확히 반영되었는지 재확인이 필요해 보입니다. 수강생들이 불필요한 디버깅 시간을 소비하지 않도록 조속한 개선 부탁드립니다.
안녕하세요, '리액트 + FastAPI로 투표 커뮤니티 플랫폼' 강의를 수강 중인 학습자입니다. 강의 자료의 코드를 그대로 따라했을 때 에러가 발생하여 제보드립니다. --- 📍 발생 위치: - 강의 섹션: [섹션 3/ch2. 메뉴바 제작] - 파일: src/Components/Navbar/index.jsx ❌ 발생한 에러: ReferenceError: logout is not defined 🔍 문제 원인: 강의 자료 코드에서 함수는 onLogoutClick , onLoginClick , onSignupClick 으로 정의했으나, 자식 컴포넌트에 전달할 때는 정의되지 않은 logout 변수를 사용하고 있습니다. 현재 강의 자료 코드: ``` javascript const onLogoutClick = () => { ... }; <AuthButtons logout={logout} /> // ❌ logout 미정의 <MobileMenu logout={logout} /> // ❌ logout 미정의 ``` 수정방법: <AuthButtons isAuthenticated={isAuthenticated} isOpen={isOpen} setIsOpen={setIsOpen} onLogoutClick={onLogoutClick} // ✅ 수정 onLoginClick={onLoginClick} // ✅ 추가 onSignupClick={onSignupClick} // ✅ 추가 /> <MobileMenu isOpen={isOpen} setIsOpen={setIsOpen} isAuthenticated={isAuthenticated} onLogoutClick={onLogoutClick} // ✅ 수정 onLoginClick={onLoginClick} // ✅ 추가 onSignupClick={onSignupClick} // ✅ 추가 /> 💡 제안: 이전 강의 자료에서는 올바르게 onLogoutClick 등을 전달하고 있었는데, 특정 시점부터 logout 으로 변경되면서 함수명과 불일치가 발생한 것으로 보입니다. 강의 자료 업데이트 부탁드립니다. 감사합니다.