학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 시험칠때, RandomForest만 이용하여 풀어도 될까요?? 분류는 f1-score 나 다른 식의 함수가 기억나지 않는다면 모델 학습 및 평가에서 RandomForestClassifier만을 사용해도 되나요? 마찬가지로 회귀에서도 다른 식의 함수가 기억나지 않는다면 모델 학습 및 평가에서 RandomForestRegression만 사용해도 되나요??
수업에서 Next.js에서는 클라이언트에 import 되는 서버 컴포넌트를 자동으로 클라이언트 컴포넌트로 변경해주는 동작을 한다. 라고 하셨는데요. 공식문서나 구글 문서를 아무리 찾아봐도 관련 언급이 없던데요. 혹시 출처를 알수 있을까요? 언제 업데이트 된건지 확인해보고 싶어서요
6.5 에러핸들링 24:04 (with-searchbar) 레이아웃을 살리기위해 error.tsx를 app/book/[id] 로 옮겨도 <Searchbar />가 보이지 않는 현상이 있습니다. 그리고 영상에서도 app/book/[id] 가 에러인 상황임에도 검색바 레이아웃이 보이는 장면이 없어서 헷갈리는 것 같습니다!
섹선1에 한글 파일을 불러올 때마다 뜨는 팝업 조치하고 있는데 컴퓨터\HKEY_CURRENT_USER\SOFTWARE\HNC\HwpAutomation\Modules 이 레지스트리 경로가 없습니다..ㅠ 저희 기관은 한글 2014를 아직 사용하고 있는데 이전 버전이라서 없는 걸까요?
import { type NextRequest, NextResponse } from 'next/server'; import { fetchData } from '@/shared/apis/fetch-data'; import type { IAcademyCreateDTO, IPostEnrollAcademyResponse } from '@/shared/types/acadmy'; export async function POST(req: NextRequest) { const body = (await req.json()) as Promise<IAcademyCreateDTO>; const data = await fetchData<IPostEnrollAcademyResponse>('/api/v1/academies', 'POST', body); if (!data.isSuccess) { return NextResponse.json( {}, { status: 500, statusText: data.message, }, ); } return NextResponse.json(data); } 서버에, 에러시 아래와 같은 데이터 구조를 준다고 했을떄 위의 방식처럼, 에러 핸들링을 하는 것이 맞는지 궁금합니다... Route Handler의 보편적인 에러처리 방식이 너무 궁금합니다!! (직접 에러 메시지를 작성하는것이 아닌 서버에서 내려주는 에러메시지를 화면에 표기하고 싶습니다.) export type CommonResponse<T = unknown> = { code: string; isSuccess: boolean; message: string; result: T; };
안녕하세요 next-auth로 토큰 갱신 로직을 개발하는 중에 해결되지 않는 문제가 발생하여 질문 드립니다. 현재 클라이언트에서 api 요청을 하면 middleware에서 const token = await auth(); 이런식으로 세션 정보를 가져와 accessToken을 헤더에 삽입하는 방식을 구현하였습니다. if (request.nextUrl.pathname.startsWith("/gateway")) { const session = await auth(); const accessToken = session?.accessToken; const { device } = userAgent(request); const localeFromCookie = cookieStore.get("dp_lang")?.value as string; const defaultLocale = getLanguageCodeFromLocale(localeFromCookie); request.headers.set("Accept", "*/*"); request.headers.set("Authorization", `Bearer ${accessToken}`); request.headers.set("Access-Control-Allow-Origin", "*"); request.headers.set("deviceType", "1"); request.headers.set("deviceId", getDeviceIdFromCookie(cookieStore)); request.headers.set("osType", getOsTypeFromCookie(cookieStore)); request.headers.set("User-Agent", device.model ?? ""); request.headers.set("locale", localeFromCookie); request.headers.set("language", defaultLocale); const response = NextResponse.next({ request: { headers: request.headers, }, }); return response; } 따라서 미들웨어에서 세션에 접근하는 순간에 jwt콜백이 실행되어 jwt 토큰에 저장되어 있는 토큰 expire 시간을 비교하여 만료여부를 판단 한 뒤에 토큰 갱신이 되도록 구현을 하였습니다. async jwt({ token, account, user }) { // Initial sign in if (account && user) { return { accessToken: user.accessToken, expiresAt: new Date( Date.now() + (user?.expiresIn ?? 0) ).toISOString(), refreshToken: user.refreshToken, serviceAvailable: true, }; } // Return previous token if the access token has not expired yet if ( new Date() < new Date(new Date(token.expiresAt as string).getTime() - 5000) ) { console.log("@@@@@@valid"); return token; } else { if (token.error === "RefreshTokenInvalid") { return token; } // Access token has expired, try tㄴo update it try { console.log("@@@@@@expired"); const refreshedTokens = await authApi.refreshAuthToken({ refreshToken: token.refreshToken as string, accessToken: token.accessToken as string, }); console.log("==========token refreshed========"); // reissue token return { ...token, accessToken: refreshedTokens.accessToken, expiresAt: new Date( Date.now() + (refreshedTokens.expiresIn ?? 18000) ).toISOString(), refreshToken: refreshedTokens.refreshToken ?? token.refreshToken, error: null, }; } catch (error) { console.error("Token refresh failed", error); if (error.status === RestApiErrorType.invalidTokenException) { return { ...token, error: "RefreshTokenInvalid", }; } return { ...token, error: "RefreshAccessTokenError" }; } } }, 기존에는 세션에 접근을 할때 next-auth의 jwt 콜백이 돌고 값이 리턴되면 쿠키의 session-token값에 암호화된 값들이 업데이트 되는 걸로 알고 있었는데 찾아보니 현재 세션에 접근하고 갱신하는 부분이 서버단에 있어서 쿠키가 업데이트 되지 않는다고 합니다. 따라서 현재 토큰이 만료된 후 한번에 3가지의 api 콜을 요청했을때 첫번째 api요청에서는 정상적으로 토큰 refresh가 요청이 되며 middleware에서 세션에 접근해 갱신된 토큰이 가져와져 요청이 성공되나 그 뒤 요청부터는 쿠키에 업데이트가 되지 않아서인지 세션에서 갱신 전 토큰이 가져와지는 현상이 발생하고 있습니다. 클라이언트에서 세션 업데이트 후 세션에 접근을 해야 쿠키값이 갱신이 된다고 하는데 다른 방법이 있는지 문의드립니다.
안녕하세요, 섹션11 작업형2에서 문의드리고 싶은 것이 있습니다. 아래 코드에서 train[cols]와 같이 cols를 선택하여 train 데이터셋을 분할하였음에도 불구하고, model.fit(X_tr[cols], y_tr)과 같이 모델학습 시에 파라미터에 값을 넣을 때도 반드시 따로 cols를 선택해서 입력해야 하나요? 그리고, train 데이터셋에서 과적합을 방지하기 위해 id를 제거할 경우, 반드시 test 데이터셋도 동일하게 id 컬럼을 제거해줘야 하나요? 위 두 가지 문의드립니다. ############ from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train[cols], target, test_size = 0.2, random_state = 0) from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() model.fit (X_tr[cols], y_tr) pred = model.predict_proba(X_val[cols])
안녕하세요 ! 수업을 듣던 중 궁금한 점이 생겨 질문해봅니다. 작업형1 모의문제2 4번 문제에서 object형 컬럼을 뽑기 위해 select_dtypes를 사용하셨는데 혹시 describe를 사용하는 건 안 되는 걸까요? 두 함수의 차이점이 궁금하고 결과에서 어떤 차이가 생기는지 궁금합니다..!
안녕하세요 선생님 수치형 데이터(n_train, n_test)와 범주형 데이터(c_train, c_test)를 분리하여 처리하는 이유가 있을까요? 분리했다가 합치는게 직관적으로 잘 이해가 안되어서요. X_train[cols] 또는 X_test[cols]로 처리하면 안되나요? 아 그리고 train data만 fit_transform하고 test data는 transform만 하는 자세한 이유도 궁금합니다. 아직 학습 모델링 적용 전에 전처리 하는 과정에서도 학습을 하는건가요? (수치형만 학습, 범주형 중 원핫인코딩은 학습이 없는 것도 이유가 궁금합니다. ) 미리 감사합니다.
앞에서부터 70% 데이터 중 views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값을 구하시오 라고 한다면, df = df[:int(len(df) * 0.7)] 는 슬라이싱이라 끝 값이 포함 안되지 않나요,,? df2 = df.loc[:int(len(df) * 0.7)] 이렇게 되어야 하지 않나 해서 문의드립니다.