강의를 들으면서 내부 설계에 의존하는 테스트라는 것이 무엇인지 조금 헷갈려서 질문 드립니다. 강의 초반에는 테스트가 내부 설계에 의존해서는 안된다고 말씀 주셨습니다. 내부 설계에 의존하게 되면 테스트가 깨지는 등의 부작용이 발생할 수 있기 때문이라는 점도 함께 말씀 주셨는데, 이번 강의에서는 내부 설계에 의존해야 하는 케이스를 설명 해주셨습니다. 다만 왜 이런 케이스에는 내부 설계에 의존해야 하는지를 확실하게 이해를 하지 못했습니다. 조금 더 자세한 질문을 드리자면 내부 설계의 의미 내부 설계에 의존해야 하는 이유 이 두가지를 잘 이해하지 못한 것 같습니다. 내부 설계라는 것이 클라이언트가 실제로 사용하는, 외부로 공개된 인터페이스를 제외한 모든 부분을 말하는 것일까요? 이번 강의에서 내부 설계에 의존해야 하는 이유는 클라이언트는 어떤 방식으로 암호화를 하는지 알 필요가 없다. 하지만 현재 공개된 인터페이스로는 실제 비밀번호가 평문으로 저장이 되었는지, 아니면 정말 암호화가 이루어져 저징이 되었는지를 확인할 수 있는 방법이 없다. 그러므로 실제 암호화 로직을 테스트 해야한다 (내부 설계에 의존해야 한다) 정도로 이해했습니다만 제가 맞게 이해한 것인지 감이 오질 않습니다. 요약하자면 내부 설계란 외부로 드러난 인터페이스 외적인 것들을 말하는 것인지 왜 내부 설계를 의존해야만 하는 상황이 발생하는지 정도일 것 같습니다. 감사합니다.
위치: SingleTopic/Chart/ChartCanvas.jsx (39번 라인) 문제: stroke={colors[i].bg} // ❌ 현재 코드 원인: voteColors.js 의 실제 구조는 문자열 배열입니다 예: 2: ["#10B981", "#F43F5E"] .bg 프로퍼티가 존재하지 않아 undefined 반환 해결: stroke={colors[i]} // ✅ 수정 코드 결과: 수정 후 차트 선 색상이 정상적으로 표시됩니다. 제안: 후속 수강생들을 위해 강의 자료 업데이트 부탁드립니다. 강의 노션 코드에 오타가 너무 많아서 도움을 주는 자료인지 강의 진행을 방해하는 자료인지 모를 정도입니다. 솔직히 좀 심각합니다. 감사합니다.
안녕하세요, 강의 잘 듣고 있습니다. 23강에서 SearchFormView 클래스의 show 메서드 오버라이딩과 관련하여 궁금한 점이 생겨서 질문드립니다. // SearchFormView.js show(searchKeyword = "") { this.inputElement.value = searchKeyword; this.showResetButton(this.inputElement.value.length > 0); } super.show() 를 호출하지 않아도 화면이 의도대로 동작하는 것을 확인했는데요. super.show() 호출이 단순히 체이닝을 위한 호출인지 아니면 제가 놓친 다른 의도가 있는 것인지 궁금합니다.
코드 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 연산이 좋지 않고, 데이터의 양이 크지 않아서 오버헤드가 더 크기 때문인 것으로 예상하고 있는데, 지식공유자님의 의견도 알고 싶습니다 🙂
테스트와 코드간 성장 헙력 관계를 보면서 문득 궁금증이 들었습니다. 테스트 시나리오는 작성하면서 시나리오의 순서 역시도 중요하지 않을까? 하는 의문이 들었습니다. 단순한 기능들은 (예시로 들어주신 회원가입)은 테스트 시나리오의 순서에 큰 영향을 받지 않을 것 같으나 좀 더 복잡한 로직, 예를 들면 금액 계산과 같은 로직은 테스트 시나리오를 작성함에 있어서 순서를 신경 써야 할까요? 좋은 예시가 떠오르지는 않지만 예약 시스템을 만들면서 테스트 시나리오를 짠다고 했을 때 테스트 시나리오의 순서대로 코드가 성장이 된다고 가정하면 테스트 시나리오를 작성하는 순서 역시도 중요한 부분 중 하나일 수 있겠다는 생각이 들었습니다. 강사님은 테스트 시나리오를 작성 하실 때 순서를 크게 신경 쓰지 않으시나요? 아니면 로직의 흐름을 미리 어느정도 파악해 두시고 시나리오를 그 흐름에 맞춰 작성하시나요? 두서 없는 질문이라 정말 죄송합니다.
한 번에 끝내는 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 없이 호출해도 괜찮은지 확인 부탁드려요.
그 선생님은 지금 문제에서 상태 변경할떄 setCount((count) => count +1); 로 해주셨는데 지금 상황에서는 그냥 setCount((count+1)) 로 해도 문제 없지않나용? 버튼 한번 눌렀을때 count+1 되는건 한번이니깐..? 연속으로 +1 증가하는 로직이 아니라서 이렇게 생각되는데 혹시 제가 뭘 놓치고있는건가요?
문제 발생 섹션: 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 으로 변경되면서 함수명과 불일치가 발생한 것으로 보입니다. 강의 자료 업데이트 부탁드립니다. 감사합니다.