묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략
Split 전략 강의 중 질문 있어요
@Slf4j @SpringBootTest class SplitBloomFilterRedisHandlerTest extends RedisTestContainerSupport { @Autowired SplitBloomFilterRedisHandler splitBloomFilterRedisHandler; @Test void mightContain() { SplitBloomFilter splitBloomFilter = SplitBloomFilter.create("testId", 1000, 0.01); List<String> values = IntStream.range(0, 1000).mapToObj(idx -> "value" + idx).toList(); for (String value : values) { splitBloomFilterRedisHandler.add(splitBloomFilter, value); } for (String value : values) { boolean result = splitBloomFilterRedisHandler.mightContain(splitBloomFilter, value); assertThat(result).isTrue(); } for (int i = 0; i < 1000; i++) { String value = "notAddedValue" + i; boolean result = splitBloomFilterRedisHandler.mightContain(splitBloomFilter, value); if (result) { log.info("value={}", value); } } } } 위 코드는 SplitBloomFilterRedisHandlerTest 인데요.강의 중 코드입니다 1000 크기에 0.01 오차율의 Bloom Filter 를 만들고1000개의 데이터를 넣고 False Positive 까지 검증해보는 코드인데요.질문입니다Split 전략을 배우기 전에순수한 Bloom Filter 구현 강의에서도 위와 동일한 테스트 코드가 있는데요이 때, 순수한 Bloom Filter 의 한계로써생성한 Bloom Filter 크기를 초과하여 데이터를 넣으면 비트 1이 많아져 오차율이 증가하고그로 인해 False Positive 데이터가 많이 조회되는 현상을 살펴보거든요.그리고 그 해결책으로처음부터 큰 Bloom Filter 를 만드는 것 이외에Split / Sharding / Sub Filter 전략이라고 말씀하시는데요근데 위 Split 전략의 테스트 코드에서 BloomFilter 크기는 1000으로 만들고 데이터를 훨씬 초과하여 2000개 만들어 넣어보면순수한 Bloom Filter 때처럼 False Positive 데이터가 많이 조회됩니다.저는 PC 가 느려서 False Positive 를 1000번으로 조회하였고오차율 (0.01) 에 의하면 약 10개의 False Positive 가 나와야 하는데데이터 1000개를 저장했을 때는 오차율에 맞게 8개로 떨어지는데데이터 2000개를 저장했을 때는 오차율을 훨씬 넘어갑니다제가 코드를 잘못 따라 친건지.. Split 도 원래 그런건지..제 질문 의미가 전달될지는 모르겠지만.. 명확하게 개념 정리가 되지 않아 질문드립니다
-
미해결스프링 핵심 원리 - 고급편
구체 클래스를 상속받아 확장한 형태도 클래스패턴/데코레이터 패턴이라고 칭하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이렇게 상속을 통해 확장하여 구현하는 형태도 프록시 패턴/데코레이터 패턴이라고 같이 칭하는 걸까요?!
-
미해결[React 2부] 고급 주제와 훅
useEffect 의존성 질문
부수 효과로 popstate event listener를 등록하는 부분에서useEffect의 의존성 배열에 path값을 넣어주셨는데, 안 넣는게 맞는 거 아닌가요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
User Memory를 선택 시 파일이 열리지 않고 화면과 같이 뜹니다.
-
미해결타입스크립트로 배우는 Next.js 16+ 완전 정복 : 기초부터 최신 아키텍처까지
구지 react를 사용하는 이유가 그럼 있는가?
안녕하세요 수코딩님 갑자기 의문이 든 생각인데 next js 는 보면 프레임워크라서 여러 기능을 제공하고 편리하게 사용할수있는것같습니다 seo문제도 해결해주고 무엇보다 use client를 사용하면 클라이언트 컴포넌트로서 작동도 되고요 근데 그럼 의문이 드는게 둘다 가능하고 선택가능한 next를 쓰는게 무조건 이득이 아닌가 라는 생각이 들엇습니다. 그냥 서버사이드쪽만 서버사이드 좀하고 리액트가 필요한쪽은 클라이언트 사이드 렌더링으로 하면 되는 이야기인것같아서요
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.
예제에서는 도메인에 별도 PasswordEncoder 인터페이스를 정의해 사용하고 있습니다. 만약에, Member 도메인이 Spring Security의 PasswordEncoder 인터페이스를 직접 의존한다면, 구현체가 아니라 인터페이스를 참조하더라도 순수 도메인 설계 관점에서 위반으로 봐야 할까요? 저는 인터페이스 의존이라 괜찮을 수 있다고 생각했지만 AI는도메인에서는 자체 PasswordEncoder 포트만 사용하고, Spring Security PasswordEncoder는 인프라 어댑터에서 위임하는 것이 좋다.고 제안했습니다. 토비님은 어느 쪽이 더 적절하다고 보시는지, 판단 기준도 함께 듣고 싶습니다.
-
미해결코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
함수에 대한 노션 정의
강의 동영상은 바꿀 수 없으시겠지만 노션을 활용하시더라도 프롬프트 상의 용어들에 대한 간단한 설명이 있었으면 합니다.초보입장에서는 프롬프트를 복붙하기만 해서는 성장이 어려울 듯 합니다.디스코드에서 공유해 주신 md 파일들을 활용할때 보다는 조금 더 배움이 있었으면 하는 욕심이니 이해 바랍니다.예로 프롬프트에requests와 BeautifulSoup을 사용해줘. 라는 부분이 있는데 이게 함수인지 호두님이 만든 용어인지 궁금합니다. 느낌은 함수 일 듯한데 초보입장이라 ㅜㅜ;;;기존에 다른 곳에서 보면 필요한 여러 모듈들을 설치하고 조건을 타 컴에서 맞출 때 requests.txt 등으로 정리해서 가져 가는 것으로 이해 했는데 여기에서의 requests 의미를 이해 못하고 있습니다.get_top_gainers(market) 함수를 만들어줘.이 부분도 별도로 정의하면 임의로 함수를 만들어 정의 가능한 건지 이미 있기에 정의 만 한 것인지 궁금합니다.수 많은 프롬프트를 전부 정의 해 주시기는 어렵겠지만 함수 부분 만의라도 (색상등으로) 분리 해 주시면 네이버등에서 찾아서 공부하고 차후 활용할 때 좋을 것 같아서 의견 드립니다.아울러 강의 시점과 현재의 주식시장 조건이 달라 결과치도 다르고 AI가 대응하는 부분도 달라 생성되는 파일도 파일명도 다른 듯 합니다.이 부분도 프롬프트에 반영하여 폴더에 생성되는 생성 파일명과 갯수 만이라도 같은 결과치가 되었으면 합니다.
-
미해결딱 1시간! 내 컴퓨터에 심는 '나만의 AI 사수' 만들기 (Antigravity 바이브코딩) [소스코드 제공]
Google Gravity 로그인이 되지 않습니다.
안녕하세요. Google Gravity 로그인이 되지 않습니다. 반복적으로 구글 로그인 화면만 나오는데 혹시 원인과 해결 방안 안내 가능할까요?
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
클로드 코드 붙여넣기 설정
윈도우11 환경에서 cursor내 터미널에서 git-bash로 claude 실행하면3줄 이상 복사 후 붙여넣기를 할때 이미지처럼 표시되는데 이 설정 해제하는방법은 무엇인가요?클로드코드한테 물어봐서"pastePreview": false, "pastePreviewExpanded": true "display": { "pastePreviewLines": 10 }setting.json파일에 위 코드를 추가해도 적용이안됩니다.
-
미해결OpenAI를 활용한 나만의 AI 에이전트 만들기 (Agent Builder, GPT-5, Chatkit, Cloudflare, MCP, Fine Tuning, CoT 등)
3강 초대 이메일이 안옵니다
3강의 1:44 쯤에 설문 조사 링크 제출했는데 작성한 이메일에 초대 메일이 안옵니다. 조치 부탁드립니다.
-
미해결Windows System 프로그래밍
Critical Section과 SRWlock의 차이
Spin Count 초과 이후 스레드가 'Blocked' 상태에서 깨어나는 과정에서의 Critical Section과 SRWLOCK의 차이가 궁금합니다. 영천님의 LockTest 예제 코드를 이용하여 Lock을 선점한 스레드가 Lock을 해제하기 전에 Sleep() 코드를 추가한 상태에서 디버깅을 시작해보았습니다. (대기 중인 스레드의 Spin Count 초과 유도) 우선 두 경우 모두 락을 선점한 스레드가 락을 해제하면서 어떤 메모리 주소와 맵핑된 Thread ID를 읽어와서 내부적으로 NtAlertThreadByThreadId()의 인자로 넘겨주는것은 동일하였습니다. 하지만 Critical Section의 경우에는 LeaveCriticalSection() 내부에서 RtlpWakeByAddress()를 추가로 호출하고 대기중인 Thread ID를 얻어온 뒤 그 함수의 내부에서 NtAlertThreadByThreadId()를 호출하는 반면, SRWlock의 경우에는 ReleaseSRWLockExclusive() 내부에서 다른 함수 Call 없이 Critical Section보다는 보다 간소화(?)된 동작으로 Thread ID를 얻어오고 곧바로 NtAlertThreadByThreadId()를 호출하였습니다. 이걸보고 든 의문인데 영천님 블로그에 올라와있는 'Spin Count 도중 YieldProcessor() 관련 내용'을 제외하고 혹시 Critical Section과 SRWlock사이 성능 차이의 이유는 애초에 SRWlock은 Spin Count를 초과한 상태일때 ReleaseSRWLockExclusive()을 호출한 스레드에서 보다 간소화된 동작과 불필요한 함수 Call 없이 Thread ID를 얻어올 수 있도록 어떠한 정보(?)를 추가해준 뒤 Blocked 상태에 빠지게되는 등의 기능 때문이라고 봐도 될까요? 아직 근거 없는 추측이긴 합니다...
-
미해결[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
variables 이름 지을때 소문자,대문자 사용에 관해..
19:51 에 italic 등록 할 때 Name은 소문자로 시작하고 Value는 대문자로 시작하도록 값을 넣으셨는 데 이유가 있나요?bold님 만의 규칙인가요? 아니면 실무에서 보통 그렇게 하는지 궁금합니다.
-
미해결직장인을 위한 '나만의 AI 직원 만들기' [인프런 어워드 수상]
강의 들이 결제해야만 하는 강의만 구성된 겁니까
강의 제목이 결제해야만 하는 걸로 알려주는 건만 있는 지는 모르고 결제를 했습니다.
-
미해결직장인을 위한 '나만의 AI 직원 만들기' [인프런 어워드 수상]
프롬포트 챗붓
프롬포트 만든 거를 저는 어떻게 주는 가요
-
미해결성장과 상금은 누구의 것? 인프런 3주 '서바이벌' 챌린지 : All or Nothing!
오늘도 습관을 이어서 3월로...
너무 몸이 무겁고 졸립지만 퇴근 후 공부 뿌듯하긴하네요 습관만들어서 3월 챌린지로 가즈아
-
미해결한 입 크기로 잘라먹는 타입스크립트(TypeScript)
호출 시그니처 질문
인터페이스 강의 > 8분 16초 설명에서요메서드 오버로딩을 구현하고 싶을 때는 아래 강의 코드처럼 호출 시그니처를 사용하면 된다고 하셨는데요interface Person { sayHi(): void; sayHi(a: number, b: number): void; }그럼 아래처럼 정의된 Formatter 타입에서 1,2번 라인 둘 다 호출 시그니처로 보면 될까요?interface Formatter { (value: string): string; // 1. 호출 시그니처 (Call Signature) age(value: number): string; // 2. 호출 시그니처 (Call Signature) age: (value: number) => string; // 3. 함수 타입 속성 (Property with Function Type) }저는 이해하기론 객체 안에서 (value: string): string; 이렇게 이름 없이 정의된 것이 호출 시그니처이고age(value: number): string; 이렇게 정의된건 객체의 메서드 타입을 정의한 걸로 이해했었는데두 가지 형태 모두 호출 시그니처라고 보면 되는건가요? AI한테 질문하니 메서드 시그니처라고 하던데, 이런 용어는 없는거같더라구요
-
해결됨실리콘밸리 엔지니어와 함께하는 DBT
dbt run 이후 에러 발생(customer_status 없음 )
$ dbt run 14:24:31 Running with dbt=1.11.2 14:24:31 Registered adapter: postgres=1.10.0 14:24:32 Found 11 models, 37 data tests, 1 seed, 2 snapshots, 6 sources, 468 macros 14:24:32 14:24:32 Concurrency: 1 threads (target='dev') 14:24:32 14:24:32 1 of 5 START sql table model dvdrental.dim_customer_status ..................... [RUN] 14:24:32 1 of 5 ERROR creating sql table model dvdrental.dim_customer_status ............ [ERROR in 0.07s] 14:24:32 2 of 5 START sql table model dvdrental.dim_customer ............................ [RUN] 14:24:33 2 of 5 OK created sql table model dvdrental.dim_customer ....................... [SELECT 599 in 0.06s] 14:24:33 3 of 5 START sql table model dvdrental.dim_film ................................ [RUN] 14:24:33 3 of 5 OK created sql table model dvdrental.dim_film ........................... [SELECT 1000 in 0.06s] 14:24:33 4 of 5 START sql view model dvdrental.int_rentals_enriched ..................... [RUN] 14:24:33 4 of 5 OK created sql view model dvdrental.int_rentals_enriched ................ [CREATE VIEW in 0.06s] 14:24:33 5 of 5 START sql incremental model dvdrental.fct_payments ...................... [RUN] 14:24:33 Running incrementally with lookback interval: 3 days 14:24:33 5 of 5 OK created sql incremental model dvdrental.fct_payments ................. [INSERT 0 182 in 0.11s] 14:24:33 14:24:33 Finished running 1 incremental model, 3 table models, 1 view model in 0 hours 0 minutes and 0.69 seconds (0.69s). 14:24:33 14:24:33 Completed with 1 error, 0 partial successes, and 0 warnings: 14:24:33 14:24:33 Failure in model dim_customer_status (models\marts\dim_customer_status.sql) 14:24:33 Database Error in model dim_customer_status (models\marts\dim_customer_status.sql) relation "dvdrental.customer_status" does not exist LINE 34: left join "dvdrental"."dvdrental"."customer_status" s ^ compiled code at target\run\learn_dbt\models\marts\dim_customer_status.sql 14:24:33 14:24:33 compiled code at target\compiled\learn_dbt\models\marts\dim_customer_status.sql 14:24:33 14:24:33 Done. PASS=4 WARN=0 ERROR=1 SKIP=0 NO-OP=0 TOTAL=5dbt run 돌리고, 현재 위와 같은 에러가 발생하고 있습니다. customer_stauts에 대한 테이블이 없어서 에러가 발생하고 있는 데, 제공된 자료에서는 customer_status를 확인할 수가 없습니다.
-
미해결대세는 쿠버네티스 (Helm편)
helm v4 release
안녕하세요! helm을 이제 공부하려고 첫 강의를 보고 있습니다.이 강의는 helm v3 기반인 것 같은데,새로 helm v4가 출시된 것 같아요. v3 기반이어도 이 강의를 쭉 들어도 무방한지,그리고 참고삼아 v4부터는 무엇이 달라지는건지 알 수 있을까요? 감사합니다.
-
해결됨코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
Claude CLI 설치 문의
Antrigravity에서 Claude CLI 설치가 진행이 안됩니다.영상에 나온대로 노션에 적혀있는 네이티브 인스톨러 부분을 Drag해서 붙여넣고설치를 진행해줘라고 똑같이 적었는데Loading / Generating / Working..만 뜨고 아무것도 진행되지 않네요해결방법 문의드립니다 ㅜ
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지
스타터킷 사용방법
안녕하세요.현재 섹션 13, "Playwright MCP 란?" 까지 수업을 수강한 학생입니다.가르쳐주신대로 성실하게 스타터킷을 클로드 코드와 공식 문서를 이용하여 만들었습니다. 다만 제가 궁금한것은 본 스타터킷을 어떻게 활용하는지 입니다. 배포한 웹페이지를 통해 사람들이 코드를 퍼가서 이용하는 방식인건지, 아니면 제가 만든 소스코드의 산출물일 뿐인지 궁금합니다.강의에서는 어느 용도로 쓰인다고는 나와있지만, 어떻게 활용할 수 있는지는 안나옵니다. (예를들어 코드를 복사하여 그대로 CLI 등에 붙인다는지 등이요..) 제가 만든 스타터 킷의 기술 스택 란은 아래와 같이 돼있는데 이런경우 딱히 복사를 한다고도 보기 어렵습니다. 어떤식으로 본 스타터킷을 사용할 수 있는지 가이드 부탁드립니다!만약 추후 인강에 있는 내용이라면 인강 회차 이름 말씀부탁드립니다!감사합니다 아래는 제가 만든 페이지 입니다.https://starterkit-test.vercel.app/examples Next.js 기반이라 그런지 아니면 정적인 페이지가 아니라 그런지 github로 배포가 안되어 vercel을 통해 올렸습니다