묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
깃, 블로그 업로드 관련 질문드립니다.
안녕하세요, 선생님. 혹시 공부한 코드는 깃과 블로그에 올려도 되는지 궁금합니다!
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
api 응답으로 map 사용을 지양하는 이유
안녕하세요 호돌님유쾌하고 유익한 강의 잘 듣고 있습니다.강의 중 api 응답 값으로 map<String ,String>을 넘겨주는 대신에 내부 클래스나, ErrorResponse등 클래스를 넘겨주는 방식을 사용하셨는데요제목처럼 응답 값으로 map의 사용을 지양하는 이유가 궁금합니다.무튼 강의 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
양방향 연관관계에서 양쪽 값.
양방향 연관관계에서는 양쪽에 값을 설정해주어야 합니다. 1. OrderItem의 경우 Item을 생성 메서드의 orderItem.setItem(item)을 통해 값을 설정해 준 것인가요? 2. 일대다 에서 일에서 다로 가는 단방향 연관관계에서는 '다' 쪽이 외래키를 가지므로 '다' 쪽에서 '일'쪽의 값을 설정해 주어야하나요?
-
미해결실전! 스프링 데이터 JPA
findMemberDto에서 setTeam하는 방법에 대해
안녕하세요 수업을 듣다 의문이 들어 질문 남깁니다. findMemberDTO() 작성시 team을 set하는 부분에서 아래와 같이 하셨는데 (테스트코드 크게 신경쓰시지않고 하신걸로 생각되는데..) Member m1 = new Member("AAA", 10);m1.setTeam(team);아래와 같이 연관관계편의 메소드(changeTeam)를 통해 작성된 생성자 (3rd param이 team 주입)를 사용하는게 양방향 정합성 측면에서 나은게 아닌지 생각되어 질문드립니다. Member m1 = new Member("AAA", 10,team); 연관관계편의메소드 사용과 setter 사용이 항상 좀 헷갈리네요. 의견부탁드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성메서드에서요 ~!
order(주문)을 넣을떄 생성메소드를 만들어 줬는데 1)주문 엔티티에서 왜 생성자를 쓰지 않고 생성메소드를 써서 만드나요 이것도 도메인 설계로 엔티티에 다 넣어주려고 그런건가요?? 2) 생성메소드를 static으로 만든 이유가 있을까요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
repository mocking 문의
안녕하세요~ 최태현님 테스트 코드 작성에 있어서 고민이 있어 문의남깁니다. 이전까지 다른 강의 영상에서는 repository를 mocking해서 서비스를 테스트하는 영상을 많이 봤습니다. 그래서 서비스 테스트시에는 repository 를 mocking 하는것이 실무에서 흔한 방식이고 best practice라고 생각했습니다 그런데 실무에서 적용해보니 mocking을 하게되면 테스트 코드가 서비스 메소드의 내부 구현에 대해 너무 잘 알게되더라구요, 그러다보니 실제 코드의 내부 구현이 바뀌면 테스트 코드도 바뀌게 될 여지가 많더라구요.. 반면 스프링부트 테스트로 h2에 연결해서 하는 테스트는 상대적으로 느려 피드백이 늦는것이 단점일것같습니다. 개인적으로는 강의에 나온것처럼 스프링 부트 테스트로 h2에 연결해서 테스트하는 후자가 더 마음에 드는데요. 실제로 현업에서는 서비스 테스트시 둘중 어떤걸로 사용하시나요? 실제 강의하신것처럼 후자로 테스트를 많이 하시나요? 좋은 강의 감사합니다~
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
단일 DB 연결을 위한 Kafka 사용 이유 질문
안녕하세요 강사님, 너무 좋은 강의 잘 수강하고 있어 감사합니다. kafka 강의를 듣던 중 질문이 생겼는데요, 서로 다른 DB를 사용하는 각각의 마이크로서비스에서 데이터 동기화 문제를 해결하기 위해 Kafka를 사용한다는 것은 잘 알겠습니다. 그런데 동일한 DB를 사용하는 같은 마이크로서비스에서는 각각의 마이크로서비스에 서로다른 h2 DB가 연결되도록 하지 않고 동일한 mariadb로 설정해둔다면 데이터 동기화 문제는 없을 것 같은데 굳이 동일 마이크로서비스 내에서 서로 다른 인스턴스 사이의 데이터 동기화를 위해 kafka를 사용하는 이유가 무엇인지 잘 궁금해서 질문드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
게시판을 여러 개 만들 때
1. 예를들어 자유게시판, 건의게시판 이렇게 여러개가 있고 기능은 거의 똑같지만 건의에는 사진업로드 기능이 추가로 존재할 때 자유게시판 컨트롤러, 레파지토리, 모델, ... 건의게시판 컨트롤러, 레파지토리, 모델, ... 이렇게 다 각자 만들어줘야 하나요? 아니면 컨트롤러 레파지토리 모델 자유,건의 게시판 통합해서 만드나요? 2. DB에서 테이블도 자유, 건의 게시판 따로 만들어서 개발하나요? ( title, content 이런 것들 )
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 enum에 관하여 질문 좀 드리겠습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. JPA에서 enum을 활용할 때 질문드리겠습니다. 요일을 enum 타입으로 만들어 (0~6, 일~월 이런 형식) 체크 박스로 입력을 받아, 체크를 선택한 요일은 매장의 휴무일로 지정하는 로직을 구현하는 중입니다. @ElementCollection을 활용하여 간단하게 처리하려고 했으나, 추천하시는 방식이 따로 있길래 어떤 식으로 로직을 작성해야 하는지가 너무 궁금해졌습니다. https://www.inflearn.com/questions/21303 1. 위에서 영한님께서 해주신 답변 중, 2번의 경우를 추천하셨기에 2번으로 진행하려고 하였습니다! 혹시 이 경우, 2번 방법을 추천하신 이유가 무엇인지가 궁금합니다!!! 2. 위 링크의 2번 로직으로 코드를 작성하면 다대다 엔티티 매핑이 발생하는데 개인적인 생각에 요일과의 매핑은 단순히 요일과 요일에 엮여있는 매장 ID값만 알면 되는 것 같아 @ManyToMany를 그대로 사용해도 되는 건가?? 라는 생각이 들었습니다. 그대로 사용을 해도 좋은지 아니면 1 : N, N : 1로 풀어주는 것이 좋은지 궁금합니다!!!! 또, 이렇게 요일을 처리하는 구현을 Enum보다 추천하실만한 방법이 있는지, 있다면 어떤 방식인지도 말씀해주시면 감사드리겠습니다!! 날씨가 많이 더운데 더위 조심하시고 폭우 조심하세요! 감사합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트코드 회원가입 오류 질문
IllegalStateException 오류가 나는데,yml에 MVCC도 제거했고, h2도 켰는데도 그러네요@Autowired MemberService memberService;@Autowired MemberRepository memberRepository;여기에서 왜 빨간줄이 나는지 잘 모르겠습니다이상해서 MemberRepository와 MemberService도 pdf에서 복사해서 붙여넣어도 그렇습니다(@Service, @Repository 도 되어있습니다)Unit4로 했습니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
API 개발 협업 관련 질문드립니다.
안녕하세요 영한님 스프링 기본편부터 querydsl까지 들으면서 혼자 프로젝트를 진행했었고 이제 사이드 프로젝트를 하면서 다른 프론트엔드 개발자와 협업해보고 싶습니다. 구글링을 해도 원하는 정보를 얻을 수 없어서... 질문을 남겨보려고 합니다. 보통 사이드 프로젝트를 진행하면 백엔드(저)는 제 pc로, 프론트엔드 개발자분은 그 분의 pc로 개발하게 될텐데, 제가 api 개발을 마치고 깃허브에 코드를 올려놓으면 프론트분이 제 코드를 clone해서 프론트분의 로컬 환경에서 api를 테스트하는 메커니즘인가요? 또한 만약 이렇게 테스트하게 된다면, 프론트분은 db이 어떻게 접근하는지, 보통 백엔드는 api만 개발하고 테스트는 하지 않는지도 궁금합니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
부끄럽지만 아래 글을 읽고도 PostEditor의 목적을 잘 모르겠습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래 글의 답변을 읽고 이해한 바로는 반드시 title과 content를 모두 가져오기 위해 (해당 프로젝트에서 그렇게 하기로 협의가 되어있으므로) PostEditor를 사용해서 title과 content를 강제하는 목적으로 만들었다는 뜻으로 이해했는데요 그게 그냥 response용으로 만든 Edit이라는 DTO 객체에 NotEmpty를 쓰는 것과 무엇이 다른가요? 오히려 분산함으로써 관리만 더 번거로워진 게 아닌가 하는 생각이 들어서요.. 아니면 해당 예제는 간단하게 만든 것이라 별다른 차이를 느낄 수 없는 것이고 추후 확장성을 고려해서 요구사항이 늘어날 때 Post 엔티티를 오염시키거나 서비스 - 레파지토리 사이의 DTO에 대한 역방향 의존성을 주지 않고 도메인 계층에서 로직을 해결하기 위해서 분리한 건가요? 아직 아는 게 별로 없어서 질문의 핀트를 잡지 못해 다소 장황하게 질문 드린 점 죄송합니다 ㅜ 짧은 답변이라도 주신다면 정말 감사하겠습니다!
-
미해결스프링 배치
firstPageSql, NamedParameterJdbcTemplate null 로 들어가는데 왜그럴까요..
(사진)
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 컴파일러 버전문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 위와같은 에러가 발생합니다. 에러 문구에 17버전 이라고 되어있어 구글링을 통하여 java버전이 제대로 설정되어있지 않음을 파악하고 환경변수 설정을 해주었습니다. 그래도 저 에러가 해결되지않아서 질문드립니다.
-
미해결스프링 배치
동일한 JobInstance에 대해서는 JobExecution이 복사가 되나요?
안녕하세요? 공유자님의 강의 잘 보고 있습니다 스프링 배치 도메인 이해 - ExecutionContext 영상의 41:46부분을 보면 jobInstance는 하나이지만 JobExecution은 똑같은 데이터로 로우가 하나 더 생겼습니다.이같은 경우는 jobExecution2가 jobExecution1의 데이터를 기반으로 실행되고 DB에 복제되어 저장되었다고 보는게 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 데이터 jpa 강의 관련 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 스프링 데이터 jpa 강의를 따라 코딩 중에, SpringDataJpaMemberRepository 인터페이스를 생성 후에 회원가입 테스트를 실행하였는데 자꾸 이런 에러가 뜹니다. 구글링 하면서 비슷한 사람들을 찾아 수정을 해봤는데 아직 오류를 못찾겠어서 질문 드립니다ㅜㅜ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
에러 java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132
[질문 내용]강의 내용 중 "JPA와 DB 설정 동작 확인"의 20분 경부터 나오는 ./gradlew clean build 를 실행하다가 -> 아래 화면 캡처와 같이 java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132 에러가 발생했습니다. Test 파일 2개 모두 동일한 에러 메시지입니다. 커뮤니티의 답변 및 구글 검색을 통해 문제를 해결하려 했으나, 해결하지 못해 문의드립니다. (커뮤니티 답변에서 저와 동일한 에러를 만난 경우는 진도가 더 나간 상태에서 발생한 에러였으며, 구글링에서는 대부분 AWS배포와 관련되어 이 에러가 발생하고 그것을 해결한 케이스였습니다.) Test 파일 2개는 아래와 같이 작성되었습니다. 커뮤니티 답변을 모두 확인한 것은 아니었기에, 혹시 저와 동일한 상황에서 동일한 에러가 해결된 경우가 있다면 링크를 부탁드립니다. (혹, 답변을 위해 더 공유해야 할 내용이 있다면 알려주세요)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OSIV 질문드려요~
질문을 찾아봤는데 없는것 같아서 질문 드립니다! 혹시 특정 Service만 OSIV를 끄고 커넥션을 유지하는 방법은 없을까요? 이전 강의에서 hibernate.default_batch_fetch_size는 전체 사이즈를 정하고 @BatchSize처럼 개별적으로 사이즈를 정하듯이 OSIV는 개별적으로 on/off는 불가능한지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
UpdateItemDTO
23분쯤에 UpdateItemDTO를 service계층에서 만들고 controller로부터 String name, int price... 이렇게 따로 받지말고 dto로 한번에 받는게 좋은 설계다 라고 말씀 해주셨는데 그러면 Controller에서 service 계층의 UpdateItemDTO를 알고 있어야 DTO를 service계층으로 보내줄텐데 이렇게 되면 UpdateItemDTO를 service계층에 만드는것은 문제가 따로 없는건가요? 서로 다른 계층에 대해서는 서로 몰라야 한다고 생각했는데 헷갈려서 질문 드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Source Connector 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Postman 으로 데이터값 { "name": "my-source-connect", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url": "jdbc:mariadb://localhost:3306/mydb", "connection.user": "root", "connection.password": "1234", "mode": "incrementing", "incrementing.column.name": "id", "table.whitelist": "users", "topic.prefix": "my_topic_", "tasks.max": "1" } } 을 Post 방식으로 보냈고 (h2 console 창에서 연결 확인했습니다 ) 다시 Get 방식으로 보냈을때 my-source-connect 확인했습니다. 그 후 connect 콘솔 창에 뜬 로그 입니다. [2022-08-08 23:05:06,233] INFO JdbcSourceConnectorConfig values: batch.max.rows = 100 catalog.pattern = null connection.attempts = 3 connection.backoff.ms = 10000 connection.password = [hidden] connection.url = jdbc:mariadb://localhost:3306/mydb connection.user = root db.timezone = UTC dialect.name = incrementing.column.name = id mode = incrementing numeric.mapping = null numeric.precision.mapping = false poll.interval.ms = 5000 query = query.retry.attempts = -1 query.suffix = quote.sql.identifiers = ALWAYS schema.pattern = null table.blacklist = [] table.monitoring.startup.polling.limit.ms = 10000 table.poll.interval.ms = 60000 table.types = [TABLE] table.whitelist = [users] timestamp.column.name = [] timestamp.delay.interval.ms = 0 timestamp.granularity = connect_logical timestamp.initial = null topic.prefix = my_topic_ transaction.isolation.mode = DEFAULT validate.non.null = true (io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig:361) [2022-08-08 23:05:06,241] INFO AbstractConfig values: (org.apache.kafka.common.config.AbstractConfig:361) [2022-08-08 23:05:06,270] INFO [Worker clientId=connect-1, groupId=connect-cluster] Connector my-source-connect config updated (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1534) [2022-08-08 23:05:06,275] INFO [Worker clientId=connect-1, groupId=connect-cluster] Rebalance started (org.apache.kafka.connect.runtime.distributed.WorkerCoordinator:225) [2022-08-08 23:05:06,275] INFO [Worker clientId=connect-1, groupId=connect-cluster] (Re-)joining group (org.apache.kafka.clients.consumer.internals.AbstractCoordinator:540) [2022-08-08 23:05:06,280] INFO [Worker clientId=connect-1, groupId=connect-cluster] Successfully joined group with generation Generation{generationId=48, memberId='connect-1-74e3b810-49fe-4cd5-90cf-0c9408ba73ab', protocol='sessioned'} (org.apache.kafka.clients.consumer.internals.AbstractCoordinator:596) [2022-08-08 23:05:06,297] INFO [Worker clientId=connect-1, groupId=connect-cluster] Successfully synced group in generation Generation{generationId=48, memberId='connect-1-74e3b810-49fe-4cd5-90cf-0c9408ba73ab', protocol='sessioned'} (org.apache.kafka.clients.consumer.internals.AbstractCoordinator:756) [2022-08-08 23:05:06,298] INFO [Worker clientId=connect-1, groupId=connect-cluster] Joined group at generation 48 with protocol version 2 and got assignment: Assignment{error=0, leader='connect-1-74e3b810-49fe-4cd5-90cf-0c9408ba73ab', leaderUrl='http://127.0.0.1:8083/', offset=44, connectorIds=[my-source-connect], taskIds=[], revokedConnectorIds=[], revokedTaskIds=[], delay=0} with rebalance delay: 0 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1689) [2022-08-08 23:05:06,303] INFO [Worker clientId=connect-1, groupId=connect-cluster] Starting connectors and tasks using config offset 44 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1216) [2022-08-08 23:05:06,308] INFO [Worker clientId=connect-1, groupId=connect-cluster] Starting connector my-source-connect (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1299) [2022-08-08 23:05:06,313] INFO Creating connector my-source-connect of type io.confluent.connect.jdbc.JdbcSourceConnector (org.apache.kafka.connect.runtime.Worker:274) [2022-08-08 23:05:06,316] INFO SourceConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.SourceConnectorConfig:361) [2022-08-08 23:05:06,317] INFO EnrichedConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig:361) [2022-08-08 23:05:06,339] INFO Instantiated connector my-source-connect with version 10.5.1 of type class io.confluent.connect.jdbc.JdbcSourceConnector (org.apache.kafka.connect.runtime.Worker:284) [2022-08-08 23:05:06,339] INFO Finished creating connector my-source-connect (org.apache.kafka.connect.runtime.Worker:310) [2022-08-08 23:05:06,341] INFO Starting JDBC Source Connector (io.confluent.connect.jdbc.JdbcSourceConnector:71) [2022-08-08 23:05:06,344] INFO [Worker clientId=connect-1, groupId=connect-cluster] Finished starting connectors and tasks (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1244) [2022-08-08 23:05:06,358] INFO JdbcSourceConnectorConfig values: batch.max.rows = 100 catalog.pattern = null connection.attempts = 3 connection.backoff.ms = 10000 connection.password = [hidden] connection.url = jdbc:mariadb://localhost:3306/mydb connection.user = root db.timezone = UTC dialect.name = incrementing.column.name = id mode = incrementing numeric.mapping = null numeric.precision.mapping = false poll.interval.ms = 5000 query = query.retry.attempts = -1 query.suffix = quote.sql.identifiers = ALWAYS schema.pattern = null table.blacklist = [] table.monitoring.startup.polling.limit.ms = 10000 table.poll.interval.ms = 60000 table.types = [TABLE] table.whitelist = [users] timestamp.column.name = [] timestamp.delay.interval.ms = 0 timestamp.granularity = connect_logical timestamp.initial = null topic.prefix = my_topic_ transaction.isolation.mode = DEFAULT validate.non.null = true (io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig:361) [2022-08-08 23:05:06,369] INFO Attempting to open connection #1 to MySql (io.confluent.connect.jdbc.util.CachedConnectionProvider:79) [2022-08-08 23:05:06,446] INFO Starting thread to monitor tables. (io.confluent.connect.jdbc.source.TableMonitorThread:82) [2022-08-08 23:05:06,494] INFO SourceConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.SourceConnectorConfig:361) [2022-08-08 23:05:06,498] INFO EnrichedConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig:361) [2022-08-08 23:05:06,530] ERROR Encountered an unrecoverable error while reading tables from the database (io.confluent.connect.jdbc.source.TableMonitorThread:224) org.apache.kafka.connect.errors.ConnectException: The connector uses the unqualified table name as the topic name and has detected duplicate unqualified table names. This could lead to mixed data types in the topic and downstream processing errors. To prevent such processing errors, the JDBC Source connector fails to start when it detects duplicate table name configurations. Update the connector's 'table.whitelist' config to include exactly one table in each of the tables listed below. [["mydb"."users", "performance_schema"."users"]] at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:152) at io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:164) at org.apache.kafka.connect.runtime.Worker.connectorTaskConfigs(Worker.java:359) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnector(DistributedHerder.java:1428) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnectorTasksWithRetry(DistributedHerder.java:1366) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1000(DistributedHerder.java:128) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1318) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1312) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:371) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:295) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) [2022-08-08 23:05:06,538] ERROR WorkerConnector{id=my-source-connect} Connector raised an error (org.apache.kafka.connect.runtime.WorkerConnector:506) org.apache.kafka.connect.errors.ConnectException: Encountered an unrecoverable error while reading tables from the database at io.confluent.connect.jdbc.source.TableMonitorThread.fail(TableMonitorThread.java:226) at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:153) at io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:164) at org.apache.kafka.connect.runtime.Worker.connectorTaskConfigs(Worker.java:359) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnector(DistributedHerder.java:1428) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnectorTasksWithRetry(DistributedHerder.java:1366) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1000(DistributedHerder.java:128) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1318) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1312) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:371) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:295) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.apache.kafka.connect.errors.ConnectException: The connector uses the unqualified table name as the topic name and has detected duplicate unqualified table names. This could lead to mixed data types in the topic and downstream processing errors. To prevent such processing errors, the JDBC Source connector fails to start when it detects duplicate table name configurations. Update the connector's 'table.whitelist' config to include exactly one table in each of the tables listed below. [["mydb"."users", "performance_schema"."users"]] at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:152) ... 14 more [2022-08-08 23:05:06,542] ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to reconfigure connector's tasks, retrying after backoff: (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1377) org.apache.kafka.connect.errors.ConnectException: Encountered an unrecoverable error while reading tables from the database at io.confluent.connect.jdbc.source.TableMonitorThread.fail(TableMonitorThread.java:226) at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:153) at io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:164) at org.apache.kafka.connect.runtime.Worker.connectorTaskConfigs(Worker.java:359) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnector(DistributedHerder.java:1428) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnectorTasksWithRetry(DistributedHerder.java:1366) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1000(DistributedHerder.java:128) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1318) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1312) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:371) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:295) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.apache.kafka.connect.errors.ConnectException: The connector uses the unqualified table name as the topic name and has detected duplicate unqualified table names. This could lead to mixed data types in the topic and downstream processing errors. To prevent such processing errors, the JDBC Source connector fails to start when it detects duplicate table name configurations. Update the connector's 'table.whitelist' config to include exactly one table in each of the tables listed below. [["mydb"."users", "performance_schema"."users"]] at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:152) ... 14 more [2022-08-08 23:05:06,546] INFO [Worker clientId=connect-1, groupId=connect-cluster] Skipping reconfiguration of connector my-source-connect since it is not running (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1415) [2022-08-08 23:05:06,795] INFO [Worker clientId=connect-1, groupId=connect-cluster] Skipping reconfiguration of connector my-source-connect since it is not running (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1415) 계속 구글링하고 찾아봤는데 뭐가 잘못되었는지 잘모르겠습니다 ㅠ