안녕하세요 Session쪽 Send 만들어 보고 있습니다. 구현하면서 궁금한게 Send에서 lock을 잡고 RegisterSend쪽에서는 lock을 잡지 않는 상황인데 RegisterSend에서 하나의 스레드가 들어와서 while문을 돌면서 sendQueue를 Dequeue하고 있는데 이 과정에서 다른 스레드가 Send에서 sendQueue Enqueue를 할 수 있지 않나 생각이 듭니다. 그래서 RegisterSend에서 적어도 while문에는 lock을 걸어줘야 공유자원 _sendQueue에 대해서 안전하게 처리 될 수 있지 않나라고 생각 하는데 만약 안전하다면 왜 안전한지에 대해서 듣고 싶습니다. 감사합니다!
안녕하세요. 알고리즘 종결 급 강의 잘 보고 있습니다. 그러나 강의를 보는동안 해당 강의의 노션 페이지에 comment가 보이지 않는것 같습니다. 강의에서는 comment가 정상적으로 있는것 같은데 다른 페이지에는 comment가 보이는데 해당 페이지에서만 안보이네요. 강사님의 소중한 자료라 풀 스크린은 올리지 않겟습니다. 오른쪽에 comment가 없습니다 ㅠㅠ
프로메테우스 하고 export 간 정상 작동하고있습니다(db001 만 올렸어요) 그런데 MySQL_Overview.json 대쉬보드만 생성을 하면 Temlating Failed to upgrade legacy queries 에러가 발생하고 구글링 하면 그라파나 버전 문제 떄문이라고 하는데.. 현재 그라파나 최신버전 입니다. 혹시 몰라서 다른 json 대쉬보드로 해봐도 그대로네요. 아무리 구글링 해봐도 잘 모르겠네요.. <해결> 강사님께서 강의 하실때 올려주신 json 템플릿과 현재 그라파나가 호환이 안되서 발생했던 에러입니다. grafana-dashboards/dashboards/MySQL at main · percona/grafana-dashboards · GitHub 이 페이지에서 최신 json으로 적용하니까 그라파나에서 정상 작동 하네요!
안녕하세요 강의 참고하면서 서버 만들어 보고 있는데 https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.socketasynceventargs?view=net-8.0#remarks 해당 문서에서 pooling이 있더라구요 생각해보니 동접이 꽤 많다라고 가정하면(약 3000?) 이 SocketAsyncEventArgs 생성 소멸이 많이 일어난다고 생각했습니다. 그래서 pooling을 한번 만들어보고 있는데 만드는 중에 Dispose를 언제 해줘야 할지 감이 잘 안옵니다. 현재는 Client가 Disconnect될 때 Push하게 되는데 Push에서 poolCount가 3000이 넘으면 이걸 AllClear라는걸로 pool에 있는 SocketAsyncEventArgs를 다 Dispose해주는 상황인데 이렇게하면 3000이 넘기 전까지는 메모리에 계속 남아 있으니 먼가 찜찜합니다. 이런 문제가 있는데 좋은 해결책이 있을까요? 감사합니다!
안녕하세요. EmailOperator 실습과정에서 오류가 발생해서 질문을 남깁니다! 설정을 한 후 실행을 하니. OSError: [Errno 99] Cannot assign requested address 가 발생해서 도움이 필요합니다..! docker-compose.yaml 파일에 이렇게 설정을 하였고, 에러는 다음과 같습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 로드맵 따라가며 강의 정말 잘 듣고있습니다 ! 항상 친절한 답변도 감사드립니다. 다름이 아니라 Yolo 3를 구현하면서 궁금증이 생겼습니다. 1. output을 담당하는 layer가 3개이므로(13X13/26X26/52X52) 3개의 layer에서 forward를 이용하여 결과를 추출한다고 이해했는데 이게 맞나요? 3개에서 뽑은 output(confidence_threshold보다 큰) 을 종합한 후 NMS process를 거쳐서 최종적으로 조건에 맞는 index를 반환받아 그 index를 이용해 image에 구현한다고 이해했는데 이것도 맞을까요? 만약 위에서 제가 이해한게 어느정도 맞다면 마지막으로 드는 궁금증은 13X13, 26X26, 52X52에서 각 Grid Cell이 image의 object를 예측할텐데, 이는 비유하자면 Random Forest에서 각각 학습한 model이 다수결(?)로 infernece한다고 이해해도 될까요? 즉, 세개의 Multi Scale에서 학습한 각각의 gride cell의 anchor box들이 자신의 의견을 내놓아 그중 confidence, nms의 조건을 이용해 최종적으로 조건에 부합하는 몇 개의 bbox만 남는걸로 이해해도 되는지 여쭤보고 싶습니다..!
강의 14분쯤에서 모델을 변경하는 부분입니다. 케라스가 업데이트 된 건지는 잘 모르겠지만 아래 부분에서 시퀀셜 모델이 레이어를 단일 값으로 받을 수 없어 에러가 납니다. encoder = Sequential(Dense(2, input_shape=(3, ))) decoder = Sequential(Dense(3, input_shape=(2, ))) autoencoder = Sequential([encoder, decoder]) autoencoder.summary() 아래 처럼 괄호로 감싸 리스트로 넘기면 해결됩니다. encoder = Sequential([Dense(2, input_shape=(3, ))]) decoder = Sequential([Dense(3, input_shape=(2, ))]) autoencoder = Sequential([encoder, decoder]) autoencoder.summary()
안녕하세요! 강의 구매후에 공부중인 학생입니다. 다름이 아니라 이제 본격적으로 섹션2를 시작했는데 시작하자마자 atom이라는 프로그램을 설치하라고 하는데 그전 강의 '파이썬 기본 환경 설정'편에서는 atom설치 관련 강의가 없어가지고, 설치를 어떻게 하는지 모르겠어요 ㅠㅠ
안녕하세요! CentOS의 EOS가 종료됨에 따라 레포지토리가 더이상 사용할 수 없게 되어서 docker build -t mysql57.0.0 ./ 명령어 시에 아래와 같은 에러가 발생합니다. $ docker build -t mysql57.0.0 ./ ... ... => ERROR [ 5/12] RUN yum install -y perl.x86_64 libaio.x86_64 numactl-libs.x86_64 net-tools.x86_64 sudo.x86_64 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=container error was 0.572 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error" 이는 레포지토리가 더이상 지원하지 않아서 yum install -y 할 때 나타나는 에러입니다. 그래서 /etc/yum.repos.d/CentOS-Base.repo 의 내용을 아래와 같이 변경해야합니다. [base] name=CentOS-$releasever - Base # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/os/x86_64 gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/updates/x86_64 gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/extras/x86_64 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus # original #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ # new baseurl=http://centos.mirror.cdnetworks.com/7/centosplus/x86_64 gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 그리고 CentOS-Base.repo 파일을 Dockerfile에 추가하였습니다 FROM centos:7 COPY ["Percona-Server-client-57-5.7.30-33.1.el7.x86_64.rpm",\ "Percona-Server-server-57-5.7.30-33.1.el7.x86_64.rpm", \ "Percona-Server-shared-57-5.7.30-33.1.el7.x86_64.rpm", \ "Percona-Server-shared-compat-57-5.7.30-33.1.el7.x86_64.rpm", \ "node_exporter-1.0.1.linux-amd64.tar.gz", \ "mysqld_exporter-0.12.1.linux-amd64.tar.gz", \ "start_node_exporter.sh", \ "start_mysqld_exporter.sh", \ ".my.cnf","/tmp/"] COPY CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo USER root RUN groupadd -g 1001 mysql RUN useradd -u 1001 -r -g 1001 mysql RUN yum install -y perl.x86_64 \ libaio.x86_64 \ numactl-libs.x86_64 \ net-tools.x86_64 \ sudo.x86_64 RUN yum downgrade -y openssl-libs-1.0.2k-16.el7 -> 다운그레이드! ... ... ... COPY CentOS-Base.repo /etc/you.repos.d/CentOS-Base.repo를 추가하고 나서 docker build -t mysql57.0.0 ./ 실행하니까 정상적으로 잘 되네요! 그리고 이유는 모르겠으나 yum install -y penssl-libs-1.0.2k-16.el7을 하면 패키지 버전 충돌때문에 빌드 시 에러가 발생합니다. yum install -y penssl-libs-1.0.2k-16.el7를 제거하고 yum downgrade -y openssl-libs-1.0.2k-16.el7를 추가하니까 빌드가 잘됩니다.. 이유는 레포지토리가 변경되면서 뭔가.. 그런거 같기도하고 잘모르겠네요 감사합니다.!
입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
여기서 experience를 모델에서 못찾아서?? experience.startYearMonth 등 인식이 안되는것 같습니다. cannot resolve라고 뜹니다. 혹시 제가 컨트롤러라든지 DTO라든지 잘못적고 놓쳤나보다 하고 봤는데 왜 안되는지 못찾겠습니다. 한번 확인 가능할까요? 컨트롤러 서비스 DTO 데이터 초기화 이렇게 타임리프 적용이 안될 떄는 어떻게 찾는게 좋은 방법일까요?
SELECT provider FROM items JOIN ranking on ranking.item_code = items.item_code 여기서 items 위치를 메인 테이블 ranking 위치를 서브 테이블이라고 칭할게요! 메인테이블과 서브테이블을 어떤걸로 해야할지 항상 헷갈려요 기본적으로 보고 싶은 컬럼인 provider가 원래 속한 테이블을 메인에 두려고는 하는데 예제 풀어주시는 걸 보면 아닌 경우도 있어서요! 어차피 테이블을 조인하는거니까 하나의 테이블이 되면 뭐가 메인이 되어도 상관이 없지않나 싶은데.. 메인 테이블 지정하는 기준이 있나요??
안녕하세요. 셀레니움으로 개발된 프로그램을 GUI로 감싸서 만들어 보려고 하고 있습니다. 아래 코드에서 크롬 창이 뜨도록 하면 잘 실행되면 elem에 데이터가 들어옴을 확인할 수 있습니다. 1번을 확인 후 headless 옵션을 주고 실행하면 창은 뜨지 않고 실행되나, 데이터를 가져오지 못합니다. 구글링도 해보고, GPT도 물어봤지만 답을 찾을 수 없어서 문의 드리게 되었습니다. 확인 부탁드립니다. from selenium import webdriver # from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 크롬 드라이버 자동 업데이트을 위한 모듈 from selenium.webdriver.common.by import By # from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver import ActionChains # 스크롤시 사용 from selenium.webdriver.support import expected_conditions as EC import time from bs4 import BeautifulSoup as bts import pandas as pd import os from datetime import datetime ################################### # Window 열고, 네이버 지도에서 검색 ################################### options = webdriver.ChromeOptions() options.add_argument('headless') # service = Service(ChromeDriverManager().install()) # driver = webdriver.Chrome(options=options) driver = webdriver.Chrome() # driver = webdriver.Chrome(ChromeDriverManager().install()) action = ActionChains(driver) keyword = '서울 강남구 정보통신' url = f'https://map.naver.com/p/search/{keyword}' driver.get(url) # WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="searchIframe"]'))) time.sleep(20) search_iframe() elem = driver.find_elements(By.CSS_SELECTOR, '.place_bluelink.C6RjW > span.YwYLL') # 이름 name_list = [e.text for e in elem] elem
안녕하세요, 강의를 듣고 계신 여러분! 여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기 단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요! 강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지 를 명확히 제시해 주시면 답변에 도움이 됩니다! 자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 자신은 어떻게 이해했는지 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 안녕하세요. 선생님. 저번 설명과 조언 너무 감사합니다. 그,, 백준 2580 스도쿠에 관한 질문인데요, 시간 초과를 해결하지 못하였는데, 각각을 보면 그렇게까지 시간이 많이 들지는 않을 거 같다는 생각도 들구.. 재귀를 사용하지는 않았지만, 어디서 시간이 많이 걸리는 지 분석이 안되어서요.. 선생님 도움이 필요해서 질문 남깁니다.. arr = [list(map(int, input().split())) for _ in range(9)] # 스도구 문제 배열 idxs = [] # 인덱스 쌍을 담는 배열 for i in range(9): for j in range(9): if not arr[i][j]: idxs.append((i,j)) def fillHori(y, x): # 가로 nums = 45 # 1~9까지의 합 for i in range(9): if x == i: continue # 자기 자신 탐색 제외 if arr[y][i] == 0: return 0 # 0이 또 있으면 채울 수 없음 nums -= arr[y][i] return nums def fillVerti(y, x): #세로 nums = 45 # 1~9까지의 합 for i in range(9): if y == i: continue # 자기 자신 탐색 제외 if arr[i][x] == 0: return 0 # 0이 또 있으면 채울 수 없음 nums -= arr[i][x] return nums def fillSquare(y, x): #사각형 nums = 45 # 1~9까지의 합 for i in range(y // 3 * 3, y // 3 * 3 + 3): for j in range(x // 3 * 3, x // 3 * 3 + 3): if y == i and x == j: continue # 자기 자신 탐색 제외 if arr[i][j] == 0: return 0 # 0이 또 있으면 채울 수 없음 nums -= arr[i][j] return nums def fillCrossDown(y, x): # 대각선(안씀) nums = 45 # 1~9까지의 합 for i in range(9): for j in range(9): if y == i and x == j: continue # 자기 자신 탐색 제외 if arr[i][j] == 0: return 0 # 0이 또 있으면 채울 수 없음 if y - x == j - i: nums -= arr[i][j] return nums def fillCrossUp(y, x): # 대각선(안씀) nums = 45 # 1~9까지의 합 for i in range(9): for j in range(9): if y == i and x == j: continue # 자기 자신 탐색 제외 if arr[i][j] == 0: return 0 # 0이 또 있으면 채울 수 없음 if y + x == j + i: nums -= arr[i][j] return nums while idxs: for i, j in idxs: n = fillHori(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillVerti(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillSquare(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillCrossUp(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillCrossDown(i, j) if n: arr[i][j] = n; idxs.remove((i,j)) for a in arr: for i in a: print(i, end = ' ') print()