안녕하세요, 강의를 완강하고 프로젝트에 BFF 구조를 적용하면서 API 레이어 설계에 대해 고민이 생겨 질문드립니다. [BFF를 쓰게 된 이유] 1. 외부 API 키를 클라이언트에 노출하지 않기 위해 2. next/headers의 cookies() 로 서버에서만 토큰을 읽고 외부 백엔드 API에 전달하기 위해 - httpOnly 쿠키로 토큰을 저장하여 클라이언트에서 읽을 수 없기 때문에 서버에서 처리 해야 했습니다. 3. CORS [예시 프로젝트 구조] features/auth/api/... → API 레이어 features/auth/hooks/... → Tanstack Query 훅 [고민하게 된 흐름] Tanstack Query와 함께 쓰는 경우, 클라이언트에서는 Route Handler(/api*)를 경유해야 하고, Server Component에서나 prefetchQuery 상황에서는 Route Handler를 경유 할 필요 없이 직접 외부 백엔드 API를 호출하는 게 맞다는 생각이 들었습니다. 그러다 보니 API 레이어가 둘로 나뉘게 됐습니다. - user.ts → 클라이언트용, Route Handler 호출 - user.server.ts → 서버용, 외부 API 직접 호출 인가가 필요한 작업인 Route Handler 내부에서는 cookies() 로 토큰을 읽고 header에 엑세스 토큰을 첨부해 보내고 있습니다. [ 질문] API 레이어를 서버/클라이언트로 분리하는 것이 Next.js + Tanstack Query 환경에서 일반적인 접근인지, 혹시 파일을 나누지 않고도 이 구조를 깔끔하게 유지할 수 있는 더 나은 방법이 있다면 조언 부탁드립니다 ㅠ.ㅠ BFF 없이도 이 구조를 해결할 수 있는 방법이 있는지도 궁금합니다. 유저별로 다르게 보여줘야하는 데이터가 아닌 공통 데이터는 Next의 서버 캐시(revalidateTag)만으로 관리하는게 나을까요? 만약 prefetchQuery로 hydrate하는 구조를 가져간다면, 유저 인터렉션 후 갱신이 필요할 때 Server Actions으로 updateTag를 먼저 실행 후 invalidateQueries로 refetch하는 방식이 올바른 접근인지 여쭤보고 싶습니다 이런 구조적인 고민들을 하다 보니 머리속에 혼란이 와서, 단순하고 일관되게 유지할 수 있는 컨벤션은 어떻게 정하는게 좋을지 궁금합니다 [참고 자료] https://tanstack.com/query/latest/docs/framework/react/guides/advanced-ssr
(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
안녕하세요 강의를 잘보고 따라가고 있습니다. 제가 만든 결과물이 강사님과 좀 달라서 강사님의 파일을 다운받어서 테스트를 해보고 있는데 2026-04-02_sinal_report.md 2026-04-11_llm_analysis.md 파일들을 각각 오는날짜로 업데이트해서 저장하고 싶은데 claude에 뭐라고 명령을 해야하는지 궁금합니다. 그리고 part2에서 최종적인 결과를 보려면 어떤 py를 실행시켜야 하나요?
The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
2026.04에 업데이트된 일부 강의들을 시청할 수 없습니다. 유튜브 영상은 재생되는데, 나머지는 보이지 않습니다. 어떻게 해결하나요? 안보이는 강의명 예시를 하나 말씀드리면 '11. 1-9. [2026.04] 🚀 2026 Claude Code 2.0 주요 업데이트 기능 안내'입니다.
(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
워드문서가 보기가 조금 어렵습니다. 프롬프트 일부가 캐리지 리턴이 없이 이어져 있어 제가 보기에 어려운데, ai가 인식할 때 문제가 없을까요? 우선 제가 일일이 리턴해서 올렸습니다. 파트4에 대한 권한도 요청드렸습니다. 💡 수강생 안내 사항 (커뮤니티 가이드) 학습 관련 질문 : 구체적으로 적을수록 정확한 답변을 받을 수 있습니다. 작성 팁 : 마크다운과 단축키를 활용하면 글을 더 편리하게 작성할 수 있습니다. 사전 검색 : 질문을 남기기 전, 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해 보세요. 커뮤니티 매너 : 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요. 서비스 문의 : 인프런 서비스 관련 문의는 1:1 문의하기 를 이용해 주세요.
(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
안녕하세요! 이제 시작하는 수강생인데, 다른 강의 들을때 cursor를 활용했어서 cursor가 많이 편한데, 혹시 cursor를 써도 본 강의 따라갈 수 있을까요? 아니면 antigravity를 설치하는게 그래도 나을까요? 💡 수강생 안내 사항 (커뮤니티 가이드) 학습 관련 질문 : 구체적으로 적을수록 정확한 답변을 받을 수 있습니다. 작성 팁 : 마크다운과 단축키를 활용하면 글을 더 편리하게 작성할 수 있습니다. 사전 검색 : 질문을 남기기 전, 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해 보세요. 커뮤니티 매너 : 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요. 서비스 문의 : 인프런 서비스 관련 문의는 1:1 문의하기 를 이용해 주세요.
안녕하세요. 강의 5분경쯤 나오는 node.js 설치 관련 질문드립니다. 현재 curl -o- https://fnm.vercel.app/install | bash 명령어를 통해 설치 진행중에 있는데 1시간동안 설치 되고 있습니다. 원래 소요시간이 이렇게 오래 걸리는 것이 맞을까요?
(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
💡 수강생 안내 사항 (커뮤니티 가이드) 학습 관련 질문 : 구체적으로 적을수록 정확한 답변을 받을 수 있습니다. 작성 팁 : 마크다운과 단축키를 활용하면 글을 더 편리하게 작성할 수 있습니다. 사전 검색 : 질문을 남기기 전, 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해 보세요. 커뮤니티 매너 : 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요. 서비스 문의 : 인프런 서비스 관련 문의는 1:1 문의하기 를 이용해 주세요. 업데이트중에 한도초과라고 계속 나옵니다. 그래서 백업까지 해놓았는데도 이러는데 해결책이 있을까여 현재 호출 구조 모델 우선순위 순서모델상태무료 한도1순위 gemini-2.5-flash 기본 25 RPD, 10 RPM (Preview 제한)2순위 gemini-1.5-flash 방금 변경됨 1,500 RPD, 15 RPM 3순위키워드 fallback코드 내장무제한 (LLM 없이 점수 산출) 호출 타이밍 ( generator.py:76 ) 종목 1 호출 → 6초 대기 → 종목 2 호출 → 6초 대기 → ... 종목 간격: 6초 46종목 기준: 45 × 6초 = 270초 (4.5분) LLM 단계만 [15/46] 대원전선 score=2 [16/46] DB하이텍 score=2 [17/46] 코스텍시스 score=2 [18/46] 펩트론 score=2 [GeminiAnalyzer] gemini-2.5-flash 한도 초과 → gemini-2.0-flash로 전환 (호텔신라) [GeminiAnalyzer] API 실패 → 키워드 fallback (호텔신라): 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits . To monitor your current usage, head to: https://ai.dev/rate-limit . \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.0-flash\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.0-flash\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.0-flash\nPlease retry in 40.700251593s.', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': ' https://ai.google.dev/gemini-api/docs/rate-limits '}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_content_free_tier_input_token_count', 'quotaId': 'GenerateContentInputTokensPerModelPerMinute-FreeTier', 'quotaDimensions': {'location': 'global', 'model': 'gemini-2.0-flash'}}, {'quotaMetric': 'generativelanguage.googleapis.com/generate_content_free_tier_requests', 'quotaId': 'GenerateRequestsPerMinutePerProjectPerModel-FreeTier', 'quotaDimensions': {'model': 'gemini-2.0-flash', 'location': 'global'}}, {'quotaMetric': 'generativelanguage.googleapis.com/generate_content_free_tier_requests', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel-FreeTier', 'quotaDimensions': {'model': 'gemini-2.0-flash', 'location': 'global'}}]}, {'@type': 'type.googleapis.com/google.rpc.RetryInfo', 'retryDelay': '40s'}]}} [19/46] 호텔신라 score=1 [GeminiAnalyzer] API 실패 → 키워드 fallback (로보티즈): 429 RESOURCE_EXHAUSTED. {'error': {'code': 429, 'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits . To monitor your current usage, head to: https://ai.dev/rate-limit . \n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.0-flash\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.0-flash\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.0-flash\nPlease retry in 30.229631631s.', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Learn more about Gemini API quotas', 'url': ' https://ai.google.dev/gemini-api/docs/rate-limits '}]}, {'@type': 'type.googleapis.com/google.rpc.QuotaFailure', 'violations': [{'quotaMetric': 'generativelanguage.googleapis.com/generate_content_free_tier_input_token_count', 'quotaId': 'GenerateContentInputTokensPerModelPerMinute-FreeTier', 'quotaDimensions': {'location': 'global', 'model': 'gemini-2.0-flash'}}, {'quotaMetric': 'generativelanguage.googleapis.com/generate_content_free_tier_requests', 'quotaId': 'GenerateRequestsPerMinutePerProjectPerModel-FreeTier', 'quotaDimensions': {'model': 'gemini-2.0-flash', 'location': 'global'}}, {'quotaMetric': 'generativelanguage.googleapis.com/generate_content_free_tier_requests', 'quotaId': 'GenerateRequestsPerDayPerProjectPerModel-FreeTier', 'quotaDimensions': {'location': 'global', 'model': 'gemini-2.0-flash'}}]}, {'@type': 'type.googleapis.com/google.rpc.RetryInfo', 'retryDelay': '30s'}]}}
(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
💡 수강생 안내 사항 (커뮤니티 가이드) 학습 관련 질문 : 구체적으로 적을수록 정확한 답변을 받을 수 있습니다. 작성 팁 : 마크다운과 단축키를 활용하면 글을 더 편리하게 작성할 수 있습니다. 사전 검색 : 질문을 남기기 전, 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해 보세요. 커뮤니티 매너 : 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요. 서비스 문의 : 인프런 서비스 관련 문의는 1:1 문의하기 를 이용해 주세요. 강의에서 끝까지 완성한 자료에대한 파일은 없을까요?
현재 2주차 커서 강의를 듣고있는 코린인데요 26년 4월 기준으로 영상속 커서 버전하고 좀 다른거같아서요 로컬에서 실행시켜달라고 요청을 하면 강의속에서 보이는것과 다르게 보이는데 제 설정이 잘못되어있는걸까요? 혹시나해서 이 과정을 스킵하고 다음 강의를 듣다가 요청을해도 위 사진처럼 결과가 출력이 되는데 뭐가 문제일까요..