묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
typescript 개발 환경 세팅해주기(nodemon) 질문
nodemon 설정까지 다 하고 나서 npm run dev 하면 정상적으로 실행이 됩니다. 그런데 그 이후에 index.ts 파일을 수정했을 때곧바로 실행이 되어야 하는데그런 변화가 일어나지 않습니다. 무엇이 문제일까요?
-
미해결시작하는 PM/PO들에게 알려주고 싶은, 프로덕트의 모든 것
Taxonomy 문서에서 구현단계 이벤트 정보 포함 방법
Taxonomy 문서에 꼭 포함시킬 정보에서 이벤트 정보가 있는데, 그 중에서 현재 구현단계를 포함시키라고 했잖아요 그럼 개발환경(상용, 개발, 테스트 등) 에 따라서 다른 이벤트 값을 보내면 되는건가요?예를들어 set : development / set : test 이런식으로요?그럼 공통이벤트 형식으로 들어가야 하나요?
-
해결됨[인프런어워드 베스트셀러] 코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
[30강] 클로드 경로 오류
클로드 설치 및 노드 설치를 완료하고 클로드에서 설정 → 개발자 → 로컬 MCP 서버에서 구성편집 시 이미지와 같은 오류가 발생합니다. 해당 경로에 클로드 폴더는 없는데 설치할때 특별하게 경로 설정도 없어보였습니다.. 어디서 설정해야 되는 걸까요?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
🚨 python3.14 를 쓰고 계시면 chroma 에서 ConfigError 가 발생합니다.
--------------------------------------------------------------------------- ConfigError Traceback (most recent call last) Cell In[13], line 1 ----> 1 from langchain_chroma import Chroma 3 database = Chroma.from_documents(documents=document_list, embedding=embedding) File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/langchain_chroma/__init__.py:3 1 """LangChain integration for Chroma vector database.""" ----> 3 from langchain_chroma.vectorstores import Chroma 5 __all__ = [ 6 "Chroma", 7 ] File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/langchain_chroma/vectorstores.py:18 12 from pathlib import Path 13 from typing import ( 14 TYPE_CHECKING, 15 Any, 16 ) ---> 18 import chromadb 19 import chromadb.config 20 import numpy as np File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/__init__.py:3 1 from typing import Dict, Optional, Union 2 import logging ----> 3 from chromadb.api.client import Client as ClientCreator 4 from chromadb.api.client import ( 5 AdminClient as AdminClientCreator, 6 ) 7 from chromadb.api.async_client import AsyncClient as AsyncClientCreator File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/api/__init__.py:51 46 from overrides import override 47 from chromadb.api.collection_configuration import ( 48 CreateCollectionConfiguration, 49 UpdateCollectionConfiguration, 50 ) ---> 51 from chromadb.config import DEFAULT_DATABASE, DEFAULT_TENANT 52 from chromadb.api.types import ( 53 CollectionMetadata, 54 Documents, (...) 73 DefaultEmbeddingFunction, 74 ) 76 from chromadb.auth import UserIdentity File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/config.py:120 116 NODE = "node" 117 ID = "id" --> 120 class Settings(BaseSettings): # type: ignore 121 # ============== 122 # Generic config 123 # ============== 125 environment: str = "" 127 # Can be "chromadb.api.segment.SegmentAPI" or "chromadb.api.fastapi.FastAPI" or "chromadb.api.rust.RustBindingsAPI" File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/main.py:221, in ModelMetaclass.__new__(mcs, name, bases, namespace, **kwargs) 219 elif is_valid_field(var_name) and var_name not in annotations and can_be_changed: 220 validate_field_name(bases, var_name) --> 221 inferred = ModelField.infer( 222 name=var_name, 223 value=value, 224 annotation=annotations.get(var_name, Undefined), 225 class_validators=vg.get_validators(var_name), 226 config=config, 227 ) 228 if var_name in fields: 229 if lenient_issubclass(inferred.type_, fields[var_name].type_): File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:504, in ModelField.infer(cls, name, value, annotation, class_validators, config) 501 required = False 502 annotation = get_annotation_from_field_info(annotation, field_info, name, config.validate_assignment) --> 504 return cls( 505 name=name, 506 type_=annotation, 507 alias=field_info.alias, 508 class_validators=class_validators, 509 default=value, 510 default_factory=field_info.default_factory, 511 required=required, 512 model_config=config, 513 field_info=field_info, 514 ) File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:434, in ModelField.__init__(self, name, type_, class_validators, model_config, default, default_factory, required, final, alias, field_info) 432 self.shape: int = SHAPE_SINGLETON 433 self.model_config.prepare_field(self) --> 434 self.prepare() File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:544, in ModelField.prepare(self) 537 def prepare(self) -> None: 538 """ 539 Prepare the field but inspecting self.default, self.type_ etc. 540 541 Note: this method is **not** idempotent (because _type_analysis is not idempotent), 542 e.g. calling it it multiple times may modify the field and configure it incorrectly. 543 """ --> 544 self._set_default_and_type() 545 if self.type_.__class__ is ForwardRef or self.type_.__class__ is DeferredType: 546 # self.type_ is currently a ForwardRef and there's nothing we can do now, 547 # user will need to call model.update_forward_refs() 548 return File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:576, in ModelField._set_default_and_type(self) 573 self.annotation = self.type_ 575 if self.type_ is Undefined: --> 576 raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"') 578 if self.required is False and default_value is None: 579 self.allow_none = True ConfigError: unable to infer type for attribute "chroma_server_nofile"저는 Python 3.14 버전으로 venv 를 사용중이었는데요.위와 같은 에러가 발생하였습니다.구글에 ConfigError 문구를 검색해도 잘 나오지 않아서 ChatGPT의 도움을 좀 받았는데 이렇게 답하더라구요.- Python 3.14 환경에서 chromadb가 (pydantic v2에서 BaseSettings가 빠진 걸 처리하려다) pydantic.v1 호환 레이어로 떨어지고- 그런데 Pydantic v1 코어는 Python 3.14+에서 제대로 동작하지 않아서, Settings 모델 필드(chroma_server_nofile) 타입 추론이 깨지면서 ConfigError가 납니다.파이썬 버전을 3.12로 낮추어서 venv 를 다시 설정했더니 같은 코드임에도 정상적으로 실행되었습니다.혹시나 저와 같은 이슈를 겪으신 분들은 python 버전을 낮추어보시길 바라요.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
안녕하세요.게시판 관련 강의를 듣는 도중 궁금한 점이 있어 질문을 남깁니다.강의에서는 Snowflake 기반 단순 정렬을 기준으로 커버링 인덱스를 설명해주셨는데요,실무에서는 여러 정렬 조건과 필터, 검색 조건이 함께 붙는 경우가 많습니다.✅ 이런 복합적인 조회 패턴에서도 커버링 인덱스를 중심으로 설계하는 것이 적절한지,아니면 다른 전략을 어떻게 사용해야 하는지 궁금합니다.(설명이 길어질 경우 간단한 힌트라도 부탁드립니다.)💥 걱정하는 부분정렬되는 컬럼 전부에 대해 인덱스를 걸면 더 문제가 발생할 것 같아요.검색 %검색어%의 경우에는 결국엔 full_scan이어서 성능 최적화가 불가능하다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
Iterable 요소는 리스트로 작성해야하는 것 맞나요?
혼자서 실습을 하다보니,함수안에 리스트 형식인지, 문자열 형식인지 등 헷갈리는 부분이 있어서 질문드립니다..
-
미해결스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
질문이 있습니다!!
강의를 보다가 궁금한 부분들이 생겨 질문드립니다!!1. RateLimit Boundary Burst 관련RateLimit을 설명해주시는 부분을 보면서 한 가지 의문이 들었습니다.예를 들어 1초에 100개로 제한을 두었을 때,0.9초 시점에 100개 요청이 들어오고 1초가 되자마자 다시 100개가 들어온다면실제로는 매우 짧은 시간 안에 200개의 요청이 처리될 수 있지 않을까 하는 생각이 들었습니다.찾아보니 이러한 문제를 Boundary Burst라고 부른다는 것을 알게 되었습니다.이를 해결하기 위해:Sliding WindowSliding Window CounterToken BucketLeaky Bucket등의 방식이 있다는 것을 확인했습니다.실무 관점에서는 이런 경계 구간 Burst 문제를 어떤 방식으로 해결하는지 궁금합니다.2. Request Collapsing 관련Request Collapsing을 설명해주신 부분을 보면서,여러 요청을 하나로 모아서 처리하는 방식으로 Golang의 SingleFlight 패턴을 응용하는 방법도 가능하지 않을까 생각해보았습니다.이와 관련해서 아래와 같은 예제 코드도 작성해 보았습니다.private final StringRedisTemplate redisTemplate; private final Map<String, CompletableFuture<?>> singleFlightMap = new ConcurrentHashMap<>(); @Override public <T> T fetch(String key, Duration ttl, Supplier<T> supplier, Class<T> clazz) { String cached = redisTemplate.opsForValue().get(key); if (cached != null) { return DataSerializer.deserializeOrNull(cached, clazz); } CompletableFuture<T> newFuture = new CompletableFuture<>(); CompletableFuture<T> existing = (CompletableFuture<T>) singleFlightMap.putIfAbsent(key, newFuture); if (existing != null) { // 다른 스레드가 실행 중 → 기다림 return existing.join(); } // 내가 실행자 (락 없이 실행) try { T result = refresh(key, ttl, supplier); newFuture.complete(result); return result; } catch (Throwable t) { newFuture.completeExceptionally(t); throw t; } finally { singleFlightMap.remove(key, newFuture); } } private <T> T refresh(String key, Duration ttl, Supplier<T> dataSourceSupplier) { T result = dataSourceSupplier.get(); put(key, ttl, result); return result; }이 방식은 분산 락이나 폴링 방식 없이도 동일 인스턴스 내 요청을 모을 수 있다는 장점이 있다고 생각했습니다.물론 이 방법은 모든 분산 서버 간 요청을 하나로 모으는 것은 아니기 때문에, 서버 인스턴스 수만큼은 요청이 발생할 수 있다는 한계가 있다고 생각합니다.하지만 인스턴스 수가 많지 않다면, 분산 락으로 인한 오버헤드나 복잡성을 줄이면서도 어느 정도 트래픽을 제어할 수 있는 현실적인 선택지가 될 수 있지 않을까 하는 생각이 들었습니다.실무 관점에서는 이런 방식에 대해 어떻게 평가하시는지 궁금합니다.3. Write Through 방식에서의 장애 처리Write Through 방식에서는 일반적으로:DB에 먼저 저장동일 데이터를 Redis에도 저장하는 구조로 이해하고 있습니다.그런데 만약:DB에는 쓰기 성공Redis에는 쓰기 실패하는 상황이 발생한다면, 이 경우를 트랜잭션 실패로 간주해야 하는지 궁금합니다.Redis 장애로 인해 캐시 반영이 실패했을 때,핵심 트랜잭션(DB 쓰기)까지 롤백해야 하는지아니면 캐시는 보조 저장소로 보고 DB 성공을 기준으로 처리해야 하는지두 저장소 간 원자성을 반드시 보장해야 하는 설계인지 실무에서는 어떤 기준으로 판단하는지 궁금합니다.
-
미해결AI Agent 영어 과외 선생님과 함께하는 요즘시대 영어 학습법!
확인이메일은 받았는데, 최종 가입이 안됩니다.
안녕하세요. 4강 사용방법 참고하여 가입을하려하는데, 확인이메일은 받았어요.이메일에있는 링크를 통해 가입하면된다고 하는데..저는 최종 가입이안되네요. 어떻게해야하나요?
-
미해결[기초]코딩 무경험자도 가능! 90분에 뽀개는 구글 시트 업무 자동화
섹션2 강의들이 하얀 화면만 나오고 영상이 보이지 않아요.
섹션2 강의들이 하얀 화면만 나오고 영상이 보이지 않아요.
-
미해결유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
[인앱결제] 질문
안녕하세요! 강의 도움이 많이 되고있습니다.[34. 유니티 인앱 결제 SDK 설치] 강의에서 질문있습니다. 저는 자체 서버가 있고서버에서 Google Cloud Console통해서 영수증 검증 하는 방식으로 구현하려고 하는데요.강의 중 궁금한부분은Q. 구글플레이콘솔과, 유니티클라우드에 라이선스키 등록하는 부분은 필수일까요?1.PackageManager > In App Purchasing 설치는 클라이언트에서 결제를 해야하니 필수2.ProjectSettings > Service에 UnityProjectID 등록 및 라이선스키 등록은 In App Purchasing 패키지가 동작하는것과는 무관한걸로 조사는 했는데 2번 과정이 어떤 용도인지 확인차 질문드립니다!
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다
hyunwoojoa@naver.com 입니다.감사합니다.
-
미해결빌더 조쉬의 클로드 코드와 멀티 에이전트로 내 일상을 모두 자동화하기
강의 녹화 시점 문의드립니다.
상당히 최신으로 만드신것 같은데, 대략적인 일자가 궁금합니다.
-
미해결제미니의 개발실무 - 커머스 백엔드 레거시와 AI 활용편
AI 사용 방법에 대하여...
강의 잘 듣고 있는데요.같은 프로젝트에 대해 다수의 팀원이 개발한다고 가정 할 때현재의 AI를 사용하는 방식이 어디까지 유효할 지 재미니님의 생각이 궁금하여 의견 여쭙습니다.예를 들어 저는 AI를 적극 사용하고 싶을 때, 하지만 팀의 문화가 AI를 위와 같이 그닥 사용하지 않을 때, 강의 속에서 AI를 활용하는 방안을 어디까지 얘기하는게 좋을 지 등이 궁금합니다.제가 느낄 때, 위 강의 과정에서는 md 파일을 꾸준히 업데이트 하며, 히스토리를 쌓아가는 것 같아 의견을 여쭤봅니다.
-
미해결
안녕하세요
안녕하세요
-
미해결빅데이터분석기사 필기 올인원: 3주에 끝내는 완벽 대비
시계열 특징(기출문제문의)
Q) 다음에서 설명하는 시계열의 특성은 무엇인가? (4회)고정된 시간 간격으로 반복되며, 계절이나 특정 기간에 따라 증가나 감소하는 패턴을 보이는 현상 일반적으로 자연 현상이나 문화적, 사회적 이벤트로 인해 발생하며, 단기적인 지속기간을 가짐① 추세(trend)② 주기성(cycle)③ 불규칙(irregular)④ 계절성(seasonality) 3과목 교제의 시 263P,시계열 구성요소를 읽어보면 정답이 Cycle인지 seasonality인지 구분이 어려운데요, 잘 구분하는 방법이 있을까요?
-
해결됨[취업폭격기] 공공기관 전산직(IT) 취업 준비를 위한 정규과정 (기초~고급)
경험정리
안녕하세요 저는 시스템엔지니어로 3년 반 정도 일하고 있는 직장인 입니다 현재 다뤄본 시스템 은 TMS, WIPS, SIEM, 소스코드취약점도구, AP 솔루션을 다뤘습니다 이 중에서 TMS, WIPS, AP 솔루션은 직접 공기업, 금융권에 구축 경험과 장애 처리를 3년 가량 경험을 가지고 있습니다 그리고SIEM, 소스코드 취약점 도구 솔루션의 경우 장애 처리 및 점검 정도만 8개월정도 진행했습니다.이런 경험 정리를 해 볼려고 하는데 구축 위주의 경험을 써야 할지 아니면 다른 스토리텔링으로 써야할 지 모르겠습니다그리고가장 가고 싶은 산업은행의경우 작년에 WIPS 고도화 사업과 운영 교육을 주도해서 사업을 완료 하였습니다. 나중에 산업은행 채용공고가 나올 시 이 부분은 어떻게 풀어서 정리를 해야할까요?(현재 사무실에서도 해당 솔루션들을 전부 설치해서 테스트가 가능 한 환경입니다 )
-
미해결회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)
n8n Self-signed Certificate in certificate chain 이슈
안녕하세요. 강의 수강 중입니다.n8n 세팅부터 쉽지 않네요.gmail Oauth값 세팅 후 Sign in with Google 넘어가면 위와 같은 에러가 나면서 진행이 되지 않습니다. 인증서 문제인 것 같긴 한데.. 어떻게 해결하면 될까요?
-
미해결Obsidian Mastery: Build a Powerful Second Brain for Productivity & Knowledge Management
책데이타가 안나와요
Korean Book Info 설치하였는데 데이타가 강의처럼 나오지 않고 하나도 없습니다. 진행이 어렵네여. 도움부탁드립니다.
-
해결됨AI Agent 영어 과외 선생님과 함께하는 요즘시대 영어 학습법!
영어독해연습/북클럽 영어 단어 저장이 되지 않습니다.
영어 독해 연습과 북클럽에서 단어를 선택해 저장하면 단어장에 저장됐다는 알림은 받지만 실제로 단어장에는 저장이 되지 않는 것 같습니다! 확인해 주시면 학습에 많은 도움이 될 것 같습니다 🙏 감사합니다!
-
해결됨카카오 면접관과 함께하는 워크플로우 기반의 대용량 트래픽 처리 기법
이벤트 발행이 불필요한 것은 어떻게 구분하나요?
Debezium이 데이터베이스 트랜잭션 로그(binlog, WAL 등)를 읽어서 변경사항을 Kafka로 발행한다는 것은 이해했습니다. 그런데 혼란스러운 부분이.... 일반적인 CRUD API 요청도 결국 DB에 변경을 가하는데, Debezium이 이를 어떻게 구분하는지 궁금합니다. 예를 들어주문 생성 API → DB INSERT → 이건 CDC 이벤트로 발행해야 함 사용자 세션 저장 API → DB INSERT → 이건 CDC 불필요 이런 경우에는 어떻게 구분되나요?