안녕하세요. 'Debezium Source Connector 생성하기' 수강중에 진행이 막혀 질문드립니다. config를 register_connector로 등록할 때 발생한 이슈인데 해당 이슈 : { "error_code": 400, "message": "Connector configuration is invalid and contains the following 1 error(s):\nUnable to connect: Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.\nYou can also find the above list of errors at the endpoint `/connector-plugins/{connectorType}/config/validate`" } = 커넥터 구성이 잘못되어 MySQL 서버에 연결할 수 없다로 해석되어 다음과 같은 해결책을 시도해보았습니다. 0. http GET http://localhost:8083/connector-plugins | jq '.[].class' 조회시 io.debezium.connector.mysql.MySqlConnector 정상등록 확인 1.MySQL 서버 정상실행중 확인 2.포트 확인 > SHOW VARIABLES LIKE 'port'; >> 3306 3.네트워크 연결 상태 확인 3-1. mysql 외부접속 허용 확인 : my.cnf에서 bind항목 점검 >> 없음=기본세팅인 허용 3-2. 방화벽 규칙 확인 : Chain INPUT, FORWARD, OUTPUT : Accept , sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT 4.SSL 문제인가? >> my.cnf에 따로 ssl-mode 설정은 없음. 5.ifconfig >> enp0s8 inet 192.168.56.101 이렇게 확인했음에도 해결되지않아 도움요청드립니다. config { "name": "mysql_cdc_oc_source_test01", "config": { "connector.class": "io.debezium.connector.mysql.MySqlConnector", "tasks.max": "1", "database.hostname": "192.168.56.101", "database.port": "3306", "database.user": "connect_dev", "database.password": "connect_dev", "database.server.id": "10000", "database.server.name": "test01", "database.include.list": "oc", "database.allowPublicKeyRetrieval": "true", "database.history.kafka.bootstrap.servers": "192.168.56.101:9092", "database.history.kafka.topic": "schema-changes.mysql.oc", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "value.converter": "org.apache.kafka.connect.json.JsonConverter" } } connect 로그는 다음과 같습니다. ERROR Failed testing connection for jdbc:mysql://192.168.56.101:3306/?useInformationSchema=true&nullCatalogMeansCurrent=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL&connectTimeout=30000 with user 'connect_dev' (io.debezium.connector.mysql.MySqlConnector:103) com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:829) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:449) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:242) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$1(JdbcConnection.java:244) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:888) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:883) at io.debezium.jdbc.JdbcConnection.connect(JdbcConnection.java:411) at io.debezium.connector.mysql.MySqlConnector.validateConnection(MySqlConnector.java:98) at io.debezium.connector.common.RelationalBaseSourceConnector.validate(RelationalBaseSourceConnector.java:54) at org.apache.kafka.connect.runtime.AbstractHerder.validateConnectorConfig(AbstractHerder.java:459) at org.apache.kafka.connect.runtime.AbstractHerder.lambda$validateConnectorConfig$2(AbstractHerder.java:362) 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:829) Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
안녕하세요. 강의 잘 듣고 있습니다. 쉽게 잘 풀어 설명해주셔서 재미있게 듣고 있습니다! Array Loop 파트 중 궁금증이 생겨 질문 드립니다. for loop를 이용해 배열 순회: 순회 범위를 조절하는 경우 유리 for-each를 이용해 배열 순회: 배열의 처음부터 끝까지 순회하는 경우 유리 정도로 우선 이해했는데, 만약 for-each를 사용하고 내부에서 조건문을 이용해 break 처리해 반복을 멈출 수도 있다는 생각이 듭니다. 두 가지 방법에 유의미한 차이가 있나요? (e.g. 배열이 큰 경우 속도 차이가 있어 성능 문제로 이어질 수 있나요?) 두 방법 중 무엇을 사용하든 차이가 없다면 기기 성능이 점점 좋아지기 때문에 무의미해진 건가요? 아니면 단순히 가독성의 문제인가요? 위 두 질문 이외에 개발 공부를 하면서 든 궁금한 점이 있어 추가로 질문을 드리고 싶습니다. 어떤 문제를 해결하는데 가능한 방법이 여러가지가 있다면 성능 측면에서 더 좋은 해결 방법을 선택하고 싶습니다. 어떤 방법이 더 성능이 좋은지(빠르고 부하가 덜한지)를 알려면 어떻게 해야 하나요?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
섹션 0, dartpad 기본기인 첫 번째 영상을 보고있는데요. Set함수를 배우는 부분에서 final Set<String> names = { ... 하셨는데, 제가 영상 앞에서 배우기로는 final은 타입을 따로 주지 않아도 되고, 값을 바꿀 수 없다는 걸로 배웠는데 제가 따로 테스트해본 결과 (1): final Set<> names ... 로 작성 -> 타입이 없다며, 오류발생. (2): names.add("") -> final로 선언을 하면, 값을 바꿀 수 없는걸로 아는데 값이 추가가능함. 이 부분에서 앞에서 배운 final 개념이 혼동이 와서 이렇게 질문을 남겨봅니다. 리스트에서의 final은 다른 개념인건가요?
d유형과 e유형 내용에서 여기 아래 컨텐츠는 html 코딩으로 작성해야 하며, 이미지로 삽입하면 안된다 부분이 말하는게 배너나 갤러리에 들어가는 이미지에 텍스트를 넣을때 포토샵으로 텍스트를 넣으면 안된다는 걸까요? 슬라이드에선 강의하신대로 포토샵으로 텍스트를 넣었는데 저기에선 저 문구가 좀 걸리긴하네요
안녕하세요 선생님! LIS 강의 잘 들었습니다. 좋은 지식 전달해주셔서 감사합니다. 강의를 듣다가 궁금한 점이 있어서 여쭤보려 합니다. 14002번 같은 경우에서 LIS의 길이를 반환하는 ret을 초기화 할 때, ret = 1로 하셨던데 이유가 따로 있을까요? 최대 cnt[i]가 LIS의 길이라고 생각해서 ret에 담아내고, ret을 출력하면 LIS의 길이를 출력하는 거라고이해한 상태입니다. 당연히 최대값을 걸러내야 하는 ret의 역할이 있으니, 그 초기값은 '최소' 부터 ~ ! 시작해서 최대값을 담아내는 걸로 생각하고 ret = -1e9로 바꿔서 돌려봤습니다. 그랬더니 70% 쯤에서 14002번이 틀렸다고 나오더라구요?? 이 부분을 혼자 분석해보려다가 너무 오래 걸리는 것 같아서 여쭤봅니다.. 다른 문제와 비교해 보았을 땐, 11053번에서는 ret = -1e9로 초기화 시키고 max(ret, cnt[i]) 해서 cout << ret << "\n" 해도 답이 잘 맞더라구요.. 14002번은 왜 안되는건지 궁금합니다~~~! (그.. idx = i 작업에도 영향이 있어서인지.. 가설은 세워봤는데.. 논거를 대지 못하겟네요 하하..)
전 윈도우 기반에서 선생님 온라인 강의 청취하고 있습니다. git besh에서 sdkman으로 springboot 설치해서 터미널 상에서 spring 서버로 테스트까진 확인하고 터미널에서 인텔리J로 접속이 되지않아 그냥 인텔리J에서 프로젝트 오픈하여 수업을 따라가고 있었는데 인텔리J와 스프링부트 연동하는 방법을 몰라서 질문 남깁니다.
안녕하세요 전처리를 할 때 bagImpute 로 결측치 처리를 전체 했더니, auc >1 로 나오는데 이 경우에는 하신 대로 mean 평균으로 대체하는게 맞을까요? scale(데이터, center=TRUE, scale=TRUE) 대신에 preProcess (caret 패키지) 를 추천해주신 이유가 있으실까요?
안녕하세요 선생님. 문제 조건상 "서로가 이득이 생기지 않으면 교환하지 않는 학생도 있습니다" 이 문장을 "서로가 이득이 생기지 않으면 두 학생 은 교환하지 않는다" 로 해석하는게 맞을까요? 왜냐하면 교환이라는건 양쪽다 주고 받는게 있어야 하니깐 , 둘다 주고 받거나 / 둘다 주고받지 않거나 로 이해해서 위와 같이 생각하였습니다.
퀘이사(Quasar) 완벽 마스터: Vue 프론트 웹을 빠르게 만들고 싶다면! (Based Vue3)
boot쪽 강의 들으면서 터미널에 quasar new boot initalization 라고 썻는데 보안오류라고 뜨면서 안되네요 quasar : 이 시스템에서 스크립트를 실행할 수 없으므로 자세한 내용은 about_Execution_Policies( https://go.microsoft.com/fwlink/?LinkID=135 170)를 참조하십시오. 위치 줄:1 문자:1 + quasar new boot initalization + ~~~~~~ + CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess 이런식으로 뜨네요
현재 MySQL을 사용해서 선생님 강의를 보며 모델을작성중인데 계속 이런 에러가 뜹니다. django.db.utils.OperationalError: (1054, "Unknown column 'accounts_user.password' in 'field list'") accounts/models.py from django.conf import settings from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): pass ./ serializers.py from rest_framework import serializers from django.contrib.auth import get_user_model User = get_user_model() class SignupSerializer(serializers.ModelSerializer): #pw 보안 password = serializers.CharField(write_only=True) def create(self, validated_data): user = User.objects.create(username=validated_data["username"]) user.set_password(validated_data["password"]) #암호화된 비번 저장 user.save() return user class Meta: model = User fields = ["pk", "username", "password"] ./views.py from django.contrib.auth import get_user_model from django.shortcuts import render from rest_framework.permissions import AllowAny from rest_framework.generics import CreateAPIView from .serializers import SignupSerializer #회원가입 뷰 #createapiview 이므로 get 메소드 허용X class SignupView(CreateAPIView): model = get_user_model() serializer_class = SignupSerializer permission_classes = [ AllowAny,#실제로 회원가입할 때는 로그인은 되면 안됨 ] 그리고 accounts의 user를 참조하면서 라벨과 이미지를 첨부할 수있는 mainfunc의 ./models.py from django.db import models from django.conf import settings from django.contrib.auth.models import User class TImestampedModel(models.Model): # 기본 필드값 created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: abstract = True class Post(TImestampedModel): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) label = models.CharField(max_length=50, default='') images = models.ImageField(upload_to='images/%Y/%m/%d', blank=True) def __str__(self): return f'{self.author}' ./views.py from rest_framework.viewsets import ModelViewSet from .serializers import PostSerializer from .models import Post from rest_framework.permissions import AllowAny from django.db.models import Q # CRUD가 모두 들어간 API를 지원 class PostViewSet(ModelViewSet): queryset = Post.objects.all() serializer_class = PostSerializer #permission_classes = [AllowAny] #FIXME: 인증 적용 def get_queryset(self): qs = super().get_queryset() qs = qs.filter( Q(author=self.request.user) #본인이 작성한 글만 볼 수 있도록 함. ) return qs 이렇습니다. 구글링해봐도 대부분은 그냥 migrations 된 파일을 삭제하고 다시 migrate 하니까 해결이 되던데 저는 계속 같은 에러가 뜨네요..혹시 뭐가 원인인지 알 수 있을까요? AbstractUser 로 수정하고나서부터 이런 현상이 나타나긴 했습니다 일단 ERD는 아래와 같이 나옵니다.
강의 내용을 응용해서 비슷한 프로젝트를 하고 있습니다. 프로젝트 내용을 깃허브 레포에 업로드하는 과정에서 gitignore에 db파일은 올라가지 않도록 되어 있는데 깃허브에서 받은 파일이 완성된 페이지를 보여주도록 하려면 어떻게 해야하나요? 이 이슈로 인해서 깃허브에서 다운받은 파일에서는 Question, Choice 등 데이터가 반영이 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 실무에서 Session을 어떻게 사용하는지 궁금합니다. 위 그림은 실제 인프런에서 오는 쿠키들 입니다. 그런데 배웠던 것과는 다르게, 여러개의 쿠키가 전달되고, 이름이 JSESSIONID인 쿠키는 없었습니다... 제가 정확하게 이해한 것인지는 모르겠지만, request.getSession()은 쿠키들 중 이름이 JSESSIONID인 것을 찾고, 세션 저장소에서 이 쿠키의 value와 매칭되는 세션을 찾아 반환하는 것이라고 생각합니다. 그렇다면, 위와 같이 인프런에서는 JSESSIONID를 사용하지 않기 때문에 V1처럼 자체적으로 세션 저장소를 사용하는 건가요? 그리고 여러개의 쿠키와 세션을 사용하고 싶다면, 여러개의 세션 저장소를 만들어서 사용하는 건가요? 감사합니다!