inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

상속과 그에 따른 메모리 구조 질문

미해결

김영한의 실전 자바 - 기본편

[질문 내용] (05:30 참고) privateValue, defaultValue는 접근제어자에 의해 Child에서 접근이 불가능한 것까진 알겠습니다. 두 멤버도 상속이 되긴 하는건가요? 그리고 Child가 Parent를 상속하는 것으로 설정하면, Child 인스턴스를 생성했을 때 내부에 printValue, defaultValue 두 멤버가 생기긴 하는데 접근을 못 하는건가요, 아니면 애초에 두 멤버는 인스턴스 안에 안 생기는건가요?

  • java
  • 객체지향
guevaradelas 댓글 1 좋아요 0 조회수 91

window 11 환경 셋팅

해결됨

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

안녕하세요! langraph를 업무에 사용예정이여서 강의 수강중입니다. 윈도우 환경셋팅이 필요해서 다음 에러를 해결해서 개발환경 셋팅을 완료했습니다. 앞으로 강의를 수강하는데 다음 uvloop 패키지가 없어도 괜찮을까요? chroma-hnswlib 도 무시하고 설치로 해도 괜찮은지 궁금합니다. 가능하다면 윈도우 환경에서의 패키지 모듈 관리도 되면 좋을 것 같습니다 🙂 uvloop window 환경에서는 무시하고 설치하도록 변경 'uvloop; sys_platform != "win32"', # ⬅ Windows에서는 설치 안 함 chroma-hnswlib Visual C++ Build Tools 설치

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

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

미해결

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] (05:30부터) publicValue와 protectedValue에는 어떻게 접근한건가요? : publicValue, protectedValue는 타 클래스인 Parent의 멤버변수이고, 그것에 접근하려면 Parent의 인스턴스를 생성한 다음(인스턴스 변수는 'p'라 하겠습니다) 'p.'을 앞에 적어야 접근이 가능한 것 아닌가요? 즉 저는 p.publicValue같은 식으로 불러야 하는 것으로 알고있는데, 여기서는 어떻게 'p.'없이 접근을 한건지 궁금합니다 ㅠ

  • java
  • 객체지향
guevaradelas 댓글 1 좋아요 0 조회수 91

Gamil Trigger 관련 이슈

해결됨

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

Gmail Trigger가 Naver에서 받은 이메일에는 반응하지 않네요? 의도한건지 이슈인지 모르겠지만 저는 당연히 해당 이메일 계정으로 온 모든 메일에 대해 반응할 거라 생각했는데 아니라서 당황했네요. 다른 분들 참고하시라고 글 남깁니다!

  • n8n
  • 인공지능(ai)
  • langchain
  • ai-활용-(ax)
  • langgraph
Hyunsang-Coder 댓글 3 좋아요 0 조회수 106

2.8 Multi-Agent 시스템과 RouteLLM 강의에서

해결됨

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

from langchain_core.prompts import ChatPromptTemplate from pydantic import BaseModel, Field from typing import Literal class Route(BaseModel): target: Literal["income_tax", "llm", "real_estate_tax"] = Field( description="The target for the query to answer" ) router_system_prompt = """ You are an expert at routing a user's question to 'income_tax', 'llm', or 'real_estate_tax'. 'income_tax' contains information about income tax up to December 2024. 'real_estate_tax' contains information about real estate tax up to December 2024. if you think the question is not related to either 'income_tax' or 'real_estate_tax'; you can route it to 'llm'.""" router_prompt = ChatPromptTemplate.from_messages( [("system", router_system_prompt), ("user", "{query}")] ) structured_router_llm = small_llm.with_structured_output(Route) def router(state: AgentState) -> Literal["income_tax", "real_estate_tax", "llm"]: """ 주어진 state에서 쿼리를 기반으로 적절한 경로를 결정합니다. Args: state (AgentState): 현재 에이전트의 state를 나타내는 객체입니다. Returns: Literal['income_tax', 'real_estate_tax', 'llm']: 쿼리에 따라 선택된 경로를 반환합니다. """ query = state["query"] router_chain = router_prompt | structured_router_llm route = router_chain.invoke({"query": query}) return route.target 안녕하세요 강병진 강사님:) 혹시 위 코드에서 router_prompt없이 Route class의 Field에만 프롬프트 지침을 넣어도 문제가 없을까요? 테스트 결과는 잘 나왔습니다. 아래는 수정 코드입니다. class Route(BaseModel): target: Literal["real_estate_tax", "llm", "income_tax"] = Field(description = """ 당신은 사용자의 질문을 보고 적절한 라우터를 연결해주는 전문가입니다. 부동산에 관련된 질문은 real_estate_tax라우터를, 소득세에 관한 질문은 income_tax라우터를, 그 외의 질문은 llm라우터로 연결해주세요. """) def router(state: AgentState): query = "역삼역 떡볶이 맛집을 알려주세요 " router_llm = llm.with_structured_output(Route) response = router_llm.invoke(query) return response.target print(router({})) >> 'llm'

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

