묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
상속과 접근제어지 질문
첫번쨰 질문child 클래스, parent 클래스,메인메소드 있는 클래스 가 있을떄 서로 각각 다른 패키지라고 할떄Child c = new Child(); 일떄 c.protectedmethod(); 왜 이 코드는 실행이안되나요 상속받았으니 부를수있는거아닌가요 ?두번쨰 질문 parent 클래스,메인메소드 있는 클래스는 같은 패키지이지만 child 클래스혼자만 다른 패키지소속 일경우메인메소드에서 c.protectedmethod(); 작동 , c.publicmethod(); 도 당연히 작동 근데 여기서 c.protectedmethod() ; c 가 상속받은 클래스 의 객체여서 되는건지( 그리고 왜 첫번쨰와 세번쨰의 경우는 c.protectedmethod();가 실행이안되는지도 궁금합니다)같은 패키지여서 되는것인지는 알지못함 그리고 Parent p = new Parent(); 일떄 p.defaultmethod();는 불러져도 c.defaultmethod();는 안됨 - 메인메소드와 부모 클래스가 같은 패키지여도 자식 클래스는 다른 클래스여서 디폴트는 안되는게 맞다고 생각하면되나여 ?세번쨰 질문이번엔 child 와 메인메소드가 같은 패키지일떄 parent 혼자 다른 패키지 이떄는 메인 메소드에서c.protectedmethod(); 는 왜 안돨까요? 상속 받으면 되는 걸로 알고있는데 publicmethod 는 불러지고 default 는 같은 패키지가 아니니까 못부른다 쳐도 c.protectedmethod(); 는 작동해야하는거아닌가요 헷갈립니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
정적인 화면과 정적 리소스
6:57에 나오는 서버사이드 렌더링에 대해서 질문드립니다HTML 최종 결과를 서버에서 만들어서 웹 브라우저에 전달주로 정적인 화면에 사용이렇게 나와있는데요서버에서 만들어서 제공하는거면 동적 리소스인데 왜 정적인 화면에 사용한다는 건가요?동적 리소스 == 동적 화면정적 리소스 == 정적 화면아닌가요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다.
반디집으로 해제해도 nul로 다 깨져서 나오네요. 강의 자료 부탁드릴게요.laurasoyoupark@gmail.com
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문드립니다!
http://boj.kr/9c2c43aa11a1499e9dca2322e2ed5c55큰돌님 풀이를 보지 않고 이런식으로 구현을 해보았는데, public TC는 다 맞는데 어느 부분에서 틀린지 잘 모르겠습니다! 제가 미처 구현하지 못한 부분이 있을까요?
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
SecureCRT 접속 오류
안녕하세요 민구님!이틀전쯤 vms.tmpcompany.com 접속 여부 여쭤봤던 수강생입니다.해당 건은 host 파일에 제 로컬 ip와 도메인 입력 후 주석 삭제 저장하였더니 페이지에 정상 접속 확인이 되었습니다.사이트에 새로고침 할때마다 로그 쌓이는것도 확인되었구요.진심으로 감사드립니다! 그때 위 건과 추가하여 강의 외적으로 vmware 스크롤백 사이즈 관련 질문하나 드렸었는데요..음 SecureCRT 에서 cent1 ip 입력 후 접속하려 하면 위 처럼 나오는데, 왜 그런지 이유를 모르겠습니다.구글 검색을 해봤는데도 명확하 이유를 못찻겠네요...(제가 부족한 탓이겠지요..)아래 열린 터미널은 민구님에게 받은 cent1~3 받기전에 기존에 설치해서 공부했던 centos인데 SecureCRT에 아주 접속이 잘됩니다.위는 cen1(웹서버)인데 ip 입력하고 접속 누르면 저렇게 나오는데...이류를 알수 있을런지요... 강의 외적으로 쓸데없는 질문드려서 죄송합니다.
-
미해결홍정모의 따라하며 배우는 C++
익명객체 생성자호출
안녕하세요! 15:40경입니다. 간단한 궁금증이 있는데Monster mon1("Sanson", Position2D(0,1));교수님께서 위와같이 main함수 내에, 매개변수에 있는 것들로 Monster 클래스의 mon1의생성자를 호출하셨습니다.Monster클래스의 생성자는 아래와 같고,Monster(const std::string name_in, const Position2D & pos_in) : m_name(name_in), m_location(pos_in) {}스트링 문자열과, Position2D객체를 파라미터로 받는데요 Q) 이때 저 위에 있는Monster mon1("Sanson", Position2D(0,1));의 Position2D(0,1)는 익명객체이고 자신을 참조하는 레퍼런스const Position2D & pos_in에게 주소를 넘겨주고 생성자에 의해 private멤버 변수가 값복사에의한 초기화가 끝나는 즉시 Position2D(0,1)는 사라진다는 설명이 적절할까요? 감사합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링이랑 관련없는 번외질문입니다!
스프링MVC1편 수강생이 약 2만3천명이라고 뜨는데 이게 2024년도 기준 수강생인가요? 아니면 스프링MVC1편 출시날부터 오늘까지 누적수강생이 2만3천명이라는걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FPrimaryAssetId GetPrimaryAssetId() const override 함수
FPrimaryAssetId GetPrimaryAssetId() const override{ return FPrimaryAssetId("CSItemData", GetFName());}이 함수는 앞에 virtual 붙이지 않는 이유가 뭔가요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Entity 클래스에 기본 생성자가 없는데 왜 에러가 안나는 걸까요
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션 2 - 엔티티 클래스 개발2 15:18쯤에 강사님께서도 말씀하셨고, 직접 보여주셨듯이 Entity 클래스에 기본생성자가 없으면 컴파일 에러가 발생한다고 알고 있는데 저는 왜 컴파일 에러가 발생하지 않을까요?? @Embeddable 어노테이션 때문에 그런가 싶어서 다른 Entity 클래스에서도 확인해봤지만 똑같이 기본 생성자가 없어도 컴파일 에러가 발생하지 않습니다.
-
해결됨HTML5 CSS3 기초 & 반응형 웹 템플릿 만들기!
css background-image 적용이 안 돼요
index.html파일에서 style태그로 작성하면 돌고래 사진이 잘 나오는데 style.css에서 작성하면 백그라운드 컬러만 적용되고 사진이 표시되지 않습니다. 왜 이런가요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요
import java.util.Scanner; public class lecture02 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String s=scanner.next(); char [] t=s.toCharArray(); String s1=""; System.out.println(); for (int i = 0; i < t.length; i++) { if(Character.isLowerCase(t[i])) { s1+=Character.toUpperCase(t[i]); } else if(Character.isUpperCase(t[i])) { s1+=Character.toLowerCase(t[i]); } } System.out.println(s1); } }이 코드가 정상적으로 구현한것 같은데 , 채점 사이트에서 컴파일 오류가 아닌 , 오답으로 처리 되고 있어서 어떤 부분이 잘못 된 것인지 궁금합니다 ( 예시 출력이나 몇개의 예시로는 올바르게 출력이 되는것 같아서 질문합니다)
-
미해결카프카 완벽 가이드 - 코어편
kafka paraller-consumer 처리방법을 알고 싶습니다.
하나의 토픽, 하나의 파티션으로 순서보장을 하는 Consumer 처리를 알고싶습니다.kafka paraller-consumer 처리를 하고 싶은데 마땅한 예제가 나와있지 않아서요.해당 예제를 찾아보면 보통 multi thread 방식이라 순서보장이 되지않은것 같아 사용을 못할것 같습니다.최종적으로 순서보장을 하는 consumer 병렬처리 방법을 알고 싶어 질문드렸습니다.
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
pinia 사용할려고 하는데 에러가 나옵니다.
import { defineStore } from "pinia"; import { getUserFromCookie, getAuthFromCookie } from "@/utils/cookies"; import { loginUser } from "@/api"; export const usePiniaStore = defineStore("userData", { state: () => { return { storeUsername: getUserFromCookie() || "", token: getAuthFromCookie() || "", }; }, getters: { isLogin: (state) => state.storeUsername !== "", }, actions: {}, });에러 내용Uncaught ReferenceError: Cannot access 'usePiniaStore' before initializationloginUser 요거 불러올때 에러나는거 같은데,왜 그런지 모르겠습니다.
-
해결됨실전! Querydsl
수업들으며 곰곰히 생각하다가 제가 생각한게 맞는지 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]동적쿼리 - builder 사용편 강의를 들으며return query .select(new QMemberTeamDto( member.id.as("memberId"), member.username, member.age, member.team.id.as("teamId"), team.name.as("teamName"))) .from(member) .leftJoin(member.team, team) .where(builder) .fetch();이 쿼리를 따라 치고 생각해보았습니다.원래 jpa라면 member객체를 조회해와서 member.getTeam()이나 팀 객체에 액세스 할때 지연로딩이 일어난다고 학습하였습니다.위 쿼리에서 fetch 조인을 사용하지 않았는데 어떻게 쿼리가 한방에 조회가 됐나 갑자기 의문이 들었습니다.제가 도출해낸 결과는 반환값이 dto이고 team 객체와 join해서 필요한 값만(team 포함) select 하기때문에 teamId, teamName까지 한방쿼리로 조회가 되는건가요?
-
미해결모의해킹 실무자가 알려주는, XSS 공격 기법
비트나미 설치 전에 APM같은거 설치되신 분들은
비트나미 이전에 다른 프로그램 설치되신 분들은 아마비트나미 설치 프로그램 실행 시에아파치 포트와 mysql 포트가 80, 3306이 아닌 81,3307등으로 될텐데그렇게 설치하시면 설정을 또 바꿔줘야 하니까cmd 실행 후 "netstat -ano | findstr :3306" 그리고 "netstat -ano | findstr :80"두개 입력하시면 LISTENING 이라고 포트 실행중인게 나옵니다.LISTENING 옆에 숫자가 나오는데 해당 숫자가 PID가 되며작업관리자 실행 뒤에 PID 정렬버튼 눌러서 해당 PID에 맞는 프로세스 종료시킨 뒤다시 아파치와 MySQL 포트를 80과 3306으로 설정하시면 됩니다.
-
해결됨친절한 블렌더 - [LV.2] 모델링 연습
유리재질
15:29 에서 유리재질 입힐 때 Transmission Weight 1까지 올리면 병이 시커매져서 유리느낌이 아예 안납니다! 러프니스까지 0으로 바꿔도 유리재질이 안입혀지는데 어떻게 해야하나용 ㅠㅠ??
-
미해결[7일완성]생각하는 데이터베이스모델링
intellij Ultimate tomcat server로 구동시 생긴문제입니다.
강의 정말 잘 보고 있습니다.얼티밋 버전 이용 중이여서 내장 tomcat 기능을 이용하여 구동하였습니다./ 로 진입 시 index 에서 template.jsp로 변경하는 작업 중인데요. 얼티멋 버전에서 제공해주는 tomcat Server를 사용하면 index페이지만 노출되더라고요 반대로 선생님과 동일하게 smart tomcat 플러그인을 다운로드하여 이용하면 index 대신 template.jsp가 루트 진입 시 노출됩니다.혹시 얼티밋 버전에서 어떻게 세팅하는지 안내해 주실 수 있을까요아래는 제가 세팅한 얼티밋 버전에서 기본 제공해 주는 tomcat입니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스스로 찾고싶었지만 이 이상 찾을 수가 없습니다..
안녕하세요 이번강의에서 후반부까지는 잘 되었다가 마지막 과정에서 막혀서 질문 드립니다.우선 오류가 났다고 생각하는곳은 Id와 BookName으로 대출기록을 불러오고 doReturn을 불러오는 과정에서예외가 발생되었고 예외가 발생되었기때문에 아이디와 책 이름이 일하는기록이 없어서 예외가 나왔다고 생각했습니다.하지만 터미널로 sql문을 이용해 찾아봐도user_loan_history의 user_id와user의 id가 같았습니다.이 이상 Id대신 이름을 getName을 해봐도 오류가 나서 진행을 못하는 상황입니다.. 오류의 원인이 뭔지 알 수 있을까요2024-03-22 17:03:37.674 ERROR 84411 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException] with root cause java.lang.IllegalArgumentException: null at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] at com.group.libraryapp.Service.book.BookService.returnBook(BookService.java:71) ~[classes/:na] at com.group.libraryapp.Service.book.BookService$$FastClassBySpringCGLIB$$1faa236c.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.24.jar:5.3.24] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.24.jar:5.3.24] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.24.jar:5.3.24] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.24.jar:5.3.24] at com.group.libraryapp.Service.book.BookService$$EnhancerBySpringCGLIB$$892e8bee.returnBook(<generated>) ~[classes/:na] at com.group.libraryapp.controller.book.BookController.returnBook(BookController.java:32) ~[classes/:na] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920) ~[spring-webmvc-5.3.24.jar:5.3.24] at javax.servlet.http.HttpServlet.service(HttpServlet.java:699) ~[tomcat-embed-core-9.0.69.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.24.jar:5.3.24] at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.69.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar:5.3.24] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.24.jar:5.3.24]
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DataSourceUtils import가 안돼요.
[질문 내용]저는 이클립스 4.2 , JDK17버전을 사용하고 있습니다.근데 datasource 연결하는데import가 되지 않습니다..private Connection getConnection() { return DataSourceUtils.getConnection(dataSource); }
-
미해결
플라스크 ModuleNotFoundError 오류
플라스크에서 머신러닝 웹 서비스 예제를 실행해보려고 하는데 에러가 발생합니다import flask import joblib import numpy as np from flask import Flask, request, render_template from scipy import misc app = Flask(__name__) # 메인 페이지 라우팅 @app.route("/") @app.route("/index") def index(): return flask.render_template('index.html') # 데이터 예측 처리 @app.route('/predict', methods=['POST']) def make_prediction(): if request.method == 'POST': # 업로드 파일 처리 분기 file = request.files['image'] if not file: return render_template('index.html', label="No Files") # 이미지 픽셀 정보 읽기 # 알파 채널 값 제거 후 1차원 Reshape img = misc.imread(file) img = img[:, :, :3] img = img.reshape(1, -1) # 입력 받은 이미지 예측 prediction = model.predict(img) # 예측 값을 1차원 배열로부터 확인 가능한 문자열로 변환 label = str(np.squeeze(prediction)) # 숫자가 10일 경우 0으로 처리 if label == '10': label = '0' # 결과 리턴 return render_template('index.html', label=label) if __name__ == '__main__': # 모델 로드 # ml/model.py 선 실행 후 생성 model = joblib.load('./model/model.pkl') # Flask 서비스 스타트 app.run(host='0.0.0.0', port=8000, debug=True)import scipy.io from sklearn.utils import shuffle from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import joblib # Google 주소 숫자 인식 모델 생성 # 로드 mat 파일 train_data = scipy.io.loadmat('extra_32x32.mat') # 학습 데이터, 훈련 데이터 X = train_data['X'] y = train_data['y'] # 매트릭스 1D 변환 X = X.reshape(X.shape[0] * X.shape[1] * X.shape[2], X.shape[3]).T y = y.reshape(y.shape[0], ) # 셔플(섞기) X, y = shuffle(X, y, random_state=42) print("Model Export Running") # 학습 훈련 데이터 분리 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.05, random_state=42) # 랜덤 포레스트 객체 생성 및 학습 clf = RandomForestClassifier() clf.fit(X_train, y_train) # 모델 저장 joblib.dump(clf, '../model/model.pkl')위 코드가 main.py 이고 아래 코드가 model.py입니다코드를 실행하면Traceback (most recent call last): File "/Users/jeonghaechan/PycharmProjects/flaskML/main.py", line 48, in <module> model = joblib.load('./model/model.pkl') File "/Users/jeonghaechan/PycharmProjects/flaskML/venv/lib/python3.9/site-packages/joblib/numpy_pickle.py", line 658, in load obj = unpickle(fobj, filename, mmapmode) File "/Users/jeonghaechan/PycharmProjects/flaskML/venv/lib/python3.9/site-packages/joblib/numpy_pickle.py", line 577, in _unpickle obj = unpickler.load() File "/Users/jeonghaechan/opt/anaconda3/lib/python3.9/pickle.py", line 1212, in load dispatch[key[0]](self) File "/Users/jeonghaechan/opt/anaconda3/lib/python3.9/pickle.py", line 1528, in load_global klass = self.find_class(module, name) File "/Users/jeonghaechan/opt/anaconda3/lib/python3.9/pickle.py", line 1579, in find_class import(module, level=0)ModuleNotFoundError: No module named 'sklearn.ensemble.forest'이렇게 뜨는데 어떻게 해야하나요?