묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
실제 FK제약조건을 설정하지 않는이유
안녕하세요 영한강사님! 좋은 강의 너무 잘들었습니다! 강의에는 없는 내용이긴한데요! 실무에서는 실제 FK제약조건을 설정하지 않더라구요. 선배님들은 확장성때문이라고 말씀해주시는데 이것말고도 다른 이유가 있는지 궁금합니다!
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
안녕하세요. 인덱스를 활용한 조회 성능 개선을 공부하던 중 궁금한 점이 생겨 질문드립니다.현재 저는 OFFSET 기반 pagination을 사용하는 서비스를 개발하고 있으며, 다음과 같은 환경에서 성능 테스트를 진행했습니다.데이터: 약 1,000만 건서버: EC2 t3.smallDB: RDS t4g.microk6 vus1001. 문제 상황초기에는 OFFSET 제한 없이 마지막 페이지까지 이동 가능하도록 구현했습니다.하지만 데이터가 1,000만 건 수준으로 증가하자, 깊은 페이지로 갈수록 조회 속도가 급격히 느려지는 문제를 확인했습니다.2. 고민 및 제약일반적으로 이 문제는 Keyset Pagination(커서 기반)으로 해결하라고 많이 알려져 있습니다.하지만 제 서비스는👉네비게이션 바를 통한 페이지 직접 이동 (ex. 1, 10, 100 페이지 클릭)이 필요하기 때문에 Keyset 방식만으로는 요구사항을 만족시키기 어렵다고 판단했습니다.3. 적용한 개선 방법다음과 같은 방식으로 성능 개선을 진행했습니다.OFFSET 최대 범위를 제한 (최대 10,000 페이지 / OFFSET 100,000)커버링 인덱스 적용조회 방식 개선먼저 ID만 조회 → 이후 필요한 10건만 상세 조회전체 게시글 수(count)는 캐싱 처리4. 성능 개선 결과[Page 10] avg: 1.4s → 700ms p95: 4.5s → 1.8s [Page 100] avg: 17s → 1.18s p95: 24s → 3.3s [Page 1000] avg: 32.1s → 1.7s p95: 59s → 4.27s SQL 쿼리는 분석결과 약 1700MS -> 70MS 까지 단축한 것 같습니다.5. 추가 제약사항로그인 사용자와 비로그인 사용자의 조회 결과가 다름(사용자별 구독 게시글이 포함됨)따라서 캐시는 비로그인 사용자에만 적용위 성능 수치는 로그인 사용자 기준6. 현재 고민위와 같이 개선했지만,👉 여전히 성능이 충분하지 않다고 느끼고 있습니다.특히 궁금한 점은 다음과 같습니다.7. 질문OFFSET 기반 pagination을 유지하면서👉추가로 성능을 개선할 수 있는 방법이 있을까요?다음과 같은 방법들을 고려했는데, 방향성이 맞는지 궁금합니다.RDS를 2개를 사용하여 조회 성능 데이터를 각각 2개의 db가 처리하도록 한다?Keyset + OFFSET 혼합 방식(일반적인 페이지 이동은 Keyset Pagination을 사용하고,사용자가 특정 페이지를 직접 입력하거나 점프하는 경우에만제한적으로 OFFSET 기반 조회를 사용하는 혼합 방식)RDS 스펙 업그레이드또한 에펨코리아(https://www.fmkorea.com/)와 같은 대형 커뮤니티는 제가 원하는 페이지 네이션 방식을 사용하면서 깊은페이지(최대 1만)도 지원하고동시접속자 수십만페이지 수천~수만대량 데이터환경에서도 빠른 조회 성능을 유지하는데👉이러한 서비스들은 어떤 방식으로 pagination 및 조회 성능을 처리하는지 궁금합니다.
-
미해결압도적 AI 인사이트 보고서 : 의사결정 판도를 바꾸는 힘, 탐색적 시각화 자동분석 실무
4-7강 음성이 안나옵니다
음성이 제공되지 않는다고 나오네요. 다른 강의 클립들도 처음엔 음성이 작다가 점점 커져서 상당히 불편합니다. 강의 내용은 좋은데 아쉽네요. 확인해주시고, 다른 시각화 강의도 구매 고민중인데 다른 강의들도 상태확인 다시 부탁드립니다
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
useEffect와 lifecycle문의
useEffect 가 특정 변수값을 추적하다가 바뀌면 실행되는 함수를 등록하는 기능이라고 배웠는데 deps 의존성배열에다가 state 만 넣을수 있는건가요? 아니면 props 나 useRef 변수, 외부변수도 넣을수 있나요? 예전에 vuejs 를 했었는데 그때 기억하기론 lifecycle이 js 실행되기전, dom 생성되기전 등.. 좀 다양했던거같은데 react 는 mount 하나만 있어서 mount 시점이라는게 js가 실행완료되서 html 이 생성된 시점이라는 말인가요? 보통 useEffect 는 강의처럼 변수추적시 콘솔에 찍어야 하는경우 사용하거나 mount 때 서버에 데이터 가져오는경우 사용하는거죠? 사실 콘솔추적이라는건 devtool로도 할수 있는거같아서 실무에서 어디에 많이 쓰는지 궁금합니다.
-
미해결한국인이 좋아하는 속도로 때려넣는 파이썬
python main.py 실행시 게임이 실행이 안돼요
[프로그램 설치 오류 문의]뉴프로젝트로 말씀하신대로 진행하였습니다. (최신버전이라 그런지 선생님과 좀 다른부분이 있어서 이제 맞는지 모르겠네요 ㅠㅠ)현재 바탕화면에 폴더를 다운받아놓은 상태입니다. /c/Users/cjy09/OneDrive/바탕 화면/python101-master/[예제 001] 파이썬으로 즐기는 횡스크롤 게임그리고 아래와 같은 명령어를 실행시키면 에러메세지가 떠요 ㅠㅠ(1000자 이상으로는 입력이 안되어 중간에서 에러코드를 잘랐습니다. ㅠㅠ)cjy09@DESKTOP-C62KS0D MINGW64 ~/OneDrive/바탕 화면/python101-master/[예제 001] 파이썬으로 즐기는 횡스크롤 게임$ python main.pyWARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.Collecting pygame Using cached pygame-2.6.1.tar.gz (14.8 MB) Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [76 lines of output] Skipping Cython compilation WARNING, No "Setup" File Exists, Running "buildconfig/config.py" Using WINDOWS MSYS2 configuration... Installing pre-built dependencies Installing mingw-w64-x86_64-SDL2 --- For help with compilation see:https://www.pygame.org/wiki/CompileWindows To contribute to pygame development see:https://www.pygame.org/contribute.html ---[코드 실행 오류 문의]반드시 코드와 에러메시지의 스크린샷을 첨부해 주셔야 합니다!둘 중 하나라도 누락되면 도움을 드릴 수 없습니다! [그 외 오류 문의]그 외 오류가 발생한 경우 최대한 스크린샷이나 코드 등, 상황을 전달할 수 있는 자료를 수집하시어 함께 제공해 주세요.
-
미해결압도적 AI 인사이트 보고서 : 의사결정 판도를 바꾸는 힘, 탐색적 시각화 자동분석 실무
자료 다운로드 오류
안녕하세요! 좋은 강의 감사드립니다. 근데 자료를 다운로드 받아 압축을 풀려고 하면 올바르지 않다는 메세지가 계속 나오는데ㅜ 해결 방법을 알 수 있을까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
cd 다음에 어떻게 자연스럽게 문자가 써지죠?
여기에서 보면 24초에서 cd만 눌러도 자연스레 워크스페이스가 만들어지는데 저는 그게 안되면서 이런 오류가 뜹니다 단축키가 있는건가요 ?
-
해결됨코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
antigravity 대신 cursor를 활용해도 되나요?
안녕하세요!이제 시작하는 수강생인데, 다른 강의 들을때 cursor를 활용했어서 cursor가 많이 편한데,혹시 cursor를 써도 본 강의 따라갈 수 있을까요? 아니면 antigravity를 설치하는게 그래도 나을까요? 💡 수강생 안내 사항 (커뮤니티 가이드)학습 관련 질문: 구체적으로 적을수록 정확한 답변을 받을 수 있습니다.작성 팁: 마크다운과 단축키를 활용하면 글을 더 편리하게 작성할 수 있습니다.사전 검색: 질문을 남기기 전, 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해 보세요.커뮤니티 매너: 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요.서비스 문의: 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요.
-
미해결프로젝트로 배우는 OpenAI Codex - AI를 이용한 바이브코딩 기초부터 심화까지
가상환경 생성 필요한가요?
안녕하세요, 강의 잘 수강하고 있습니다! 강의 듣다가 궁금한 점이 있는데 코덱스가 코딩을 진행하면서 설치하는 라이브러리들이 전역으로 설치되는 건가요?? 만약 그렇다면 plan 모드로 계획 수립 중에 가상환경 생성에 대해 명시해줘야할까요?
-
미해결바이브코딩과 오픈클로를 통해 월급의 10배 번 기술
인스타 카드뉴스 실습시 레퍼런스 이미지 자료 문의
ㅁ인스타 카드뉴스 실습시 레퍼런스 이미지 자료를 어디서 구할 수 있나요?강사분이 제공하신 깃허브에도 레퍼런스 이미지가 없고 수강생이 알아서 구해와라 이런 거 같아서 당황스럽긴 하네요 제공해줏시면 좋겠습니다. 추가로 레퍼런스 이미지가 중요하다고 하셨는데 인스타, 핀터레스트에서 직접 보시고 어떤 카드뉴스를 직접 레퍼런스로 선택하는지도 보여주면 좋겠네요
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
클로드코드에 적용할 하네스? 툴? 추천 부탁드립니다.
안녕하세요. 하네스 엔지니어링이 중요하다는 사실은 인지했는데 직접 하네스를 제 상황에 맞게 설정하고 만드는 게 비개발자 입장에서 상당히 어렵게 느껴집니다. 이미 공개된 superpowers나 oh-my-clauldecode 같은 도구들을 많이들 사용하시던데 비개발자 입장에서 어떤 도구들을 사용하면 좋을지 추천 부탁드립니다. 참고로 저는 온라인 쇼핑몰 통합관리 웹솔루션을 개발하려고 합니다.
-
미해결[100% 환급반] 인프런 클론 6주 완성 챌린지 2기|Next.js 15 × NestJS × Prisma
node.js 설치 관련 질문 드립니다
안녕하세요. 강의 5분경쯤 나오는 node.js 설치 관련 질문드립니다. 현재 curl -o- https://fnm.vercel.app/install | bash 명령어를 통해 설치 진행중에 있는데 1시간동안 설치 되고 있습니다. 원래 소요시간이 이렇게 오래 걸리는 것이 맞을까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
14강 GIT 설치후 ~ config 명령어 입력이 안돼요
강의에서는 이렇게 ~ git config로 가는데 윈도우에서 입력할때엔 안먹히는것같습니다. 강의에서는 왜 ~ 를 썼는지와 , 윈도우 환경에서는 다른식으로 접근해야하는지를 설명을 해주세요
-
미해결코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
뉴스 검색 분류 한도초과
💡 수강생 안내 사항 (커뮤니티 가이드)학습 관련 질문: 구체적으로 적을수록 정확한 답변을 받을 수 있습니다.작성 팁: 마크다운과 단축키를 활용하면 글을 더 편리하게 작성할 수 있습니다.사전 검색: 질문을 남기기 전, 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해 보세요.커뮤니티 매너: 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요.서비스 문의: 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요. 업데이트중에 한도초과라고 계속 나옵니다.그래서 백업까지 해놓았는데도 이러는데 해결책이 있을까여현재 호출 구조 모델 우선순위순서모델상태무료 한도1순위gemini-2.5-flash기본25 RPD, 10 RPM (Preview 제한)2순위gemini-1.5-flash방금 변경됨1,500 RPD, 15 RPM3순위키워드 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'}]}}
-
미해결
안드로이드 고수님들아
제가 원래는 프론트 개발업무를 하다가 새로운 플젝에서는 안드로이드를 맡았는데 개발할때 프론트는 dev모드 상태에서 수정사항을 저장하면 바로바로 화면에 업데이트가 되는데 안드로이드 개발할때는 이게 안되는것 같아요(정확히는 모름) 여기서 궁금한게 안드로이드 개발할 때 수정사항이 화면에 즉각 반영안되는건가요?? 있다면 방법을 공유 부탁드립다 ㅜㅜIDE: android studio, Lang: Kotlin
-
해결됨즐거운 블렌더 - 아이소메트릭 하우스
젠가 3개를 90도 회전시킬 때 각각의 축으로 회전하는 경우
젠가를 복제 후 R Z 90을 하게되면젠가들이 각각 회전을하여 사진처럼 1자로 정렬됩니다...어떤 부분이 잘못된걸까요
-
미해결쿠버네티스 어나더 클래스-Sprint5(#Istio #Kiali #Jaeger #Cert-Manager)
강사님 Sprint6 은 언제쯤 나오나요?
[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]helm, 1 ~ 5까지 모두 듣고 cka 를 들으려고 하고 있습니다. 아울러 sprint 6을 기다리고 있는데 아직 소식이 없어서요....꼭 sprint6 도 부탁드립니다.
-
해결됨OpenAI를 활용한 나만의 AI 에이전트 만들기 (Agent Builder, GPT-5, Chatkit, Cloudflare, MCP, Fine Tuning, CoT 등)
무료할당량 사용하는데 문제가 생겼습니다.
You do not have permission to edit these settingsOnly members of your organization with the "Owner" role can edit these settings.위와 같은 메시지와 나와 실습진행이 되지 않습니다.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
AddGameFrameworkComponentReceiver vs AddExtensionHandler
if ((GameInstance != nullptr) && (World != nullptr) && World->IsGameWorld()) { if (UGameFrameworkComponentManager* ComponentManager = UGameInstance::GetSubsystem<UGameFrameworkComponentManager>(GameInstance)) { UGameFrameworkComponentManager::FExtensionHandlerDelegate AddAbilitiesDelegate = UGameFrameworkComponentManager::FExtensionHandlerDelegate::CreateUObject(this, &ThisClass::HandleControllerExtension, ChangeContext); TSharedPtr<FComponentRequestHandle> ExtensionRequestHandle = ComponentManager->AddExtensionHandler(APlayerController::StaticClass(), AddAbilitiesDelegate); ActiveData.ExtensionRequestHandles.Add(ExtensionRequestHandle); } }GameFeatureAction에서 AddExtensionHandler와 void AModularPlayerController::PreInitializeComponents() { Super::PreInitializeComponents(); UGameFrameworkComponentManager::AddGameFrameworkComponentReceiver(this); }ModularPlayerController에서 AddGameFrameworkComponentReceiver를 하는 것에는 어떤 차이가 있는 건가요 ?? 제가 이해하기로는 AddExtensionHandler는 UGameFrameworkComponentManager::SendGameFrameworkComponentExtensionEvent 가 호출이 될 때 동작하는 것인데, AddGameFrameworkComponentReceiver는 무슨 역할을 하는지가 이해가 되네요 ..(GameFeatureAction의 코드가 다른 것은 UE 버전차이때문입니다. 저는5.7로 실습을 진행하고 있습니다)
-
해결됨코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
완성자료
💡 수강생 안내 사항 (커뮤니티 가이드)학습 관련 질문: 구체적으로 적을수록 정확한 답변을 받을 수 있습니다.작성 팁: 마크다운과 단축키를 활용하면 글을 더 편리하게 작성할 수 있습니다.사전 검색: 질문을 남기기 전, 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해 보세요.커뮤니티 매너: 서로 예의를 지키며 존중하는 분위기를 함께 만들어가요.서비스 문의: 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요. 강의에서 끝까지 완성한 자료에대한 파일은 없을까요?