tool의 Output Size 관련 질문

미해결

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

MCP Server 나 langgraph 나 모두 tool 입니다. 만약 tool 에서 결과 값이 너무 많이 나오는 경우 어떻게 처리 해야 할까요? 예1) MCP Server의 "우리 회사 고객 정보중 매출 얼마 이상 되는 정보를 보여줘?" 라고 고객이 입력 했는데, 그 고객 정보가 10만명이 나와서 tool 의 결과가 너무 커 버리는 예) DB의 Limit 등으로 어떻게 하더라도 다음 호출을 LLM이 잘 못해주는 경우가 있음. 예2) 슬랙의 채널을 보여줘 했을 때, 슬랙의 채널이 너무 많은 경우 ... 결국 전부다 예3) 소스코드를 분석해 줘 소스코드가 1만 - 2만 라인 되었을 경우 Tool 의 결과라도 양이 많으면 Summary를 하면서 계속 돌려야 하는게 효과 적일까요? 아니면 페이지 1, 2 등을 호출할 수 있게 어떻게 하던 LLM 에게 권한을 주는게 효과 적일까요? 더 괜찮은 방법이나 좋은 prompt 등이 있으시면 답변 부탁 드립니다. 감사합니다.

  • 프롬프트엔지니어링
  • llm
  • ai-agent
  • langgraph
  • mcp
LEE JONG PIL 댓글 1 좋아요 0 조회수 41

public 모델 사용시 주의점

미해결

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

안녕하세요 좋은 수업제공해주셔서 많은 도움을 받고있습니다. langChain에 public 모델을 사용할때 개인정보 관련해서 질문이 있는데요 예를 들어 챗봇이나 자동 상담 기능에 적용을 한다고하면 입력이 매우 자유로울거같은데 개인정보에대해서는 어떻게 처리를 해야할까요? 기본적으로는 정규식으로 전처리를 하는데 100%보장된 작업은 아니라 현업에서는 어떻게 처리하는지 궁금합니다. 만약 개인정보 처리가 매우 중요하다면 public 모델(ex. chatGPT, gemini)은 사용 못하고 private 한 환경에 오픈소스로 운영할수밖에는 없을까요?

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

파이썬을 활용한 데이터 전처리

해결됨

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

안녕하세요 파이썬 활용한 데이터 전처리 부분에서 14.1 파이썬을 활용한 데이터 전처리.ipynb 위 코드를 가져와서 진행하는 과정에서 아래와 같은 에러가 발생했습니다. UnicodeEncodeError : 'cp949' codec can't encode character '\u2219' in position 1119: illegal multibyte sequence 이것저것 파이썬 기본 인코디을 utf-8로 바꾸라고 해서 set PYTHONUTF8=1 해당 코드도 사용해 봤는데 결국에는 아래와 같은 에러가 발생해서 질문드리게 되었습니다. TypeError : 'NoneType' object is not iterable 혹시 어떻게 해야할까요? (윈도우 사용중입니다)

  • n8n
  • 인공지능(ai)
  • langchain
  • ai-활용-(ax)
  • langgraph
hdot1223 댓글 1 좋아요 0 조회수 105

MSA 아키텍쳐 DB관게

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

MSA 구조에서 DB는 FK로 묶여있지 않고 다 분리된 테이블일까요? 아니라면 ERD 다이어그램도 추가해 주실 수 있으실까요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
최어진 댓글 1 좋아요 0 조회수 167

MSA 아키텍쳐 DB관게

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

MSA 구조에서 DB는 FK로 묶여있지 않고 다 분리된 테이블일까요? 아니라면 ERD 다이어그램도 추가해 주실 수 있으실까요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
최어진 댓글 2 좋아요 0 조회수 63

정말 감사합니다.

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 질문은 아니고.. 생산자 소비자 문제 파트 공부하다가 정말 감사해서 글 남깁니다. 이해를 위한 그림이 지금 세기도 힘들 정도로 많이 들어가있는데.. 학습자를 배려해주시는 마음이 느껴져서 정말 감사하네요.. 얼마나 많은 시간과 노력이 들어가있는지 가늠도 안됩니다. 정말 덕분에 편하게 공부하고 있습니다. 항상 감사드립니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
khcho1492 댓글 1 좋아요 0 조회수 66

