묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
배열 문제와풀이 2 ArrayEx7 질문..
[질문 내용]배열 문제와풀이 2 ArrayEx7문제인데요총점구할 때 궁금해서 질문드립니다 ㅜㅜ ;총점 int total = 0; 인데 왜 for i(행) 문에서 변수를 선언하는 건지 원리를 잘 모르겠습니당..
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
[3강 누적합>이모스1법> 백준 17611] 런타임에러 질문드립니다!
import sys sys.stdin = open('BackJoon/3강_누적합/5_17611.txt','r') input = sys.stdin.readline n = int(input()) vertex = [list(map(int, input().split())) for _ in range(n)] ######## (x_min, y_min) -> (0, 0)으로 이동 x_min, x_max = 500000, -500000 y_min, y_max = 500000, -500000 for x,y in vertex: x_min = min(x, x_min) x_max = max(x, x_max) y_min = min(y, y_min) y_max = max(y, y_max) x_diff = 0 - x_min y_diff = 0 - y_min for i in range(n): vertex[i][0] = vertex[i][0] + x_diff vertex[i][1] = vertex[i][1] + y_diff ##### 수평선 조사 (강의에서와 같이 왼쪽으로 돌려서 봄) vertex_x_incre = sorted(vertex, key = lambda x: (x[0], x[1])) # y_range = y_max-y_min+1 x_range = x_max-x_min+1 x_sum_list = [0] * (y_range+1) # x축 방향으로 [1, 0, 0, ..., -1] 더함 for i in range(0,n,2): # 선분은 2개의 꼭지점으로 이루어짐 v1 = vertex_x_incre[i] v2 = vertex_x_incre[i+1] if v1[0] != v2[0]: # 디버깅 print('x point does not match!!')#만약 선분이 직선이 아니라면(혹은 sort가 잘못됨) break if v1[1] >= v2[1]: print('y point does not align!!')#sort가 잘못됨 print('v1:', v1) print('v2:', v2) break x_sum_list[v1[1]] += 1 x_sum_list[v2[1]] -= 1 x_sum_list = x_sum_list[:-1] #범위밖의 맨 마지막 -1 자리 버림 prefix = [0]*(y_range+1) for i in range(y_range): prefix[i+1] = prefix[i] + x_sum_list[i] prefix = prefix[1:] h = max(prefix) ##### y축 방향으로 조사 (수직선 조사) vertex_y_incre = sorted(vertex, key = lambda x: (-x[1], x[0])) y_sum_list = [0] * (x_range+1) # y축 방향으로 [1, 0, 0, ..., -1] 더함 for i in range(0,n,2): v1 = vertex_y_incre[i] v2 = vertex_y_incre[i+1] if v1[1] != v2[1]: print('y point does not match!!') break if v1[0] >= v2[0]: print('x point does not align!!') print('v1:', v1) print('v2:', v2) break y_sum_list[v1[0]] += 1 y_sum_list[v2[0]] -= 1 y_sum_list = y_sum_list[:-1] prefix = [0]*(x_range+1) for i in range(x_range): prefix[i+1] = prefix[i] + y_sum_list[i] prefix = prefix[1:] v= max(prefix) print(max(h,v))
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
PEFT 수업에서 실습 모델 선택 기준이 궁금합니다.
안녕하세요, 제공해주신 유익한 수업 잘 듣고있습니다 🙂 현재 PEFT 부분 강의를 듣고 있는데요, 강의를 듣다가 궁금한 점이 생겼는데, 각 PEFT 방법들을 적용한 실습에서 backbone 모델과 데이터셋이 계속 바뀌는 것이었습니다.PEFT 방법과 task(dataset), backbone 모델의 조합을 어떻게 구성해서 실습을 할 지에 대한 선택 사항이 있었을 거 같은데, 선택하는데 있어서 특정한 기준이 있었는지 궁금합니다.예를 들면 아래와 같은 궁금증들 입니다. PEFT 방법 별로 잘 동작하는 task가 있는가?다양한 task에 적용이 가능하단걸 보여주시기 위해서 여러 데이터셋을 사용한 것이고, 각 데이터셋 별로 잘 동작하는 backbone 모델을 선택한 것인가?아니면 PEFT 방법과 데이터셋, backbone 모델 모두 자유롭게 선택이 가능해서 자유롭게 바꿔가면서 한 것인가?제가 LLM 공부를 갓 시작한 단계라 잘 몰라서 드린 질문일 수도 있으니 양해부탁드립니다 ㅎ
-
미해결홍정모의 따라하며 배우는 C언어
10분 15초경 질문
dest = "Start something"; // Error여기서 에러가 생기는 이유를 잘 모르겠어서 찾아보니 같은 질문이 있길래 답변을 봤습니다.https://www.inflearn.com/questions/684074답변을 보고 컴파일러가 안 해주도록 만들어진 거고 그 이유는 런타임에 내용을 바꾸고 싶다면한 글자씩 바꾸는 방식으로 사용하도록 의도적으로 그렇게 정해 놨기 때문이라고 답변해주신 건 이해가 됬습니다.그런데그렇다고 안해주는 이유가 아예 없는 것은 아닌데 "Start something" 같은 문자열은 컴파일 할 때 프로그램에 탑재됩니다라는 말씀이 이해가 잘 안됩니다.문자열이 컴파일할 때 프로그램에 탑재되는 거랑 컴파일 타임이 아니라 런타임에 내용을 바꾸고 싶다면한 글자씩 바꾸라고 의도적으로 정해 놓은 거랑 무슨 상관인지 모르겠습니다.답변 항상 감사합니다.
-
해결됨스케치업 실무활용 SketchUp2023
2023버전 트레이관리가 어디있나요?
1강 기본설정 및 화면최적화에서 트레이관리를 못찾겠습니다 ㅠ
-
해결됨김영한의 실전 자바 - 기본편
기본형 관련 메모리 질문이 있습니다.
안녕하세요. 우선!! 강사님 덕분에 자바에 대해 이해가 더 잘 되고 있습니다. 감사합니다강의를 듣다 궁금한 내용이 생겨 질문하게 되었습니다. 자바의 변수는 기본형과 참조형으로 나눌 수 있고, 기본형의 경우 변수에 값이 저장되어 출력되지만 참조형은 메모리에 저장된 위치 값이 저장되어 출력된다고 가르쳐주셨습니다. 그렇다면 기본형 int a = 10;이 있다면 메모리상에는 변수 a가 가리키는 공간에 10이라는 값이 저장되는데 a를 출력하였을 때 어떻게 바로 10이라는 값이 나오는지 궁금합니다. a를 출력하게 되면 메모리상에서 a라는 변수 값을 저장한 공간을 찾게 되고 그 공간에 있는 값인 10을 출력하게 되는데 참조형과 다르게 바로 값이 나오는 이유가 궁금합니다. 감사합니다..!
-
미해결CloudNet@ - Amazon EKS 기본 강의
api 서버 갯수 질문
eksctl로 생성하기 첫 번째 과정을 보면, 가용영역을 두개로 만들어서 api서버가 두 가용 영역에만 생성 되는 것으로 나오는데......api 서버는 3개 이상 구성 되어야하지 않는지요?그리고 etcd는 몇개 생성 되는지요?
-
미해결스프링 시큐리티 OAuth2
ClientRegistrationRepository 커스터마이즈
ClientRegistrationRepository 를 구성하는 방법으로 client_id, secret 을 properties 나 빈으로 만들어 준비하는 방식으로 많이 예제가 있는데 Resource Owner 와 Client 가 동일해 client_credentials 방식으로 인가를 진행하고 싶을 경우 어떻게 customizing 할 수 있을까요? 고객사마다 가입해 client_id, secret 을 발급받는 상황에서는 미리 properties 나 bean 으로 하드 코딩 해둘 수 없을 것 같습니다.
-
해결됨팀 개발을 위한 Git, GitHub 입문
강의자료 부탁드립니다!
수업 이해가 잘되어서 강의자료보고 나중에 다시 깃을 쓸 때, 참고하고싶습니다!! n9805h@naver.com 입니다!!
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
[은행 계좌 입출금 코드 작성] 해당 코드도 맞는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 다름이 아니라 [김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음] / 9. 메서드 / 은행 계좌 입출금 문제에 관련하여 질문이 있어 작성하게 되었습니다.해당 문제에 대해 입력값은 다음과 같다고 생각하고 BufferedReader로 풀었습니다.1 10000 2 8000 2 3000 3 4package method; // TODO 1. 공통 출력 부분을 start()라는 메서드로 따로 빼서 반복 호출하여 수행 // TODO 2. 입금 출금 등 요구 사항에 따라 구현이 다른 부분을 메서드로 추출 // TODO 3. 이때, 선택에 따른 숫자값과 입금액 및 출금액 등을 파라미터로 전달 // TODO 4. 잔액 확인 및 종료는 별다른 연산이 필요 없으므로 void로 설계 // TODO 5. 이때, 종료는 종료라는 책임이 해당 메서드에 배당이 되어야 하므로 메서드 내부에서 System.exit(0);을 수행 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Method { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; String str; int balance = 0; while ((str = br.readLine()) != null) { st = new StringTokenizer(str, " "); int index = Integer.parseInt(st.nextToken()); // TODO Operator '==' cannot be applied to 'boolean', 'int' // TODO == 연산자는 boolean 타입과 int 타입 사이에서 지원 / 적용될 수 없습니다. -> int가 아닌 boolean을 지원한다는 것 int money = (st.hasMoreTokens()) ? depositOrWithdraw(st) : 0; if (index == 1) { balance = deposit(index, balance, money); } else if (index == 2) { balance = withDraw(index, balance, money); } else if (index == 3) { check(index, balance); } else { exit(index); } } } private static int depositOrWithdraw(StringTokenizer st) { return Integer.parseInt(st.nextToken()); } private static void start() { System.out.println("---------------------------------"); System.out.println("1.입금 | 2.출금 | 3.잔액 확인 | 4.종료"); System.out.println("---------------------------------"); } private static int deposit(int index, int balance, int depositAmount) { start(); System.out.println("선택: " + index); balance += depositAmount; System.out.println("입금액을 입력하세요: " + balance); System.out.println(balance + "원을 입금하였습니다. 현재 잔액: " + balance + "원"); return balance; } private static int withDraw(int index, int balance, int withdramAmount) { start(); System.out.println("선택: " + index); if (balance >= withdramAmount) { balance -= withdramAmount; System.out.println("출금액을 입력하세요: " + withdramAmount); System.out.println(balance + "원을 출금하였습니다. 현재 잔액: " + balance + "원"); } else { System.out.println(withdramAmount + "원을 출금하려 했으나 잔액이 부족합니다."); } return balance; } private static void check(int index, int balance) { start(); System.out.println("선택: " + index); System.out.println("현재 잔액: " + balance + "원"); } private static void exit(int index) { start(); System.out.println("선택: " + index); System.out.println("시스템을 종료합니다."); System.exit(0); } } 그런데, 답지 코드를 보니 BufferedReader가 아닌 Scanner더군요.제가 아직 Scanner는 잘 써보지 않아서 입력값이 주어지지 않은 상황에서 Scanner로 작성된 코드를 BufferedReader로 어떻게 변환해야할지를 잘 모르겠습니다. 따라서 질문은 다음과 같습니다.입력값이 위와 같이 주어진다고 생각하고 푸는게 맞는지맞다면, 해당 BufferedReader 코드도 동일한 값을 내는게 맞는지아니라면, 어느 부분을 잘못 작성하였으며 어떻게 수정하면 되는 것인지앞으로 하드 코딩이 아니라 프로그램을 작성하는 문제에 대해서는 입력값을 어떻게 고려하여 작성하면 좋을지 궁금합니다. 감사합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
26강 삭제 기능관련 질문입니다..!!
UpdateUser 사용시deleteUser 사용시2024-02-10 21:46:30.786 ERROR 10012 --- [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result: 2; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 2] with root cause오류코드를 보니 updateUser는 findById의 결과값이 고유하므로 문제가 일어나지않는데, deleteUser는 findByName으로 유저를 찾기때문에 같은 이름이 존재하면 결과값이 고유하지않으므로 오류가 발생하는거 같은데, (엄준식이 2명존재) 처음부터 Id 값을 받아오거나 생성시에 같은 이름을 못만들게 막는거 말고는해결할 방법이 없을까요?
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
신규강의 무료쿠폰 신청 부탁드립니다. 감사합니다 즐거운 설되셔요
안녕하세요. 좋은 강의 너무 감사합니다.개발자PARK님 spring+전자정부프레임워크 수강을 신청했습니다.여기저기 살펴보다 보니 고마우신 글이 있어 실례지만 부탁 드려봅니다.EA + egovframe 신규 강의 무료쿠폰 주신다 하여 쪽지를 남겨봅니다.너무 감사합니다! 새해 복많이 받으시고 건강조심하셔요. 그리고 즐거운 설 명절되셔요또 좋은 강의 기대하겠습니다감사합니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
문자가 표안에 있는지 여부를 확인하고 싶어요.
안녕하세요~일코님 (맞는지 모르겠네요.)어젠가 그젠가 부터 https://martinii.fun/ 사이트 접속이 안되네요.. ㅠㅠ 아무튼 질문은표밖의 글자만 일괄 수정작업을 하고 있습니다. 볼드체만 추려서 일괄적으로 작업하고 있는데, 표안의 글자들이 바뀌고는 해서 표안의 글자는 패스~ 하게 하고 싶어서 홈페이지를 찾아보려했는데 저만 그런건지 먹통이네요.. ㅠㅠ 현재 상태는 1번부터 100번 문제가 있으면, 중간중간 지워야 하는 문제들이 있어서 넘버링 작업을 하고 있습니다.(1~XX 번까지 순서대로 수정하는 작업) 이것을 자동화하는 중에각 문제마다 지문이 표안에 있습니다.예) 번호(볼드) 문제지문(표안에 있음)이렇게 문제들의 반복인데, 간혹 지문(표안에 있는)에 볼드 숫자들이 들어가서 문제의 번호를 일괄로 바꾸다가 지문의 숫자가 바뀌어서 좀... 난간하게 되는데, 표안의 문자들은 패스하게 하는 코드를 알고 싶습니다. 그러니까... 문자가 표안에 있는지 여부를 확인 할 수 있으면 될것같습니다. 설 연휴 잘 보내시고, 새해 복 많이 받으세요~~
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
피마 인디언 당뇨병 예측
안녕하십니까 선생님. 강의 너무 잘 듣고 있는 머신러닝 꿈나무 도은우입니다. 저는 현직의사로 의료ai의 길을 걸을려고 하는데 선생님의 강의가 너무 많은 도움이 되고 있습니다. 다름이 아니라, 인디언 당뇨병 예측에서 zero_features의 0의 값을 zero_features의 값의 mean으로 replace하셨는데, 이럴경우에 애초에 0이 있는것 때매 의미 있는 평균값이 나오지 않는다고 저는 생각했습니다. 애초에 0이 아닌 값들의 평균으로 하는건 어떤가요>???
-
미해결비전공자의 전공자 따라잡기 - 자료구조(with JavaScript)
let current = this.head 질문 있습니다!
this.head 대신 let current = this.head 처럼 current변수에 할당하여 사용하는 이유가 무엇일까요?ㅠ변수에 할당하여 사용하지 않았을 때 값을 보니 값이 다르게 나와 문의드립니다. li.add(3)이 실행될때 첫번째 노드가 사라짐 정상출력
-
미해결자바 11 LTS 업데이트 - JAVA 9, 10, 11 새기능 요약
Optional<T> 새 기능 7초 정도 영상이 안나옵니다
02:40 ~ 02:49 부분이 나오지 않습니다. Optional.of 와 Stream에 관한 부분을 설명하셨을 것 같은데, 확인 부탁드립니다 !
-
해결됨야, 너도 AI 서비스 만들 수 있어. [이미지 AI 서비스 서버리스 풀스택]
Lecture 5 내용중 heic변환관련..
안녕하세요 정말 재미있을꺼 같아서 강좌 나오자마자 결제해서 보고있습니다.Lecture 5 내용중에 파일변환 하는 부분이있는데 heic2any 룰 활용해서 heic 변환하잖아요?로컬로 리액트 돌리고 이미지 업로드 할때 heic 제외하고 전부 이미지는 업로드가 되고..heic를 포함해서 업로드하면 아무런 페이지가 나오지 않는데.. 왜그런걸까요?윈도우 사용하고있는데.. 혹시나 몰라서 ms에서 제공하는 heic 코덱을 구매해서 윈도우상에서는 이미지가 읽어는 지더라구요.. 웹에서는 heic 제외하고 정상 작동합니다.. 확인 부탁드립니다! heic 포함했을때 heic 포함하지 않을때
-
해결됨모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
시큐어 코딩적용 완성된 PHP 소스, 강의자료 공유
시큐어 코딩적용 완성된 Board PHP 소스 공유 (mySQL, MS SQL. Oracle) 가능할련지요?또한 강의 자료도 공유 가능한지요? 감사합니다.
-
미해결카프카 완벽 가이드 - 코어편
nocommit 관련 질문
package com.example; import org.apache.kafka.clients.consumer.*; import org.apache.kafka.common.TopicPartition; import org.apache.kafka.common.errors.WakeupException; import org.apache.kafka.common.serialization.StringDeserializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.time.Duration; import java.util.Arrays; import java.util.Map; import java.util.Properties; public class ConsumerPartitionAssignSeek { public static final Logger logger = LoggerFactory.getLogger(ConsumerPartitionAssignSeek.class.getName()); public static void main(String[] args) { String topicName = "pizza-topic"; Properties props = new Properties(); props.setProperty(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092"); props.setProperty(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); props.setProperty(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); //props.setProperty(ConsumerConfig.GROUP_ID_CONFIG, "group_pizza_assign_seek_v001"); //props.setProperty(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, "6000"); props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); KafkaConsumer<String, String> kafkaConsumer = new KafkaConsumer<String, String>(props); TopicPartition topicPartition = new TopicPartition(topicName, 0); //kafkaConsumer.subscribe(List.of(topicName)); kafkaConsumer.assign(Arrays.asList(topicPartition)); kafkaConsumer.seek(topicPartition, 5L); //main thread Thread mainThread = Thread.currentThread(); //main thread 종료시 별도의 thread로 KafkaConsumer wakeup()메소드를 호출하게 함. Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { logger.info(" main program starts to exit by calling wakeup"); kafkaConsumer.wakeup(); try { mainThread.join(); } catch(InterruptedException e) { e.printStackTrace();} } }); //kafkaConsumer.close(); //pollAutoCommit(kafkaConsumer); //pollCommitSync(kafkaConsumer); //pollCommitAsync(kafkaConsumer); pollNoCommit(kafkaConsumer); } private static void pollNoCommit(KafkaConsumer<String, String> kafkaConsumer) { int loopCnt = 0; try { while (true) { ConsumerRecords<String, String> consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); for (ConsumerRecord record : consumerRecords) { logger.info("record key:{}, partition:{}, record offset:{} record value:{}", record.key(), record.partition(), record.offset(), record.value()); } } }catch(WakeupException e) { logger.error("wakeup exception has been called"); }catch(Exception e) { logger.error(e.getMessage()); }finally { logger.info("finally consumer is closing"); kafkaConsumer.close(); } } private static void pollCommitAsync(KafkaConsumer<String, String> kafkaConsumer) { int loopCnt = 0; try { while (true) { ConsumerRecords<String, String> consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); for (ConsumerRecord record : consumerRecords) { logger.info("record key:{}, partition:{}, record offset:{} record value:{}", record.key(), record.partition(), record.offset(), record.value()); } kafkaConsumer.commitAsync(new OffsetCommitCallback() { @Override public void onComplete(Map<TopicPartition, OffsetAndMetadata> offsets, Exception exception) { if(exception != null) { logger.error("offsets {} is not completed, error:{}", offsets, exception.getMessage()); } } }); } }catch(WakeupException e) { logger.error("wakeup exception has been called"); }catch(Exception e) { logger.error(e.getMessage()); }finally { logger.info("##### commit sync before closing"); kafkaConsumer.commitSync(); logger.info("finally consumer is closing"); kafkaConsumer.close(); } } private static void pollCommitSync(KafkaConsumer<String, String> kafkaConsumer) { int loopCnt = 0; try { while (true) { ConsumerRecords<String, String> consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); for (ConsumerRecord record : consumerRecords) { logger.info("record key:{}, partition:{}, record offset:{} record value:{}", record.key(), record.partition(), record.offset(), record.value()); } try { if(consumerRecords.count() > 0 ) { kafkaConsumer.commitSync(); logger.info("commit sync has been called"); } } catch(CommitFailedException e) { logger.error(e.getMessage()); } } }catch(WakeupException e) { logger.error("wakeup exception has been called"); }catch(Exception e) { logger.error(e.getMessage()); }finally { logger.info("finally consumer is closing"); kafkaConsumer.close(); } } public static void pollAutoCommit(KafkaConsumer<String, String> kafkaConsumer) { int loopCnt = 0; try { while (true) { ConsumerRecords<String, String> consumerRecords = kafkaConsumer.poll(Duration.ofMillis(1000)); logger.info(" ######## loopCnt: {} consumerRecords count:{}", loopCnt++, consumerRecords.count()); for (ConsumerRecord record : consumerRecords) { logger.info("record key:{}, partition:{}, record offset:{} record value:{}", record.key(), record.partition(), record.offset(), record.value()); } try { logger.info("main thread is sleeping {} ms during while loop", 10000); Thread.sleep(10000); }catch(InterruptedException e) { e.printStackTrace(); } } }catch(WakeupException e) { logger.error("wakeup exception has been called"); }finally { logger.info("finally consumer is closing"); kafkaConsumer.close(); } } } 해당 코드에 문제가 없는 것으로 보입니다. java.lang.IllegalStateException: This consumer has already been closed. at org.apache.kafka.clients.consumer.KafkaConsumer.acquireAndEnsureOpen(KafkaConsumer.java:2456) at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1218) at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1211) at com.example.ConsumerPartitionAssignSeek.pollNoCommit(ConsumerPartitionAssignSeek.java:63) at com.example.ConsumerPartitionAssignSeek.main(ConsumerPartitionAssignSeek.java:53) 해당하는 에러가 띄는데 이유를 알 수 있을까요? git 코드는 잘돌아가는 것을 확인했습니다. 차이점이 알 수가 없어서 질문드립니다,
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
User 클래스에 @Getter사용시 컴파일 오류
User클래스의 getter들을 정리하고싶어서Lombok의 @Getter 어노테이션을 사용해봤는데컴파일 에러가 나요 ㅠㅠUser 클래스를 @Getter로 만든사진UserResponse 클래스가 getId/getName/getAge 메소드를찾지 못했다는 에러가 발생합니다.User 클래스에 Getter를 직접 만들어준 모습정상작동하는모습롬복은 컴파일 시점보다 빠르게 getter을 만들어주는게 맞는데,제가 모르는 JPA관련 체킹로직이 롬복이 getter을만들기전에 동작해서 오류가 발생하는걸까요?다른 class들은 @Getter관련 문제가 없었거든요..제 나름대로 왜 이럴까 + 해결방법을 고민해봤는데잘모르겠어서 질문남깁니다...질문입니다!! @Entity가 붙은 class 에는 @Getter 어노테이션을 사용할 수 없나요:? +추가)생성자 관련 어노테이션도 안되는것 같습니다.2024-02-10 20:44:49.142 ERROR 15448 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: No default constructor for entity: : com.group.libraryapp.domain.User; nested exception is org.hibernate.InstantiationException: No default constructor for entity: : com.group.libraryapp.domain.User] with root cause ///// @NoArgsConstructor(access=AccessLevel.PROTECTED) ///////////////////////////////////////// protected User() {}에러메세지에 No default construtor라는데 둘이 같지 않나요? 이거도 역시 직접 생성자를 만들어주니 문제없이 작동하네요.. 롬복이 문제인걸까요?