묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
새로운프로젝트를 만들었는데 상단에 device종류가 뜨지 않습니다
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://inf.run/54jjz - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 새로운 프로젝트를 만들었는데 상단에 no device selected가 뜨면서 강의에서 보여주신것처럼, android기기 목록이 뜨는게 아니라 Chrome(Web),Edge(Web),Windows(desktop),Open android Emulator : Flutter Inflearn Refresh 이렇게만 뜨고 있습니다 왜 저는 강의처럼 디바이스 기기이름이 뜨지 않는걸까요? main.dart에 있는 화면이 뜨지 않습니다
-
미해결웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
insecure_website 에러
자꾸 warning이 뜨는 이유가 뭘까요..? mysql -u root -p 입력 후 작성하는 패스워드랑 동일하게 common.php에서 변경하고 저장했는데도 저렇게 같은 warning이 나옵니다..!
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
Tailwindcss 설정
npx tailwindcss init 작성시 'tailwind'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다. 라고 뜹니다 코드를 다르게 작성해야하나요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
지역변수가 스택? 레지스터
스택은 렘에서 할당되는 공간인데 main 함수에서 선언된 localValue 변수는 지역변수로 스택에 할당될텐데 왜 레지스터 에 할당되어 있는지 모르겠습니다. 레지스터도 스택영역인건가요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
어빌리티의 쿨다운 GameEffect에 대하여
안녕하세요. GAS Ability 의 Cooldown GameplayEffect (이하 GE) 를 등록하는 부분에 대해 질문이 있습니다. 먼저 실습을 5.4 버전으로 진행하고 있음을 알립니다. 강의 내용에서는 Cooldown GE 적용 시 Cooldown GE BP 를 생성하여 HasDuration 옵션으로 GameplayTag 를 설정Cooldown을 적용하려는 GA의 Ability Block Tag 에 Cooldown GE에 설정한 GameplayTag를 추가위와 같이 진행을 해주셨는데, 5.4에서는 2번 과정이 불필요했습니다.엔진 코드 내부에서는 CheckCooldown 함수 내부에서 Cooldown GE 의 GrantedTag로 직접 쿨다운 체크를 하는걸로 보입니다.이 부분이 5.4가 되면서 개선된 부분일까요?
-
미해결Playwright 기초 - 기초적인 활용법과 핵심 원리
Playwright 디버그 모드
첫번째 사진두번째 사진 첫번째 사진은 초록색 화살표 표시가 생겨서 디버깅을 할 수 있는데,두번째 사진은 새로고침, 종료 후 다시 실행 등등 다양한 방법을 시도했음에도 불구하고 초록색 화살표가 생기지 않아서 디버깅을 할 수 없습니다.Playwright Test for VSCode는 설치 했습니다.원인이 무엇일까요?
-
미해결
김영한쌤 강의 추천 부탁드려여
안녕하세요. 김영한쌤 강의 중에서jpa와 타임리프를 활용한 기본적인 crud 강의를듣고 싶은데 어떤게 제일 적절할지 추천 가능할까요??
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
docker hub에서 이미지못가져와요 ㅠㅠ
강의대로 그대로 하고 마지막까지 왔는데2121-deploy 하니까 파드 ImagePullBackOff 상태가 되네요...혹시 dockerhub사이트에서 accessToken 발생하고 secret생성하고 sa등록해주는 그런 절차같은게 필요하나요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
Mock & Stub 에 대한 이해
두 가지 궁금증이 생겨 질문드립니다!!Mock과 Stub에서 혼란을 느끼는지?Mock & Stub 에 대한 이해를 하였는지? // OrderTest.java import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; public class OrderTest { @Test void 주문_총_금액을_계산한다() { Product apple = new Product("사과", 1000); Product banana = new Product("바나나", 2000); Order order = new Order(); order.addProduct(apple); order.addProduct(banana); assertEquals(3000, order.totalPrice()); } }// OrderTest.java import org.junit.jupiter.api.Test; import static org.mockito.Mockito.*; import static org.junit.jupiter.api.Assertions.*; public class OrderTest { @Test void 주문_총_금액을_계산한다_Product_Mock_사용() { Product apple = mock(Product.class); Product banana = mock(Product.class); when(apple.getPrice()).thenReturn(1000); when(banana.getPrice()).thenReturn(2000); Order order = new Order(); order.addProduct(apple); order.addProduct(banana); assertEquals(3000, order.totalPrice()); } } 두 테스트에서 생각을 정리하다 보니 저는 마틴 파울러의 test double의 stub 과 mock 에 대한 개념보다TTD or BDD 스타일의 테스트 코드를 작성하다가 테스트의 편의성을 위해 Mokito을 통한 Mock 테스트를 먼저 접하게 된 후 마틴 파울러의 test double의 개념을 접하게 되었습니다. 마틴 파울러의 Mock 과 Stub 테스트에서 혼란스러운 이유테스트 코드를 작성하다보면 자연스럽게 then에 해당하는 부분은 대부분 상태(값)을 검증하는 테스트를 위주로 테스트 코드를 작성하게 되는거 같습니다.주문_총_금액을_계산한다() -> 단위 테스트로 상태(값)을 검증주문_총_금액을_계산한다_Product_Mock_사용() -> 나는 Mockito의 mock 테스트로 상태(값)을 검증 test doublestub -> 상태(값) 검증mock -> 행동 검증위 와 같이 상태(값)을 검증하는 테스트를 하다보니 stub 테스트와 Mockito 의 mock을 사용한 테스트을 동일시 보게 된거같습니다.Mockito의 mock 테스트의 개념과 test double의 mock 테스트가 동일한 개념이 아니다. Mokito의 mock을 사용하여 상태(값)을 검증하는 테스트를 하다보니 test double의 stub 테스트를 Mock 테스트 하였다라고 생각한게 아닌가? 테스트 케이스 stub 과 mock 테스트 구별하기주문_총_금액을_계산한다()해당 테스트는 실제 객체를 이용하여 상태(값)에 대한 검증을 한다. -> Stub 테스트주문_총_금액을_계산한다_Product_Mock_사용()해당 테스트는 Product 를 Mock 하여, order의 totalPrice 을 검증 한다. -> Mock?, Stub? 주문_총_금액을_계산한다_Product_Mock_사용()를 어떻게 바라 볼 것인가?test double의 mock 테스트를 준비 하였지만 검증 부분을 잘못하였다. test double의 stub 테스트를 실제 객체가아닌 가짜객체로 테스트 하였다.@Test void 주문_총_금액을_계산한다_Product_Mock_사용() { // given Product apple = mock(Product.class); Product banana = mock(Product.class); when(apple.getPrice()).thenReturn(1000); when(banana.getPrice()).thenReturn(2000); Order order = new Order(); order.addProduct(apple); order.addProduct(banana); // when int total = order.totalPrice(); // then verify(apple).getPrice(); // apple.getPrice()가 호출되었는지 검증 verify(banana).getPrice(); // banana.getPrice()가 호출되었는지 검증 }주문_총_금액을_계산한다_Product_Mock_사용()를 위와 같이 수정한다면 test double에서 이야기하는 mock 테스트이지 않을까 생각이 듭니다. 물론 모든 테스트를 test double의 Mock, Stub 테스트라는 틀에 맞춰 작성해한다는 아니라고 생각이 듭니다.주문_총_금액을_계산한다_Product_Mock_사용()가 마틴 파울러가 이야기하는 test double의 개념에서 어떻게 생각해 볼 것인가? 에대한 궁금증 우빈님의 생각이 궁금하기도 합니다. 제가 잘 이해를 하였는지 확인이 필요하여 질문드립니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
안녕하세요 이것이 내부호출 예제가 맞는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]// 인증 번호 확인@Transactionalpublic void confirmAuthenticationInfo(AuthenticationRequest.Confirm request){MemberCertificationHistory history = findById... // 엔티티 조회...validateExpiration(history);...}// 만료 일시 검증@Transactionalprivate void validateExpiration(MemberCertificationHistory history){if(history.isExpired()){processExpiration(history); // 만료 처리 . 트랜잭션 분리throw new ServerException("만료됨"...);}}// 인증 정보 만료 처리@Transactional(propagation = Propagation.REQUIRES_NEW)private void processExpiration(MemberCertificationHistory history){history.getMemberCertificationInfo().processExpiration();memberCertHisRepository.save(history); // 엔티티 저장}안녕하세요 위 코드에서 궁금한점이 있는데 내부호출에 관한 내용인지 질문드립니다.간단하게 confirmAuthentication() , validateExpiration() , processExpiration() 3가지 메서드가 있는상황이구, 차례로 호출하며 validateExpiration()에서 throw를 던지는 상황입니다. 문제는validateExpiration()를 내부에서 트랜잭션이 분리 처리(REQUIRES_NEW)되어 있는 processExpiration()를 타게되고, processExpiration()는 분리된 트랜잭션이니 .save()를 통해 저장이되고, 다시 validateExpiration()으로 돌아와 throw를 처리하게 되어 processExpiration()에서 저장된것은 롤백되지 않을것으로 예상하였습니다. 그런데 로그를보니 insert쿼리도 나가지 않고, 따로 롤백에 관한 내용도 찍히지 않았습니다.따라서 내부호출이 된건가 생각을해보니 제가 아는 내부호출이라는 문제는동일한 클래스에서 트랜잭션이 적용되지 않은 메서드에서 트랜잭션이 적용된 메서드 호출시 내부 호출이 발생하는걸로 알고있는데 위 예제에선 이미 최상위 메서드에서 트랜잭션이 적용되어 있는상태인데 따로 생성된 트랜잭션이 실행되지 않아서 혹시 이건 내부호출 문제가 맞는것인지, 아니면 다른 제가 간과한것이 있는지 궁금하여 질문드립니다 .
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
FutureTask 객체의 사용후 GC 유무
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 Future 관련 공부를 하다가 궁금증이 생겨 질문 남겼습니다. ThreadPoolExecutor 객체 안에 FutureTask 객체를 만들고 그 안에 task(Callable 구현 객체)를 보관한다고 알고 있습니다. 그러면 스레드풀에 있는 스레드가 해당 Future 작업을 완료한 후에 main 스레드에서 future.get()으로 값을 반환 받고 난 후에 해당 future 객체는 GC가 알아서 처리해주는건가요?
-
미해결타입스크립트 시작하기
lodash 가 안될때
npm install lodashnpm install @types/lodash위 명령어로 타입정의파일까지 설치했는데요근데 강사님처럼 자동 import 도 뜨지 않고 타입정보도 뜨지 않습니다.혹시 뭘 잘 못한걸까요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
tailwindcss 오류관련 문의 드립니다 ㅠㅠ
버젼이 달라서인지.. CNA 했을 때tailwind.config.js 파일이 없었습니다.강의에서는 원래부터 존재하던데..그래서 어떻게어떻게 추가를 했는데.Error: It looks like you're trying to use tailwindcss directly as a PostCSS plugin. The PostCSS plugin has moved to a separate package, so to continue using Tailwind CSS with PostCSS you'll need to install @tailwindcss/postcss and update your PostCSS configuration.라는 에러가 끝나지를 않네요 ㅠGPT한테 열심히 물어봤는데 도저히 해결이 안돼서 문의드립니다.밑은 제가 설정해둔 코드입니다.tailwind.config.js/** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./src/**/*.{js,ts,jsx,tsx,html,css}", // 필요한 파일들 포함 "./app/**/*.{js,ts,jsx,tsx}", // Next.js의 `app` 폴더 추가 "./components/**/*.{js,ts,jsx,tsx}", // 컴포넌트 폴더 추가 ], theme: { extend: { colors: { 철수가좋아하는색깔: "#3498db", // 나만의 부트스트랩 만들기 영희가좋아하는색깔: "green", }, }, }, plugins: [], }; postcss.config.jsmodule.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, }, }; globals.css/* @import "tailwindcss"; */ @tailwind base; @tailwind components; @tailwind utilities; 로 해도 안되고,@import "tailwindcss"; 도 안됩니다...
-
해결됨개발자를 위한 쉬운 리눅스
windows .bashrc 파일 없음
vi ~/.bashrc 명령어를 입력하면빈 화면이 나와요. ~/.bashrc 파일이 없으면 따로 생성해서 작성해야하나요 ?
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
npm 오류
nodejs 를 설치하면 npm 도 같이 설치되는걸로 알고 있었는데 아닌가요?node -v 명령어로 설치 버전을 확인했구요,npm -v 로 확인하니까 아래처럼 메시지가 떠서요....그래서 npm init 같은 명령어를 실행해도 아래처럼 똑같은 에러메시만 뜹니다. ㅡㅡ노드도 다시 설치해보고 검색해서 환경변수 어쩌고 하는것도 다 해봐도 해결이 안되어서요 ㅡㅡ
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
블로그 작성
안녕하세요. 한 입 크기로 잘라먹는 Next.js(v15)를 수강하고 있는 학생입니다.학습한 내용을 블로그에 정리하고 싶은데, 인프런 내 강의 캡처 기능을 사용하여 시각 자료도 캡처해서 블로그 정리할 때 사용해도 괜찮을까요?좋은 강의 만들어주셔서 감사합니다! :)
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
취약환경 구축 not found 에러?
mysql 로그인도 했고 query.txt 복사해서 붙여넣기도 잘 했는데 '127.0.0.1/insercure_website' 접속시 저런 오류가 납니다. 어디 문제일까요? 질문 내역 중 저랑 같은오류가 생긴 분이 질문하신거 답변 확인해봤는데도 잘 해결이 안됩니다.!
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
p5 구글드라이브 url 404 에러 발생
p5 구글드라이브 url 404 에러로 인해서 접속이 되지 않습니다 해결방법이 있을까요...?
-
미해결RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
re-rank score 관련 아래 질문입니다.
학습 관련 질문이 있으시면, 상세하게 남겨주세요.문제가 발생한 부분의 코드를 함께 올려주세요.수업 영상 몇 분/초 구간인지 알려주세요.
-
미해결RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
ㄱ
from langchain.retrievers.document_compressors import DocumentCompressorPipeline from langchain_community.document_transformers import EmbeddingsRedundantFilter # 중복 문서 제거 redundant_filter = EmbeddingsRedundantFilter(embeddings=embeddings_model) # 쿼리와 관련성이 높은 문서만 필터링 relevant_filter = EmbeddingsFilter(embeddings=embeddings_model, similarity_threshold=0.5) # Re-ranking re_ranker = LLMListwiseRerank.from_llm(llm, top_n=2) pipeline_compressor = DocumentCompressorPipeline( transformers=[redundant_filter, relevant_filter, re_ranker] ) pipeline_compression_retriever = ContextualCompressionRetriever( base_compressor=pipeline_compressor, base_retriever=chroma_db.as_retriever() ) question = "테슬라 회장은 누구인가요?" compressed_docs = pipeline_compression_retriever.invoke(question) print(f"쿼리: {question}") print("검색 결과:") for doc in compressed_docs: print(f"- {doc.page_content} [출처: {doc.metadata['source']}]") print("-"*100) print()`(4) DocumentCompressorPipeline` - 여러 압축기를 순차적으로 결합하는 방식 - BaseDocumentTransformers를 추가하여, 문서를 더 작은 조각으로 나누거나 중복 문서를 제거하는 등의 작업도 가능여기에서 result = chain.invoke() 로 받아서 result의 데이터를 보면, context = result['context'][i] query_similarity_score = context.state['query_similarity_score']이렇게 similarity_score 처럼 rerank score같은거 보고싶은데,# 크로스 인코더를 사용하여 유사성 점수를 계산합니다. sentence_pairs = [[query, prediction]] similarity_scores = cross_encoder_model.predict(sentence_pairs)이런식으로 계산을 해야하나요? 추출하고 싶은데 방법을 잘 모르겠습니다.