묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Next + React Query로 SNS 서비스 만들기
refresh token rotation 질문
안녕하세요 강의를 듣고 next-auth를 활용하여 개발 중에 궁금한 점이 생겨 질문 드립니다.프로젝트에서 일반 로그인과 소셜 로그인을 모두 사용하고 있어next-auth의 signin callback에서 로그인일 경우 자체 서버에 요청하여 accessToken과 refreshToken을 발급 받고 jwt callback에서 엑세스 토큰의 만료 시간을 체크하여 만료 시에 재발급 요청이 되도록 구현하고 있습니다.이렇게 구현했을 경우 간헐적으로 서버 시간과의 타이밍 이슈 때문인지 api 요청 시에 401 토큰 만료 에러가 발생하는 순간이 존재합니다.따라서 401 상태코드일 경우에 refreshToken 토큰 재발급 요청을 하려고 하는데 refreshToken이 현재 next-auth에서 jwt 콜백에서 리턴되어 jwt토큰으로 생성되어 있습니다.이 401일 경우 재발급 요청 처리를 클라이언트 단에서 할 경우 refreshToken이 노출되어 보안상 이슈가 있을 것으로 예상이 되는데 서버단에서 처리를 하려면 next에서 어디서 처리를 하면 좋을 지 문의드립니다. async signIn({ account, user, credentials }) { const cookieStore = cookies(); const authorizationParams = JSON.parse( cookieStore.get("authorization-params")?.value ?? "" ); const action = authorizationParams.action; user.platform = authorizationParams.platform; if (!account?.provider || !sns_type_map[account.provider]) { throw new Error("Unsupported provider"); } user.snsType = sns_type_map[account.provider]; if (action === auth_action_type.signin) { return handleSignIn(user); // getAccessToken } if (action === auth_action_type.signup) { return handleSignUp(); } return false; }, async jwt({ token, account, user }) { // Initial sign in if (account && user) { return { ...token, ...user, accessToken: user.refreshToken, expiresAt: new Date( Date.now() + (user?.expiresIn ?? 0) ).toISOString(), refreshToken: "refreshtoken", }; } // Return previous token if the access token has not expired yet if (new Date() < new Date(token.expiresAt as string)) { console.log("@@@@@@valid"); return token; } else { // Access token has expired, try to update it console.log("@@@@@@expired"); const cookieStore = cookies(); const authorizationParams = JSON.parse( cookieStore.get("authorization-params")?.value ?? "" ); const body = { .... }; const tokenData = await authApi.reissueAccessToken(body); // reissue token return { ...token, ...user, accessToken: tokenData.accessToken, expiresAt: new Date( Date.now() + (tokenData.expiresIn ?? 0) ).toISOString(), refreshToken: tokenData.refreshToken, }; } }, 미들웨어에서 401 상태 코드 처리하는 것도 알아보았으나 일반적인 방식인지 궁금합니다.미들웨어에서 401일때 재발급 요청 시 새로운 엑세스 토큰으로 재요청이 정상적으로 되는 것은 확인했으나 다시 next-auth의 jwt토큰에 재발급된 값을 세팅해줘야 하는데 어떻게 해야할지도 궁금합니다.import { NextResponse } from 'next/server'; import { getToken } from 'next-auth/jwt'; export async function middleware(request) { const token = await getToken({ req: request, secret: process.env.AUTH_SECRET }); if (request.nextUrl.pathname.startsWith('/gateway')) { const accessToken = token?.accessToken; const headers = new Headers(request.headers); if (response.status === 401) { const refreshToken = token?.refreshToken; const refreshResponse = await fetch("/reissueToken") const refreshData = await refreshResponse.json(); if (refreshResponse.ok) { const newAccessToken = refreshData.accessToken; headers.set('Authorization', `Bearer ${newAccessToken}`); const newResponse = NextResponse.next({ request: { headers: request.headers, }, }); } // 토큰 재발급 실패 시 처리 return NextResponse.redirect('/login'); } return NextResponse.next(response); } return NextResponse.next(); }
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
소스 코드 git에 있나요?
소스 코드가 git에 있는건가요? 강의 중간에 git commit 하시던데 소스 코드를 어디서 볼수 있나요?
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
pinecone 이 더이상 무료가 아닌거 같은데요;;
pinecone에서 인덱스를 생성하려고 봤더니 더이상 무료로는 인덱스 생성이 안되는 것 같아서요;; 그런데 강의 후반부는 전부 pinecone 사용하는걸로 하셔서 실습을 따라하기 좀 불편하네요;;
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
130_Transformer.ipynb transformer.summary() 에러
130_Transformer.ipynb를 수정없이 colab에서 모두 실행하였을 때, transformer.summary() 블럭에서 다음과 같은 에러가 나옵니다. 어떤 부분을 수정하면 좋을지 알 수 있을까요?--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-51-b0463e4f27a6> in <cell line: 1>() ----> 1 transformer.summary() 1 frames /usr/local/lib/python3.10/dist-packages/keras/src/utils/traceback_utils.py in error_handler(*args, **kwargs) 120 # To get the full stack trace, call: 121 # `keras.config.disable_traceback_filtering()` --> 122 raise e.with_traceback(filtered_tb) from None 123 finally: 124 del filtered_tb /usr/local/lib/python3.10/dist-packages/optree/ops.py in tree_map(func, tree, is_leaf, none_is_leaf, namespace, *rests) 745 leaves, treespec = _C.flatten(tree, is_leaf, none_is_leaf, namespace) 746 flat_args = [leaves] + [treespec.flatten_up_to(r) for r in rests] --> 747 return treespec.unflatten(map(func, *flat_args)) 748 749 TypeError: 'int' object is not iterable
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
1회 코드해석 문제 질문있어요
25분4초 영상 질문입니다. 1번에서 int*a가 미리 선언되었기 때문에 스왑이 정상작동 하는것일까요? 2번답 nx라는건 이상하게 보자말자 감이 오던데요..!혹시 sizeof(a)-1 를 했다면 답으로 되었을까요..? 궁금하네요 29분 12초 상속문제 입니다. 이상하게 상속문제만 보면 손댈 엄두가 안나네요..시작만 하면 풀리는데 그 시작이 안됩니다 ㅠㅠ...Venicle obj = new Car("Spark")에서new Car가 클래스 이름을 지칭하기 때문에 같은 클래스 이름을 찾아보면 되는걸까요?
-
미해결스프링 배치
Transition - on() / to() / stop(), fail(), end(), stopAndRestart() 강의의 38:39에 대한 내용 질문
FlowJob에 대한 강의를 듣다가궁금한 점이 있어서 질문드립니다. from()에 관한 질문인데요,from()의 역할이 현재 트랜지션에서 벗어나새로운 트랜지션을 다시 재정의하는 것으로 이해했습니다. 그래서 38:39 부분에서,step1()은 처음에 start()에서 정의하고,30번 째 라인에서, 다시 step1()의 기준을 재정의하FAILED가 아닌 모든 경우에 대한 flow를 재구성하는 것으이해했습니다. 질문은 step2()에 관한 것입니다.step2()는 첫번째 트랜지션인]on("FAILED") 하위에 to()를 통해서 최초에 정의되었습니다. 하지만, 그리고 step2()는 "FAILED" 상태인 경우에,FlowJob을 Stop하고 그 결과로 Job을 상태를 Stopped로 만듭니다. step2의 중점 Flow는step1() -> FAILED -> step2() -> FAILED -> STOPED인 것을 알 수 있습니다. 그런데, 34번 라인에서 다step2를 가져와서 이전에 정의 FAILED를 제외한 나머지 경우를 진입시키는 Transtion을 작성하였습니다. 코드만 보면, 계층이 step1과 나란한 구조라서,헷갈릴 것 같습니다. 그래서, 저는 34~36번 라인의 코드를,29번 라인 이후에,작성해도 같은 결과를 보장하는지 궁금합니다. from절이 어디에 사용돼도,항상 from절 내부에 있는 StepBean을 기준으다시 flow가 재정의 된다고 봐도 되는걸까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
js 받아오는 타이밍
link component 에 prefect 을 false 로 넘겨줄때,직접 이동하진 않지만 마우스 hover시 js 를 받아오네요 그런데 프로그래미틱한 방법으로 /test 로 이동시에는 왜 해당 페이지로 이동하고 나서 받아오나요 ?
-
해결됨AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
EC2 하나만 운용시 로드밸런서를 설정해야하는지
만약 스프링 부트 서버용 EC2 한 개만 운용한다면 굳이 로드밸런서를 설정하지 않아도 괜찮을까요? 그리고 만약 스프링부트 서버용 EC2를 2, 3개 더 만든다면 프리티어단계에선 탄력적 IP에 대한 요금만 부과되는 것인지, EC2 인스턴스 갯수만큼 요금이 나오는 것인지 궁금합니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
리덕스나 리코일 등 상태관리 집중 교육은 계획이 없으신가요?
리덕스나 리코일 등 상태관리 집중 교육은 계획이 없으신가요?
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
최종 과제 제출
안녕하세요. 최종 과제 노션으로 작성해서 링크 공유드립니다.감사합니다!https://staticstic.notion.site/9c91ee729d734edeb5a85cc8fa6bf2b6?pvs=4
-
미해결ElasticSearch Essential
ES 트러블슈팅 사례분석 강의 내용중 궁금한 게 있습니다.
안녕하세요 강사님 좋은 강의 만들어주셔서 도움이 많이 되었습니다.특시 트러블슈팅 강의는 운영시 큰 도움이될 것 같아요. 강의 수강중 아래 2가지 내용이 궁금하여 글 남깁니다. 트러블슈팅 사례분석 #2 (문서색인 불가) 에서 디스크 사용량에 따른 제한을 주는 클러스터 세팅 옵션이 있었는데요. 아래 두가지 옵션에 대하여 궁금한게 있습니다.cluster.routing.allocation.disk.watermark.low: 85% cluster.routing.allocation.disk.watermark.high: 90%위와 같이 워터마크 설정을 % 로 설정을 할 수도 있지만, 절대값으로도 가능한것 같은데요.저희쪽 설정을 보니 아래와 같이 되어 있는데 이럴때 의미가 어떻게 되는지 궁금합니다cluster.routing.allocation.disk.watermark.low: 25.0gb cluster.routing.allocation.disk.watermark.high: 22.0gblow 설정의 경우 디스크가 25.0gb 남았을경우 더이상 샤드를 배치하지 않는다. 로 이해되는데 high 설정이 어떤 의미인지 잘 이해가 안되어요. 트러블슈팅 샤례분석 #3 (간헐적 색인 누락)에서 문제해결 방법으로 데이터 노드 증설 혹은 큐 증설을 말씀 주셨는데요. 아래와 같은 상황에서 데이터 노드 증설이 해답이 되는지 궁금합니다.프라이머리 노드가 3개이고 데이터 노드가 3개인 상황에서 색인이 누락되고 있으면, 이때 데이터 노드를 증설해도 결국에는 추가된 노드는 색인 작업에 참여치 못하것 같은데요. 제가 이해한게 맞는지 궁금합니다. 이럴경우에는 프라이머리 샤드 갯수를 조정할 수 없는 상황일 것 같아서 어떤식으로 문제를 해결 할 수 있을지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 2편
해시 충돌 구현 링크드리스트 사용이유!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 강사님께서 링크드 리스트를 사용하시는 이유를 설명해주셨는데 잘 이해가 안가서 질문을합니다!어레일이스트를 사용하는것보다 링크드 리스트를 사용하는 이유가.. 충돌?이 덜나서라고 하셨는데 이부분을 자세하게 설명해주실수있나요? 잘 이해가 안가네요 ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp 페이지 인식 안되는 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.jsp 페이지가 인식되지 않습니다./jsp/members/new-form.jspgradle gradle 적용후 새로 적용했고 했고 서버도 재시작 했는데 jsp 페이지 접근이 안됩니다.index.html 정상 접근됩니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build 실행 안되시는 분들 이렇게 해결하시면 됩니다.
CRITICAL WARNING: [Common 17-183] Failed to open handle xvlog.log. Please check access permission of directory '/home/j/Matbi_VerilogHDL_Season1'. You should restart the application from a writable working directory. 이런 경고문 뜨시는 분들은 build 파일이 들어있는 폴더에 접근 권한이 없어서 발생하는 문제인데, " Matbi_VerilogHDL_Season1"이 설치 되어있는 폴더로 가셔서sudo chmod -R 777 Matbi_VerilogHDL_Season1==> "Matbi_VerilogHDL_Season1" 디렉토리 하위 모든 폴더, 실행파일에 대하여 모든 사용자가 접근가능하게 변경하는 명령어이렇게 하시면 xvlog, xelab, xsim 접근이 가능해져서 문제가 해결됩니다... 저처럼 헤매시는 분들 계실까봐 공유해봐요!
-
미해결
Comparable, Comparator의 차이
두개의 차이를 모르겠습니다.어쩔때 comparable을 써야하고 어쩔떄는 Comparator를 써야하는지 잘모르겠습니다
-
미해결김영한의 실전 자바 - 중급 2편
String[]에서 for-each가 작동하는 이유는 뭔가요?
[섹션 11. 순회, 정렬, 전체 정리] 강의를 들으면서 학습 자료에서 다음과 같은 내용을 볼 수 있었습니다. "자바는 Iterable 인터페이스를 구현한 객체에 대해서 향상된 for문을 사용할 수 있게 해준다" 근데, String[]에는 Iterable 인터페이스가 구현되어 있지 않은 것 같은데 어떻게 for-each를 사용할 수 있는지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Spring web bean validation 에러핸들링
Bean validation핸들링이 보통 어떤 설계가 일반적인지 알고싶어서 질문드립니다폼post 송신시, Bean validation으로 에러감지 후 입력화면html로 리턴할텐데요이때, 브라우저 url은 post송신용이 남아있어서유저가 브라우저 주소창 엔터로Get으로 송신이 되어 서버에선postmapping만 지원한다고 시스템에러가 나는데 일반적으로 이런건 유저가 개발자 의도와는 다르게 이용한 케이스겠지만 흔히 있을 수 있는 일 같거든요. 이런거 방지하기 위해서는 get도 받을 수 있게 따로 구현을 하나요?아니면 실무에서는 어떤 방법이 있을까요
-
미해결직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
vscode 자동완성
강사님 안녕하세요강사님이 남기신 자료를 바탕으로 5~6년간 잘 공부하고 있다가 이번에 강의까지 수강하게 된 열혈 수강생입니다. 강의 내용이 매우 흡족하고 좋습니다.한가지 궁금한 사항이 있어 글을 남깁니다.vscode에서는 자동완성 기능이 있어예를 들면 Path. 까지 타이핑하면 뒤에 자동으로 올 함수 등을 제시해 주는데 hwp = win32.gencache.EnsureDispatch('hwpframe.hwpobject')생성한 hwp 객체에 hwp. 하면 뒤에 올 수 있는 것에 대한 자동완성이 작동하지 않습니다. 혹시 자동완성이 되도록 하는 방법이 있을까요? 매번 레퍼런스 찾기도 어렵고 대강 지식을 갖추고 나서 vscode의 도움으로 코드를 진행하고 싶은데 쉽지 않네요.. ^^
-
미해결
컴퓨터과 진학을 앞두고 있습니다.
16세구요. 검정고시 마치고 방통대 진학중입니다. 내년 컴퓨터과를 복수전공하려고 하는데, 근처 학원에서 C언어(코딩)수업을 한달 수강하던중 학원이 문을 닫게 되서(지방시골: 학원없음) 대체할 만한 수업을 찾고 있습니다. 강의가 많아서 뭐부터 들어야 될지 모르겠습니다. 컴퓨터 수업은 처음입니다. 어떤 강좌가 맞을지 조언좀 해주세요.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
87번 문제 섬나라 아일랜드 질문
안녕하세요 섬나라 아일랜드 질문이 있어서 코드 올려드립니다.출력값이 구현이 되질 않아서 어디가 틀렸는지 찾아봐도 모르겠습니다. 한 번만 봐주시면 감사드리겠습니다.