안녕하세요 쿠케님, 강의를 복습하다 새로운 궁금증이 생겨 질문 남깁니다. 본론부터 말씀드리자면, 카프카는 큐에 이벤트가 담기고, 동일 토픽 및 동일 파티션의 경우 동일한 offset을 쓰기 때문에 순서가 지켜져서 소모가 된다고 이해했습니다. 즉, 컨슈머가 몇개든 동일 토픽, 파티션인 경우 큐에 담겨진 순서대로 명확하게 소비된다고 이해했습니다. 그런데 만약 큐에 담겨진 순서가 올바른 순서가 아니라면 어떻게 되는 것일까요? 예를 들어, 2명의 클라이언트가 거의 같은 시간에 게시글 A에 대해 댓글을 생성했고 각 클라이언트는 서로 다른 댓글 서버에서 요청이 처리됐다고 가정하겠습니다. 이때 유저 A가 게시글 A에 대한 댓글을 먼저 생성했고, 유저 B가 간발의 차로 같은 게시글에 대한 댓글을 생성했을 때, 유저 A가 생성했을 때의 게시글 댓글 수는 4였고 B가 뒤 이어서 생성했다면 5가 될 것입니다. 백엔드 서버가 전송한 유저 A의 이벤트가 알 수 없는 문제로 카프카로 늦게 도착했고, 그 사이에 유저 B의 이벤트가 먼저 큐에 담겨졌습니다. 그렇다면 제가 첨부한 그림과 같이 됩니다. ( 이벤트는 지연 전송 방식이 아닌 트랜잭션 After Commit 이후에 즉시 전송됐다고 가정. ) 이때 컨슈머인 article-read 서비스에서 이벤트를 순서대로 소비하며 레디스에 저장된 게시글 A의 ArticleQueryModel 댓글 수를 최신화하는데 먼저 최신 값인 5로 최신화하고 다시 과거 값인 4로 최신화 할 것입니다. 이렇게 되면 게시글 A의 댓글 수 데이터의 일관성이 깨진다고 볼 수 있을 것 같습니다. 그래서 이에 대한 해결책으로 이벤트 payload에 댓글의 스노우플레이크 id가 담겨 있고, 스노우 플레이크는 시간 순으로 생성되기 때문에 레디스에 게시글 A에 대해 가장 마지막으로 처리된 이벤트의 스노우플레이크 id를 저장하고 다음으로 소비될 이벤트가 가장 마지막으로 처리된 이벤트 id보다 과거에 생성된 이벤트면 이 이벤트를 무시하면 되지 않을까? 생각했지만, 게시글에 대한 이벤트 타입이 여러가지이기 때문에 다른 타입의 이벤트가 무시될 수도 있겠다는 생각이 듭니다. 쓰고 나니까 너무 길게 질문 드린 것 같은데, 쿠케님의 강의가 정말 도움이 많이 돼서 이렇게 염치 불구하고 길게 질문드립니다. 이에 대한 의견 주시면 너무 감사하겠습니다. 강의 항상 잘 듣고있습니다.
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 2 - 랭체인(LangChain)으로 나만의 ChatGPT 만들기
기업이나 연구소에 근무하시면서 상용 llm을 활용해서 서비스를 개발하시는 분들도 많겠지만 로컬pc 24G정도의 vram에 ollama로 Gemma3 27B ( 모델용량 17GB)정도의 모델을 올리면 개인이 가지고 있는 문서들을 따로 토큰을 쓰지않고도 벡터화해서 필요할때 질의응답 하는 용도로 활용가능할거 같은데요 https://m.blog.naver.com/PostView.naver?blogId=se2n&logNo=223625573379&navType=by 강의중에 codeLlama 연동하시는 부분은 봤는데 ollama로 연동하는 방법이 궁금합니다
[질문 내용] 여기에 질문 내용을 남겨주세요. 강의자료받아서 실행시 오류가나네요 ;; 뭐가문제일까요 ?? [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. String connectResult = client.connect(); if (isError(connectResult)) { System.out.println("[네트워크 오류 발생] 오류 코드: " + connectResult); client.disconnect(); return; } String sendResult = client.send(data); if (isError(sendResult)) { System.out.println("[네트워크 오류 발생] 오류 코드: " + sendResult); client.disconnect(); return; } 강의 내용중 오류가 발생하더라도 client.disconnect() 메서드를 불러와야한다고 하셨는데 그럼 선생님이 말씀하신 if 문으로 분기를 사용해서 String connectResult = client.connect(); if (isError(connectResult)) { System.out.println("[네트워크 오류 발생] 오류 코드: " + connectResult); } else { String sendResult = client.send(data); if (isError(sendResult)) { System.out.println("[네트워크 오류 발생] 오류 코드: " + sendResult); } }.이런식으로 말고 위에 올린 코드처럼 client.disconnect(); 를 if 문 안에다 적어서 disconnect 가 되고 return 이 되겠끔 해도 되나요?
우선 좋은 강의 만들어 주셔서 정말 감사드립니다 :) 얼마전에 스프링 MVC 관련 강의를 출시 해주셨는데요. 구입하고 한번 내용 확인해보니 앞으로 강의 출시 FLOW 를 설명 해주신 내용이 있었습니다. 동시성 파트 부분인 '리엑티브 프로그래밍' -> 'WebFlux' 강의 도 있는데요. 다음 강의 출시 할때 이 부분 부터 강의 출시 해주시는 건지 알고 싶습니다. (사실 '동시성 프로그래밍' 강의 이후 '리엑티브 프로그래밍' -> 'WebFlux' 강의를 손꼽아 기다리고 있었거든요 ㅠ,ㅠ)
안녕하세요, 강사님 차량용 이더넷 통신을 진행하게되어 강사님의 강의를 수강하고 있습니다. 해당내용에 관하여 문의가 있어 질문드립니다. 네트워크는 UDP 기반의 멀티캐스트 방식으로 각 제어기별로 송수신이 이루어지는 컨셉입니다. 이때 A라는 송신자와 B,C라는 수신자가 있으며 똑같은 멀티캐스트 주소를 사용하고자 합니다. A의 IP 주소가 EX) 192.168.0.1, 포트 7400 B의 IP 주소가 192.168.0.2 C의 IP 주소가 192.168.0.3일경우 B와 C의 포트는 7400으로 설정하는 것은 이해했으나, 소켓은 IP 주소와 + Port 정보로 이루어져있다고 강의로 이해했습니다. 이럴령우 B 소켓의 Bind는 192.168.0.2 + 7400(Port) C 소켓의 Bind는 192.168.0.3 + 7400으로 열리게 되는 것이 맞는지요 ? 해당 질문을 드리는 것이 A의 기준으로 생각해본다면 멀티캐스트 방식으로 Destination IP가 특정 제어기로 지정되지 않을 것 같아 혼돈이 생겨 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 항상 강의 잘 듣고 있습니다. 감사합니다. 이 예제에서 exception을 catch로 잡았는데, 왜 굳이 그걸 또 throw로 던지나요? 예외를 잡았으니 이미 해결된 것 아닌가요? 다른 예제들은 catch로 해결된 것 같은데, 이 예제는 뭐가 달라서 굳이 또 던져야 하는 건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 멀티스레드와 동시성 강의-스레드 생명주기 파트에서 질문 드립니다. Thread.sleep(3000)으로 InterruptedException이 발생했고, catch로 그걸 잡았는데 왜 sleep()으로 다시 돌아가서 다음 로그가 출력되는 등 정상 흐름이 마저 진행되나요? 체크 예외가 발생하면 그걸 catch로 잡더라도 이후 코드는 마저 실행되지 않아 finally 코드가 도입된 것이 아니었나요? java-mid1에서 체크 예외가 발생해 나머지 코드가 실행되지 않아 자원 정리가 안 되었던 예제를 배웠던 것 같은데, 이 예제와 무슨 차이가 있어서 다른 결과가 나오는지 궁금합니다ㅠㅠ 2. 이 예제에서 InterruptedException이 발생해서 그걸 catch한 것까지는 이해됩니다. 그런데 왜 굳이 새 RuntimeException을 생성해서 또 던지는 건가요? InterruptedException 이외에 추가로 발생할 지도 모르는 다른 예외들도 한꺼번에 잡아서 던지려는 의도인가요(예방 차원)? 3. 예외를 어떤 경우에 잡고 어떤 경우에 던져야 하는지 궁금합니다. java-mid1 예외 처리 파트에서 예외를 못 잡으면 던지고 잡을 수 있으면 잡아야 한다고 배웠는데, 그 구체적인 기준을 잘 모르겠습니다. 그걸 배울 당시에는 '아직 기초 단계라 기본 개념만 잡고 자세한 오류 해결 과정은 나중에 나오나 보다'하고 넘겼는데, 이 예제에서도 그냥 catch(발생한 오류) 정도로 넘어가는 걸 보니 제가 뭔가 놓치고 있는 것 같습니다. 그냥 catch()코드를 넣으면 오류를 잡았다고 자바 상에서 처리가 되는 건가요? 그런 거면 그냥 오류를 다 catch로 잡아버리면 될 것 같은데, 굳어 던져야 하는 상황은 어떤 상황인가요...? 질문이 너무 길어졌네요. 친절한 답변에 미리 감사드립니다!!!
디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
안녕하세요 궁금한게 생겨 문의드립니다. 디지털 증거의 처리 등에 관한 규칙 제14조를 보면 "혐의 사실과 관련된 전자 정보에 한하여 문서로 출력 하거나 휴대한 정보 저장 매체에 해당 전자 정보만을 복제 하는 방식으로 하여야 한다" 라고 되어있는데 ①피압수자의 컴퓨터에서 디지털 정보를 선별하여 현장에서 문서로 출력했을 경우 어떤식으로 원본과 동일성, 무결성을 증명할수있나요? ②문서로 출력 시 메타정보나 해쉬값이 출력 되는 별도의 프로그램이 있나요? ③아니면 객관적으로 입증 가능한(압수참여 수사관, 채증등) 방법으로 만 해야되는 걸까요? 입법자 들은 분명 사전 조사 후 해당 조문을 만들었을껀데..도저히 확인 할 수 없어 문의 드립니다 ...ㅜ.ㅠ
만약 앱라우터에서 로컬 스토리지 사용 시, 클라이언트 컴포넌트에서 사용할 것이고 서버에는 없는 데이터가 클라이언트인 브라우저에는 있을수도 있을 것 같은데 이 경우 어떻게 해결하는게 보편적인가요? 생각나는건 하이드레이션 에러를 무시하는 프로퍼티가 있었던 것 같은데 이 방법은 안좋을 것 같고, 동적으로 클라이언트에서만 렌더링 하던가 같은 방법으로 Suspense로 묶어서 클라이언트에서만 렌더링 되게 하는 방법이 있을 것 같은데 강사님 생각이 궁금해 질문 드립니다. 항상 감사합니다!
안녕하세요~ 강의 듣고 너무 도움이 많이 되었습니다 궁금한 점이 있어서 남기는데요 :] 글이 좀 깁니다.. 움직이는 이모티콘을 만들고 있는데요 복잡하여 '장면'으로 24개를 생성해서 만들고 있습니다 제안할 때 모두 움티로 만들지는 않아서 png 파일이 필요한데요 1. 한꺼번에 png 저장하는 기능이 있을까요?단축키만 누르면 추가 설정 없이 바로 png 저장되는 거요! '제작 설정'으로 png저장을 하려고 하면 출력이름이 똑같게 설정되서 자꾸 '덮어씌워서' 저장됩니다 .png로 설정해놓으면 새롭게 1.png 2.png 이런식으로 되는 게 아니라 똑같이 .png로 저장되어 새로운 파일을 저장하려고 해도 덮어 씌워집니다ㅜ >>장면별로 돌아가면서 '제작'단축키가 따로 먹혀서 png 개별로 저장되는지 알고싶습니다 ㅠ 장면별로 제작설정을 따로 해서 일일이 저장해야 하는 걸까요 2.또는 일러스트처럼 "액션" 기능처럼 단축키 1개만 누르면 png로 바로 저장되는 것(내보내기-원본저장-이름까지 한꺼번에 저장되는)은 없을까요.. 추가로!! 24개 움티땜에 "장면"을 사용하다 보니 단축키 '장면 편집 모드로 이동'하는 부분이 뭔가 꼬였는데요.. 보통 장면 편집 모드를 저는 "객체 편집 나가기 "용으로 썼었는데 장면을 쓰고 나니까 이게 자꾸 장면탭으로 가고 객체 나가기가 안 되네여.. 장면을 쓰지 말아야 되는지.. 객체 편집 나가기 다른키는 없나요.. 자꾸 중복되서 잘 쓰던 키인데 못쓰고 있네요 너무 글이 길었죠... 요약하자면 장면별로 돌아가면서 일일이 [내보내기-이미지내보내기-원본선택-저장-이름쓰고png저장 ]이런 과정을 거쳐야 하는 것인지요.. '제작'으로 장면 하나하나 png쉽게 저장되는 방법이 있는지, 일러스트처럼 액션기능 같은 게 있는지 궁금합니다 혹시라도 보시고 답변 주신다면 감사하겠습니다 !!