27:15 쯤 조건식 없는 break 2번째 예시에서 if(i>=10) 이면 break인데 pdf 문서에 보면 2*10=20까지 출력이 되어 있어서 왜 그런지 궁금합니다. break 1번째 예시에서는 if(i>=5) 면 break 니까 i의 값: 5가 출력이 안되서 마지막 출력값이 i의 값: 4 라고 되어 있어서요.
안녕하세요 딩코님! 좋은 강의 잘 들었습니다. 강의를 듣다가 조언을 구하고 싶은게 있어서 질문 남깁니다. 저는 현재 주니어 개발자로 일으나 부하테스트 같은것을 회사에서 해볼 수 없는 상황이라(운영 인력이 아님...또한 작은 시스템이라 모니터링도 없고 구축할수도 없는 환경)강의에서 다뤄주신 내용을 실무에 적용해보기가 어려운데요... 그래서 제가 생각해본게 테스트 코드로 만들어서 돌려보면 어떨까 생각했거든요. 예를들어 아래와 같은 메소드를 만들어 놓고, 캐시 전/후를 비교하는 거죠... long start = System.currentTimeMillis(); service.findSomething(id); long elapsed = System.currentTimeMillis() - start; System.out.println(elapsed); 그런데 한가지 고민되는 포인트가, 테스트 코드로 만들어서 돌렸을때 성능 개선을 수치적으로 적기가 좀 애매할것 같다고 생각이 들어서요. 아무래도 JVM이라던지, warmup이라던지 통제할 수 없는 변수가 있다보니까요. 그래서 질문은 아래와 같습니다. 특정 메소드에 로컬 캐시를 적용하기 전/후 테스트 코드에서 성능을 비교 했을때, 1초->1ms로 성능 개선했다. <- 이런 문장이 임팩트가 있을까요? 아님 테스트 코드에서 한건 좀 신뢰성이 떨어질까요? ㅠㅠ 테스트 코드에서 돌려봤을때 누가봐도 신뢰성있게 만들려면 어떻게(?), 무슨 툴(?)을 써서 하는게 좋을까요? ㅠㅠ 저 같이 운영 환경에 적용해볼수 없는 개발자에게 조언을 주시면 또 감사하겠습니다!
13 섹션 병렬 스트림을 퀵하게 필요하여 고급1탄( 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성) 어느 섹션을 순차적으로 보아야 할까요? 물론 유기성으로 섹션1부터 모두 보면 좋겠지만 당장 써먹어야 하여 진도를 나갈 수 있는 수준의 섹션만 우선 보고 적용후 추후 다시 보려 합니다
안녕하세요. 좋은 강의 만들어주셔서 감사합니다. 강의 2.3 에서 강사님 코드와 동일하게 작성하고 gpt 모델만 'gpt-5.4-mini' 로 변경 후에 전체 실행 했을 때, 답변이 이렇게 돌아옵니다. {'query': '연봉 5천만원 세금', 'context': [Document(id='9814d06b-07f0-47e3-866c-fdf3940e2649', metadata={'source': 'income_tax.txt'}, page_content='5년 이하: 30만원 → 납입연수\n5년 초과 10년 이하: 150만원 + 50만원 × (납입연수 - 5년)\n10년 초과 20년 이하: 400만원 + 80만원 × (납입연수 - 10년)\n20년 초과: 1,200만원 + 120만원 × (납입연수 - 20년)\n\n② 직장근로자 초과관세환급금을 분배하여 지급받는 경우 세액의 계산 방법 등 필요한 사항은 대통령령으로 정한다. \n<대통령 2014. 12. 23.>\n<전문개정 2009. 12. 31.>\n제64조(부동산매매업자에 대한 세액 계산의 특례)\n1) 대통령령으로 정하는 부동산매매업(이하 “부동산매매업”이라 한다)을 영위하는 거주자가 이하 “부동산매매업자”라 한다)로서 종합소득세법에 제104조제1항제1호(본항을 포함한다) 및 제103조 또는 같은 조 제7항 각 호의 어느 하나에 해당하는 자산의 매매자익(이하 “주택등매매차익”이라 한다)이 있는 자의 종합소득 산출세액은 다음 각 호의 세액 중 많은 것으로 한다. \n<개정 2014. 12. 23., 2017. 12. 19., 2020. 12. 29.>\n1. 종합소득 산출세액\n\n다음 각 목에 따른 세액의 합계액\n 가. 주택등매매차익에 따른 세율을 적용하여 산출한 세액의 합계액\n 나. 종합소득세법 제55조에 따라 주택등매매차익에 대한 개별세액을 공제한 금액을 과세표준으로 하고 이에 제55조에 따른 세율을 적용하여 산출세액'), Document(id='74dc15eb-b151-49b8-9106-1399b7722dd3', metadata={'source': 'income_tax.txt'}, page_content='1. 근속연수에 따라 정한 다음의 금액\n근속연수 | 공제액\n--- | ---\n5년 이하 | 100만원 공제소득\n5년 초과 10년 이하 | 500만원+200만원×(근속연수−5)\n10년 초과 20년 이하 | 1천500만원+250만원×(근속연수−10)\n법제처 | 31 | 국가법령정보센터'), Document(id='1c1ccbad-e1fe-45f7-b08f-223a475212c4', metadata={'source': 'income_tax.txt'}, page_content='소특별판\n경우에는 100분의 30에 해당하는 금액을 해당 과세기간의 종합소득세법에서 공제한다. \n<개정 2014. 12. 23., 2016. 12. 20., 2017. 12. 19, 2021. 12. 8, 2023. 12. 31.>')], 'answer': AIMessage(content='연봉 5천만원의 세금은 공제 항목(4대보험, 근로소득공제, 인적공제 등)에 따라 달라져 정확히 한 숫자로 말하기 어렵습니다. \n제공된 자료만으로는 5천만원 연봉의 실제 세액을 계산할 수 없습니다. \n원하시면 **연봉 5천만원, 1인 가구/부양가족 여부** 기준으로 대략 계산해드릴게요.', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 108, 'prompt_tokens': 848, 'total_tokens': 956, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_provider': 'openai', 'model_name': 'gpt-5.4-mini-2026-03-17', 'system_fingerprint': None, 'id': 'chatcmpl-DtSMXJU8oQmhDi4TWrlNkXhmwuADF', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019eedff-fd63-79f1-bb50-9fe5bb58b7c8-0', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 848, 'output_tokens': 108, 'total_tokens': 956, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})} 결국 답변은 정보가 부족하다는 것 같아 보이는데, retrieve 할 때, k의 개수도 4로 늘려보았지만 답변은 같았습니다. 이러한 경우 어떻게 하는 게 답변을 개선하기 좋을까요?
강의에서 class AgentState(TypeDict): messages: list[Annotated[AnyMessage, add_messages]] 라고 하셨는데, 위와 같이 하면 AIMessage만 결과로 출력되게 된 걸로 보아 덮어진 것 같습니다. class AgentState(TypedDict): messages: Annotated[list[AnyMessage], add_messages] 위와 같이 Annotated 가 밖으로 나와야 하는 것이 맞는지 확인해주세요. 이때는 결과가 HumanMessage, AIMessage 둘 다 출력되더라구요.
강사님 uv setting 대로 실습을 진행하는 도중에 아카이브 tool 호출 시 아래의 에러가 발생했습니다. AttributeError: 'Search' object has no attribute 'results' uv add "arxiv<2.4.1" 로 다운그레이드 해서 해결했습니다. 혹시나 동일한 에러가 나시는 분들을 위해 남겨둡니다.
안녕하세요 강사님! 강의 잘 듣고 있습니다. 다차원 배열이랑 가변 배열 파트를 복습하다가 인덱스 해석 순서랑 반복문 매칭이 헷갈리는 부분이 생겨서 질문 남깁니다. 강의에서 3차원 배열을 순회할 때 가장 안쪽 루프가 '높이'에 해당한다고 설명해 주셨는데, 제가 직접 코드를 짜서 출력해 보니까 조금 헷갈리는 부분이 있습니다. 제가 테스트해 본 전체 코드는 다음과 같습니다. public class ArrayTest { public static void main(String[] args) { int[][][] sheet = new int[2][3][4]; int count = 1; for (int i = 0; i < sheet.length; i++) { for (int j = 0; j < sheet[i].length; j++) { for (int k = 0; k < sheet[i][j].length; k++) { sheet[i][j][k] = count++; } } } for (int i = 0; i < sheet.length; i++) { System.out.println("=== [시트 " + i + "] ==="); for (int j = 0; j < sheet[i].length; j++) { for (int k = 0; k < sheet[i][j].length; k++) { System.out.print(sheet[i][j][k] + "\t"); } System.out.println(); } System.out.println(); } } } 이 코드를 실행해 보면 가장 안쪽 루프인 k가 돌 때 숫자가 위로 쌓이는 게 아니라, 왼쪽에서 오른쪽으로 평평하게 가로 줄(열)을 그리면서 출력이 되더라고요. 그리고 가장 바깥쪽 루프인 i가 바뀔 때 시트가 전환되는 것을 확인했습니다. 특히 같이 알려주신 가변 배열(Jagged Array) 개념을 여기에 대입해 보니까 더 헷갈리는데요. 자바는 new int[2][][]; 처럼 각 행마다 열의 크기를 다르게 지정할 수 있는 구조인데, 행마다 방 개수가 제각각인 상황에서 가장 안쪽 루프를 '높이'라고 생각하면 가변 배열의 형태가 머릿속으로 잘 매칭이 안 되어서요. 자바 메모리 구조상 공간적인 높이라는 비유보단, 엑셀로 따지면 처음 게 시트고 두 번째가 행, 마지막이 열이라고 생각하는 게 코드상으로나 가변 배열 구조상으로나 더 자연스러워 보이는데 제가 놓친 디테일이 있을까요? 제가 자바의 다차원 배열 메커니즘을 오해하고 있는 부분이 있는 건지, 아니면 세로-가로-높이 비유를 코드에 대입할 때 제가 놓친 디테일이 있는지 궁금합니다. 확인해 주시면 감사하겠습니다!
안녕하세요. 좋은 강의 잘 들었습니다. 몇가지 문의 드립니다. aevaluate 이 정상적이지 않아서 evaluate를 사용하는데, evaluate를 사용할때 wrapper 를 안쓰면 최종결과를 얻지 못할수 있어서 wrapper 를 사용한다고 하셨는데요. evaluate 의 첫번째 파라미터는 함수를 넘겨야 하니 run_agent_to_completion 를 자연스럽게 만들게 되지 않나요? run_agent_to_completion 를 안쓴다면 어떤식으로 evaluate 코드를 작성하게 되는지 궁금합니다. agent 에 따라, 질문에 대해 바로 답을 주는게 아니라 HITL 을 발생시키고, 사용자의 추가 정보에 따라 최종 답변을 주는 agent 가 있을수 있습니다. 이 경우 어떤식으로 평가를 하면 좋을까요? 강의에 사용하셨던 영상에서 몇몇 부분 링크를 참고하라고 하셨는데, 링크 정보를 어디서 얻을수 있을까요? 예를들면 아래와 같은 부분 입니다. (강의소개에 적어주신 노션과 깃헙에서는 못찾아서 여쭤봅니다.) 2강 - 4분 10초 경 Amazon 링크 4강 - 1분 8초 경 세일즈포스트 링크 " '운영에 배포할만한 가치가 있는 agent 인가?'를 평가한다 "는 말이 기억에 남습니다. 감사합니다.
안녕하세요. 강의 촬영 시점과 수강 시점이 많이 차이가 나 그동안 여러 변경사항이 있는 것 같은데요! 인텔리제이 설치 후 새 프로젝트 셋팅하려고 보니 언어 선택하는 부분이 없음 (이 부분은 왼쪽 패널에 new project > java/kotlin... 등으로 선택하게 되어 있네요!) JDK 버전이 26까지 올라와 있음 이런 상태인데, JDK는 항상 최신 버전을 다운로드 받아도 될까요? 아니면 21 버전으로 다운로드 해야 할지 확인 부탁 드립니다.