안녕하세요. bulk insert 관련해서 궁금한점이 있습니다. 사실상 데이터베이스를 다룰 때 IDENTITY를 거의 사용할 것이라고 생각합니다. 이럴 경우 bulk insert를 어떻게 처리해야 될 지 궁금합니다. 다른 질문에 답변을 봤을때 책에 나온 쓰기 지연같은 경우도 IDENTITY에서는 안되는 것이라고 알고 새로운 질문을 드립니다. IDENTITY 키를 가진 엔티티들 bulk insert를 하기 위해 JdbcTemplate가 최선이다 까지 이해했습니다. 예를 들어 상품을 등록할때 상품과 카테고리들 이미지들을 저장한다고 생각해보겠습니다.(각각 다른 테이블 및 1:N) 이런 경우 상품에 새로운 엔티티들을 만들고 save를 호출할 경우 IDENTITY를 가진 엔티티들이니 각 쿼리들이 따로 다 날라갑니다. 그래서 JdbcTemplate를 사용해 카테고리들과 이미지들을 batch insert할 경우 기존 엔티티에 정보를 어떻게 관리하는지 궁금합니다. jdbcTemplate로 bulk insert한 경우 id를 받아오지 못하는 것으로 알고 있는데, 이런 경우 jdbcTemplate으로 값을 넣은 후에 기존 상품 엔티티에서 카테고리 혹은 이미지들에 접근할 경우 lazy 기능이 동작하지 않을 것이라 생각되는데 실무에서는 bulkInsert하는 경우 lazy하는 값에 접근하지 않는다. 이런 약속을 정해놓고 개발하시는건가요? 아니면 batchInsert로 넣는 값들은 내부에서 가지고 있지 않고 추후에 조회할때 조인도 사용하지 않으시나요? 질문 의도는 결국 IDENTITY인 경우 batch insert를 어떻게 해야 좋은 것이고, 만약 jpa에서 처리가 안될 경우(JdbcTemplate 등을 사용) 영속성 컨텍스트와 어떻게 문제가 생기지 않고 처리하시는지 궁금해 질문드렸습니다. 제 짧은 생각으로는 어떻게든 영속성 컨텍스트 문제가 생길 것 같은데, 실무에서는 그럼 이런 엔티티는 드무니까 save 코드 주석으로 특정 lazy 값에는 접근하지 말라는 내용을 써놓고 컨벤션 느낌으로 개발하시는지도 궁금합니다. jpa, data jpa와 querydsl 강의를 모두 수강하였기 때문에 jpa에서만 국한되어 답변해주시지 않고 data jpa, querydsl, JdbcTemplate 혹은 다른 방법 어떤 내용을 포함해주셔도 공부하고 이해할 수 있습니다. 항상 좋은 강의 감사드립니다.
안녕하세요. 현재 LLM(대규모 언어 모델)을 FastAPI를 이용하여 API 형태로 서비스하고 있습니다. 이와 관련하여 다음과 같은 사항에 대해 질문드립니다. FastAPI로 API를 제공할 경우 메모리 누수가 필연적으로 발생하는지, 그렇지 않다면 개발자가 이를 어떻게 방지할 수 있는지 궁금합니다. 강사님께서는 FastAPI 사용 시 메모리 누수를 방지하기 위해 어떤 방법이나 처리를 적용하시는지 궁금합니다. 특히 LLM 모델처럼 리소스(메모리, gpu)를 많이 사용하는 모델을 API로 서비스할 때, 메모리 누수와 관련하여 특별히 주의하거나 고려해야 할 사항이 있다면 조언 부탁드립니다.
안녕하세요 강의 덕분에 많은 것을 시도해보고 , 배우고 , 적용 및 적응하고 있는 윤상필이라고 합니다. 강의를 보면서 얻은 코어는 입력 -> 가공 -> 출력 이라는 시스템에 무엇을 넣느냐 였습니다. 내가 원하는 데이터를 넣고, 가공해서 원하는 방식으로 출력(결과) 하는 거죠 mcp 이라는것이 1. 클로드 데스크탑설치 후 운용과 2 n8n의 ai agent에 운용 하는방식 이렇게 2가지 방식로 이였습니다. 그동안 강의는 sns 중 텔레그램에 연동되는것을 해보았으니, 카톡에 mcp를 연동할 수 있을까 하는 생각이 들었습니다. 물론 mpc가 연동된다면 ai agent도 연동되고, rag도 되고,,, 사람들에게 더욱 효과적으로 사용할 수 있을 것이라고 생각했습니다. 아무래도 텔레그램보다는 카톡을 더욱 사용하니까요 확인해보니 텔레그램처럼 현재 챗봇을 만드는 시스템이 있습니다. 대신 개인계정이 아닌 카카오채널이 챗봇이 됩니다. 그렇게 때문에 채널을 만들어야 하나 사업자가 없어도 만들 수 있습니다. (텔레그램에 비해 절차가 좀 더있더군요) 카톡의 챗봇 만드는 시스템은 1. 만들어서 카톡승인(api) 2 내가 만든 챗봇으로 우회(ngork을 활용한 웹훅 ) 방식 이 있습니다. 1번의 경우 다른시스템들 처럼 토큰을 받아서 api 진행이 가능하나, 배포할때 카카오 승인을 요구합니다. 유튜브 보면 카톡 자동화(나에게 보내기) 의 경우가 1번을 적용한 케이스 입니다. 승인전에는 해당 결과를 확인하기 위해서 나에게 보내는건 api만으로 가능하게 해두었기 때문입니다. 2번의 경우 텔레그램처럼 웹 훅을 받아서 데이터를 가공 후 카톡측에 다시 전송하는 시스템입니다. 별도의 승인이 없습니다. 또한 나 뿐만 아니라 카톡채널에 접속한 사람에게 해당 서비스를 제공할 수 있습니다. 유저 측면에서 볼떄 텔레그램보다는 카톡이 더욱 접근성이 쉬운건 사실이라 이쪽이 좀더 좋아보였습니다. 그래서 좀 파보기 시작하였습니다. (https://www.youtube.com/watch?v=vPtmvmZgPU8&t=501s)해당 유튜버는 파이썬을 활용하여 open ai 를 연동한 사례입니다. 시리즈로 이론부터 채널 생성, 각종연동, 파이썬 코드 구성 설명 및 유튜브 하단에 해당 코드까지 오픈하고있습니다. 이 유튜버는 fast api와 ngork 를 활요해서 외부 접속 을 만들었고, 가공 후 카톡에 전송하였습니다. 파이썬이 된다면 n8n에서 될 수 있을텐데 생각이 들어서 진행을 해보았습니다. 웹 훅 으로 카카오 채널에서 보내진 정보를 받아왔습니다 그리고 유튜브에서 나온 설명(서버 데이터 전송 json)대로 진행해보았습니다. 전송결과는 성공으로 나오나 실제 카톡 대화창에 온건 없었습니다. (http 리퀘스트로 보내야 할것같긴했는데 유알엘을 못찾겠어요) 입력은 해결했고, 가공은 넣으면 그만인데 출력(결과) 가 나오지 않고있습니다. 다른 영상인데 https://www.youtube.com/watch?v=3oI0VvBYl_s 해당 영상을 보면 make로도 가능하더군요 물론 코드가 들어가는 부분이 있긴합니다. 근데 구조를 모르니까 gpt에게 물어봐도 헤메기만 하게되더라구요( 위의 방법 1을 설명한다든가, 다른 외부서비스 (솔라피)를 설명한다든가 ) 카카오 개발자 문서 까지 가보았는데... 1번에 대한 애기(공식 api)는 명확한데, 2번에 대한 건 좀 두리 뭉실하게 적어둔 느낌입니다(물론 제가 볼줄 몰라서 그러겠지요...) https://kakaobusiness.gitbook.io/main/tool/chatbot/skill_guide/answer_json_format (카카오 비즈니스 가이드) 2번에 대한 문서 내용입니다. 1번은 카카오 디벨로퍼 에서 볼수있는데 아무래도 api 애기라 여기서 볼건 아니라고 생각했습니다. 처음에 파이썬으로 연동한 유튜버가 https://github.com/raymondcha77/kakaobot 깃허브에 코드내역을 올렸습니다. kakaobot.py 파일이 코드 소스 파일입니다. 지식이 없어.. 전송을 어떻게 해야할지 전혀 감을 못잡고있습니다. 조금만 하면 될것같은데 고견좀 부탁드립니다. 도와주세요.. 저에겐 꼭 필요합니다.
현재 코드를 동작을 해보면 이런식으로 두번 로그가 출력되고 있습니다. 로그 문제인가 싶어서 logger.propagate 옵션을 주어 로그 전파 방지도 해보고, 그냥 print로 출력 해도 콘솔 출력이 두개씩 나오는게 동일하네요 확인이 좀 필요할 것 같습니다. 물론, 작업관리자에서 중복동작하는지는 확인 해보았으나 하나만 동작하고 있었습니다. /balance api도 해외 주식 잔고가 아니라 국내주식 잔고 같은데 swagger문서에는 해외 주식잔고로 되어있어서 확인이 필요할 것 같구요 작일(2025-06-25)기준 cursor mcp서버 등록 화면이 좀 바뀌었습니다. fileSystem mcp 서버 등록 json 설정방도 바뀌었더라구요. 그리고 잔고 기준 5%나, 이런식으로 매수를 하라고 말씀하셨었는데 한국투자증권 모의투자는 해외 예수금 잔고 조회가 안되는 것 같은데 이부분도 확인 부탁드리겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] @Repository 어노테이션을 처음 보는데 어느 강의에서 자세하게 볼 수 있을까요??
강의 영상 24분쯤 fetch join은 페이징 처리가 불가능하다고 말씀해주셨는데(사용하게 될 시 메모리에 임시로 모든 데이터 적재 후 페이징 처리로 설명), 페이징을 하지 않을 경우에도 Order rows가 1만건 이라면 1만건 모두 조회되는 것 아닌가요? 이럴 때도 메모리에 대한 문제가 있을 것 같은데 제가 잘못 이해한 것인지 설명 부탁드리겠습니다!
안녕하세요 선생님. 33분 대 자바 문제에서 제가 이해한 바가 맞는지 궁금해 질문 드립니다. ------------------------------------ 업캐스팅 되지 않은 상태로 obj가 태어났고 child() 생성자를 찾으러 올라갔고, 업캐스팅 여부와 상관 없이 새로 객체가 태어나게 되면 child()를 실행하기 전에 -> 자동으로 parent()로 올라가게 됩니다. parent() 안에 있는 this(500)으로 인해 parent(500)을 실행하게 되고, parent의 int x가 100에서 500으로 바뀝니다. 그리고 다시 child()로 돌아와서 this(5000) -> child(5000) -> child.x는 4000에서 5000으로 바뀌게 됩니다. 다시 메인으로 내려와서 system.out.println(obj.getX())를 실행하게 되고 child 클래스에는 getX가 없기 때문에 parent 클래스로 올라가서 getX()를 찾습니다. 그래서 return x로 인해 parent의 500을 답으로 돌려주게 됩니다. --------------------------------- [질문] 1. 제가 위에 적어놓은 풀이과정이 맞나요? 2. 업캐스팅 여부와 상관 없이, 업캐스팅 됐든 되지 않았든 새로 객체가 태어나게 되면 child()를 실행하기 전에 -> 자동으로 parent()로 올라가게 되나요? 3. 만약 Child obj2 = new Child(300) 이렇게 태어나게 되면 Child(int x)로 올라갔다가 -> 자동으로 Parent(int x)로 올라가게 되나요? 아니면 이 경우는 기본생성자 형태가 아니기 때문에 super로 부모를 명시해야 하나요? 4. system.out.println(obj.getX())를 실행할 때, child 클래스에 getX가 있었다면 메서드 오버라이딩으로 인해 parent 클래스로 올라가지 않나요? 질문이 너무 많은 거 같은데 죄송합니다.. 다시 한 번 개념을 정립하고 싶어 길게 질문드렸습니다. 답변 주시면 감사하겠습니다..
안녕하세요 선생님. 항상 강의 잘 듣고 있습니다! 다름이 아니고 빈칸 채우기 정렬 문제에서 2번에 nx가 아니고 5라고 써도 정답 처리가 될까요?? 문제에서는 a[]의 길이가 5이고 해당 문제에서는 이미 문제가 명시되었기 때문에 다른 배열이 올 수가 없는 상태이니 5라고 적어도 되지않을까 궁금합니다!
현재 Member 도메인 모델 확장 까지의 수업을 듣고 궁금한 것이 있습니다! 저희가 이번 수업을 포함하여 지금까지 요구사항(도메인) -> 도메인 모델(회원) -> 비밀번호 해시 라는 일련의 과정을 통해 비밀번호 암호화와 관련한 도메인 모델의 규칙, 속성, 행위 등을 뽑아냈기 때문에 비밀번호 암호화까지 도메인 로직에 포함된다고 이해했습니다. <인터페이스 위치를 결정하는 기준에 대해> 해당 답변에서도 PasswordEncoder를 어디에 둘지 결정할 때 사용한 기준은 도메인 모델을 이야기할 때 이게 등장하는가 라고 말씀해주시기도 했고요! 그렇다면 개발은 결국 요구사항을 토대로 진행되는 것이기에 모든 코드가 도메인 로직으로 분류되어야 하는 것 아닌가? 하는 의문점이 생겼습니다! 토비의 생각을 듣고 싶습니다!
안녕하세요. 8분쯤 양방향 연관관계 시 @JsonIgnore 어노테이션을 통해 순환 참조가 되는 것을 방지해야 한다고 알려주셨는데, 엔티티 하나하나 들어가서 직접 확인해야 하나요? ERD나 관계가 복잡해서 까먹을 경우 이렇게 하나씩 확인을 해야 하는지, 아니면 IDE 같은 걸로 도움을 받을 수 있는지 궁금합니다.
이번 강의에서 GenerateLabel 클래스를 생성할 때 초기화에서 input_dir과 output_dir에 대해서 형식을 path로 미리 지정해주었습니다. 그런데 아래 validate_path 함수에서 추가적으로 if not all~ 구문을 사용해서 해당 인자들의 형식을 확인하도록 코드를 구성하셨는데 이러한 이유가 따로 있으신가요? 만약 해당 형식이 아니면 처음 클래스를 초기화할 때부터 에러가 발생하지 않나요? 항상 좋은 강의 만들어주셔서 감사드립니다.