생산자 소비자 문제 큐 사용

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이전의 프린트 예제에서는 큐를 생성할 때 ConcurreentLinkedQueue를 사용했고, 생산자 소비자 문제에서는 ArrayDeque를 사용했는데, ConcurreentLinkedQueue를 쓰지 않아도 괜찮은건가요? 이 예제는 lock을 획득한 스레드만 접근 가능해서 동시성문제를 해결한 상황이라서 그런건가요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
khcho1492 댓글 1 좋아요 0 조회수 59

getter setter

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

modelname은 getter에 if 문을 넣고 price엔 if를 setter에 넣었는데 그 기준이 있나요? 아니면 실행되고 출력하는데엔 어디에 넣든 아무 영향이 없는 걸까요?

  • java
  • 객체지향
민혁 댓글 2 좋아요 0 조회수 126

CommentApiTest 중 오류가 발생합니다

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

섹션3 23강 댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 파트 수강 중 create 테스트를 실행하는데 오류가 계속 발생합니다 package kuke.board.comment.api; import kuke.board.comment.service.response.CommentResponse; import lombok.AllArgsConstructor; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.web.client.RestClient; public class CommentApiTest { RestClient restClient = RestClient.create("http://localhost:9001"); @Test void create() { CommentResponse response1 = createComment(new CommentCreateRequest(1L, "my comment1", null, 1L)); CommentResponse response2 = createComment(new CommentCreateRequest(1L, "my comment2", response1.getCommentId(), 1L)); CommentResponse response3 = createComment(new CommentCreateRequest(1L, "my comment3", response1.getCommentId(), 1L)); System.out.println("commentId=%s".formatted(response1.getCommentId())); System.out.println("\tcommentId=%s".formatted(response2.getCommentId())); System.out.println("\tcommentId=%s".formatted(response3.getCommentId())); // commentId=123694721668214784 // commentId=123694721986981888 // commentId=123694722045702144 } CommentResponse createComment(CommentCreateRequest request) { return restClient.post() .uri("/v1/comments") .body(request) .retrieve() .body(CommentResponse.class); } @Getter @AllArgsConstructor public static class CommentCreateRequest { private Long articleId; private String content; private Long parentCommentId; private Long writerId; } } 코드는 강사님 코드를 복붙을 해 봤는데도 아래의 오류가 지속적으로 발생합니다 500 Internal Server Error: "{"timestamp":"2025-08-24T11:27:31.828+00:00","status":500,"error":"Internal Server Error","path":"/v1/comments"}" org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-08-24T11:27:31.828+00:00","status":500,"error":"Internal Server Error","path":"/v1/comments"}" at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:102) at org.springframework.web.client.StatusHandler.lambda defaultHandler defaultHandler 3(StatusHandler.java:89) at org.springframework.web.client.StatusHandler.handle(StatusHandler.java:146) at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.applyStatusHandlers(DefaultRestClient.java:698) at org.springframework.web.client.DefaultRestClient.readWithMessageConverters(DefaultRestClient.java:200) at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.readBody(DefaultRestClient.java:685) at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.body(DefaultRestClient.java:631) at kuke.board.comment.api.CommentApiTest.createComment(CommentApiTest.java:32) at kuke.board.comment.api.CommentApiTest.create(CommentApiTest.java:14) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) DB를 봤을 때 parent_comment_id 가 NOT NULL이라 안 되나 싶다가도 강사님은 pdf의 create table comment ( comment_id bigint not null primary key, content varchar(3000) not null, article_id bigint not null, parent_comment_id bigint not null, writer_id bigint not null, deleted bool not null, created_at datetime not null ); sql문과 똑같이 만들었던걸 생각하면 아닌 거 같기도 하고 뭐가 문제인지 감이 안 옵니다 @Service @RequiredArgsConstructor public class CommentService { private final Snowflake snowflake = new Snowflake(); private final CommentRepository commentRepository; @Transactional public CommentResponse create(CommentCreateRequest request) { Comment parent = findParent(request); Comment comment = commentRepository.save( Comment.create( snowflake.nextId(), request.getContent(), parent == null ? null : parent.getCommentId(), request.getArticleId(), request.getWriterId() ) ); return CommentResponse.from(comment); } private Comment findParent(CommentCreateRequest request) { Long parentCommentId = request.getParentCommentId(); if ( parentCommentId == null) { return null; } return commentRepository.findById(parentCommentId) .filter(not(Comment::getDeleted)) .filter(Comment::isRoot) .orElseThrow(); } public CommentResponse read(Long commentId) { return CommentResponse.from( commentRepository.findById(commentId).orElseThrow() ); } @Transactional public void delete(Long commentId) { commentRepository.findById(commentId) .filter(not(Comment::getDeleted)) .ifPresent(comment -> { if (hasChildren(comment)) { comment.delete(); } else { delete(comment); } }); } private boolean hasChildren(Comment comment) { return commentRepository.countBy(comment.getArticleId(), comment.getCommentId(), 2L) == 2; } private void delete(Comment comment) { commentRepository.delete(comment); if (!comment.isRoot()) { commentRepository.findById(comment.getParentCommentId()) .filter(Comment::getDeleted) .filter(not(this::hasChildren)) .ifPresent(this::delete); } } } 서비스의 경우에도 딱히 차이점을 발견하지 못했고 혹시나 싶어 복붙을 해도 마찬가지의 오류가 발생합니다

  • java
  • mysql
  • spring-boot
jackt0506 댓글 2 좋아요 0 조회수 125

38강 editConfiguration에 active profiles 가 없어요

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

위와 같이 active profiles가 없는데 어떻게 하면 될까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
커디널스 댓글 1 좋아요 1 조회수 50

로컬 모니터링 구축에 대해 질문있습니다.

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

Actuator, 프로메테우스, Grafana를 통해 운영 서버 모니터링 대시보드를 구축하려고 합니다. (CloudWatch는 일정 용량 이후 비용이 부과되는 문제로 Prometheus를 선택했습니다.) 근데 운영 서버에서 Actuator와 프로메테우스 서버를 띄우면 외부에서도 Actuator 가 제공하는 메트릭 정보뿐만 아니라, 프로메테우스가 수집한 정보를 9090 포트 번호를 통해 접근 가능하다고 생각하였습니다. 처음에는 Actuator의 정보를 ADMIN 권한을 가진 관리자만 접근 가능하도록 설정하였지만, Prometheus 서버에서 접근이 불가능한 문제가 생겼습니다. Prometheus와 Grafana를 통해 모니터링을 구축할 때, 데이터에 대한 보안을 강화할 수 있는 방법이 뭐가 있는지 궁금합니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
foureach2025 댓글 2 좋아요 0 조회수 108

어플리케이션 , 도메인 계층질문

해결됨

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요 토비님 어플리케이션 계층의 port는 도메인과 외부의 연결을 위해 필요 하다고 알고 있는데 jpa나 마이바티스 같은 기술 또한 도메인 외부의 내용이기에 인프라 계층으로 들어간다고 알고 있습니다 그런데 의존성 역전을 위한 레파지토리 인터페이스를 어플리케이션 계층에 만들면 어플리케이션 서비스에서 도메인에 관련된 내용을 너무 깊게 관여하는 것 같아서 질문 드립니다 어플리케이션과 도메인의 경계를 어디까지로 보는게 좋을까요

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
김지훈 댓글 3 좋아요 0 조회수 220

gradle source sets가 없을때

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 8강 강의에서 멀티모듈 구조 만드실때 각 서비스에 디렉토리를 추가하는 과정에서 new -> directory 클릭했을 때 강사님은 경로명 입력하는 칸 밑에 gradle source sets가 떠서 쉽게 src와 test디렉토리 등을 추가하셨는데 저는 뜨지 않습니다.. 왜 그런걸까요??

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
유근찬 댓글 2 좋아요 0 조회수 96

n8n서버가 멈추는(블로킹) 현상

해결됨

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

n8n을 도커로 서버에 올려 사용중인데요, (서버의 스펙은 4코어 16기가) 조금만 무거운 작업을 하면 Node.js( 단일 이벤트 루프 )의 문제인지 서버가 블로킹이 되어 작업이 완료될때까지 서버가 멈추는 현상이 있습니다. 멈추는 사이에는 별도의 쓰레드로 요청을 보내도 응답을 주지 않습니다. 제가 했던 워크플로는 10메가정도의 zip파일 1개를 ftp에서 다운로드 후 압축해제 하여 압축해제된 json파일을 하나로 합치는 작업입니다. 이정도의 작업으로 n8n서버가 멈추는(블로킹) 현상이 일반적인가요? 답변부탁드립니다. 감사합니다.

  • n8n
  • 인공지능(ai)
  • langchain
  • ai-활용-(ax)
  • langgraph
n8n 댓글 2 좋아요 0 조회수 140

Repository 인터페이스 위치

미해결

Java/Spring 주니어 개발자를 위한 오답노트

class Controller, class Service, Interface Repository, class RepositoryImpl, Interface JpaRepository의 그림에서 Interface Repository 가 Persistence 가 아닌 Business 계층으로 분리하신 이유가 궁금합니다!

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
yhwjd 댓글 1 좋아요 0 조회수 90

인기 태그

인프런 TOP Writers

주간 인기글