tempYOffset을 통해서 스크롤 위치를 저장하고 있다가 총 100px을 이동하는 것으로 이해하였는데요. tempYOffset의 초기값, 즉 yOffset이 0으로 출력됩니다. 이게 바로 밑에 있는 window.addEventListener('scroll', () => { } 가 아직 실행되지 않아서 yOffset이 초기화 되지 않아 0으로 나오나? 라고 생각하였는데 막상 강의 코드는 딱히 그런 것을 고려하지 않고도 잘 나오는 것 같더라구요. 혹시 어떤 문제일지 알 수 있을까요? 일단 당장에는 window.scrollY를 사용해서 임시조치로 해결했습니다. // 새로고침 등으로 스크롤을 처음부터 하지 않는 경우 시작하는 경우 해결을 위해 window.addEventListener('load', () => { setLayout(); sceneInfo[0].objs.context.drawImage(sceneInfo[0].objs.videoImages[0], 0, 0); document.body.classList.remove('before-load'); // 특정 위치에서 새로 고침 하면 화면이 나오지 않는 문제를 해결 let tempYOffset = yOffset; let tempScrollCount = 0; // 스크롤 몇 번 했는지 저장 console.log(tempYOffset); console.log(yOffset); let siId = setInterval(() => { window.scrollTo(0, tempYOffset); tempYOffset += 5; tempScrollCount++; if (tempScrollCount > 20) { clearInterval(siId); } }, 20); // ..............
네이버 자동 로그인 하고 있는데, 잘 되지 않습니다. 코드가 동일하게 작성된 것 같은데 제가 놓치고 있는 부분이 있을까요? from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pyperclip #크롬 드라이버 생성 driver = webdriver.Chrome() driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/") time.sleep(1) #아이디 입력 id = driver.find_element(By.CSS_SELECTOR, '#id') pyperclip.copy(userid) id.click() id.send_keys(Keys.CONTROL,'v') time.sleep(1) # 비밀번호 입력 pw = driver.find_element(By.CSS_SELECTOR, '#pw') pyperclip.copy(userpwd) pw.click() pw.send_keys(Keys.CONTROL,'v') time.sleep(1) # 로그인 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#log\\.login').click()
from sklearn.metrics import precision_recall_curve # 실제값 데이터 셋과 레이블 값이 1일 때의 예측 확률을 precision_recall_curve 인자로 입력 precisions, recalls, thresholds = precision_recall_curve(y_test, pred_proba_class1 ) print('반환된 분류 결정 임곗값 배열의 Shape:', thresholds.shape) print('반환된 precisions 배열의 Shape:', precisions.shape) print('반환된 recalls 배열의 Shape:', recalls.shape) print('thresholds 5 sample:', thresholds[:5]) print('precisions 5 sample:', precisions[:5]) print('recalls 5 sample:', recalls[:5]) precision_recall_curve 함수를 이용해 precisions, recalls, thresholds 값을 반환받는 과정입니다. 여기서 thresholds의 개수가 precisions, recalls보다 1개 더 적게 나오는 이유가 궁금합니다. 위에서 개수 차이로 인해 thresholds값에 따른 precisions, recalls값들이 대응되지 않는 위치에 존재하지 않나요? print('thresholds 5 sample:', thresholds[:5]) print('precisions 5 sample:', precisions[1:6]) print('recalls 5 sample:', recalls[1:6]) 이렇게 하는게 옳다 생각했는데 제 생각이 잘못되었는지 궁금합니다.
7-37번강의에 관련 커밋으로 아래 처럼되어 있는데 delete 예시 url이 잘못연결되어 있는것같습니다. pre_save 예시 : slugify 자동 호출 post_save 예시 : User 생성 시에 Profile 자동 생성 post_delete 예시 : Profile 삭제 시에 관련 이미지 파일 자동 삭제 django-lifecycle 예시 : blog.Post의 content/status 변경 탐지 연결되야할 페이지: https://github.com/pyhub-kr/course-django-complete-guide-v3/commit/563749a5be33f10ec46a166faf29bbaa0e1d7144 현재 연결된 페이지: https://github.com/pyhub-kr/course-django-complete-guide-v3/commit/714c274e0d6f26b68aa5bc75a9bf2a78c924633c 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
<div class="container"> <div class="flex-item">1</div> <div class="flex-item">2</div> <div class="flex-item box3">3</div> </div> 여기서 3번째 box만 class="flex-item box3" 하고 css 페이지에서 .box3이라고 해도 3번째 박스만 css적용이되는데 왜 이렇게 써야하는지 이해가 가지 않습니다. 왜 flex-item box3{ padding:30px}이라고 하지 않는것인가요? 이런 코드는 또 어떤 경우에 적용할 수 있나요?
안녕하세요 모든 리전 알람에 람다.tf 강의 버전으로 배포하면 람다 콘솔에서 코드를 수정하는 경우 테라폼으로 추적이 안되더라구요. 변경점을 추적하는 방법을 찾아보니, 대충 테라폼에서 배포할 때 zip 형태로 말아 배포할때마다 hash값을 비교해서 변경을 감지한다는거 같은데 이도 사실 제가 정확히 이해했는진 모르겠네요. 사실 저는 개인적으로 람다가 워낙 자주 수정되니 그냥 최초 배포할 때 이후로 따로 추적은 안하고 git 같은 곳에서 버전관리를 하면 되지 않을까라고 생각합니다. 아니면, 람다 함수를 git, s3 등에서 버전을 관리하고 테라폼 모듈에서 source를 git or s3와 같이 지정해주면 될 것 같은데 실제 운영하실 땐 어떤 방식으로 테라폼으로 관리하는지 궁금합니다
안녕하세요~ arr[5] 설명해주실 때 case 1: int arr[5] -> 5개 들고있다고 선언! case 2: arr[5] -> 6번째 값 하면서 case 2 예시로 arr = { 1,2,3,4,5, 6 } 을 들어주셨는데 arr[5] -> 6번째 값이면 6번째에 있는 6이 아닌가요? 7이라고 설명하셨는데 실수하신건지 제가 이해를 잘 못했는지 궁금해서 질문드립니다!
안녕하세요 일코님 강의 잘 듣고 있습니다. 한글 찾기를 이용해서 작업을 하고 있습니다. 다른 부분은 모두 잘 작동하는 데 while문 제어가 어려워서 문의 드립니다. 문서에서 직접 ctrl+f로 찾기를 해보면 마지막이 나오는데 파이썬 코드를 이용하면 False값을 뱉지 않고 무한루프에 빠집니다. 작업 내용은 "[1 " 를 찾아서 표 안에 있으면 표 전체를 저장하고, "[1"이 본문에 있으면 본문 내용을 저장해서 다른 문서에 저장하는 작업입니다. import os from tkinter import Tk from tkinter.filedialog import askopenfilename import win32com.client as win32 def 한글_열기(한글파일): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") hwp.Open(한글파일) return hwp def 한글_찾기(문자열): hwp.HAction.GetDefault("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) hwp.HParameterSet.HFindReplace.FindString = 문자열 hwp.HParameterSet.HFindReplace.Direction = hwp.FindDir("Forward") hwp.HParameterSet.HFindReplace.IgnoreMessage = 1 hwp.HParameterSet.HFindReplace.FindType = 1 cond = hwp.HAction.Execute("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) print(cond) return cond def 문서_처리(): if (hwp.GetPosBySet().Item("List") == 0) : hwp.HAction.Run("MoveParaBegin") spara = hwp.GetPosBySet().Item("Para") spos = hwp.GetPosBySet().Item("Pos") hwp.HAction.Run("MoveParaEnd") epara = hwp.GetPosBySet().Item("Para") epos = hwp.GetPosBySet().Item("Pos") blockSelect(spara, spos, epara, epos) textArr.append(hwp.GetTextFile("HWP", "saveblock")) hwp.HAction.Run("Cancel") else : hwp.HAction.Run("CloseEx") spara = hwp.GetPosBySet().Item("Para") spos = hwp.GetPosBySet().Item("Pos") hwp.HAction.Run("MoveParaEnd") epara = hwp.GetPosBySet().Item("Para") epos = hwp.GetPosBySet().Item("Pos") blockSelect(spara, spos, epara, epos) textArr.append(hwp.GetTextFile("HWP", "saveblock")) hwp.HAction.Run("MoveParaEnd") hwp.HAction.Run("Cancel") def blockSelect(spara, spos, epara, epos): hwp.SelectText(spara, spos, epara, epos) if __name__ == '__main__': os.chdir(os.path.join(os.environ["USERPROFILE"], "desktop")) BASE_DIR = os.getcwd() root = Tk() 한글파일 = askopenfilename(title=" HWPX 파일을 선택해 주세요.", initialdir=BASE_DIR, filetypes=[("아래아한글", "*.hwp *.hwpx")]) root.destroy() hwp = 한글_열기(한글파일) hwp.MovePos(2, 0, 0) textArr = [] while True: # for _ in range(8): if 한글_찾기("[1"): 문서_처리() else: break hwp.Run("FileNew") # 빈 문서 생성 for k in range(len(textArr)): hwp.SetTextFile(textArr[k], "HWP", "insertfile") hwp.HAction.Run("MoveParaEnd") hwp.HAction.Run("BreakPara") hwp.HAction.Run("BreakPara") hwp.HAction.Run("StyleShortcut1") hwp.HAction.Run("StyleShortcut1") hwp.SaveAs(os.path.join(os.getcwd(), "result2.hwpx")) # 현재 위치에 다른이름으로 저장 hwp.Quit() print('모두 완료')
안녕하세요! 강사님 질문이 하나 있는데요, 제가 중간에 docker를 삭제했다가 다시 설치해서 하고 있는데 다른 것들은 잘 되는데, 서울시 공공 데이터 API를 가지고 Custome Operator를 하는 과정에서 dags_seoul_api_ corona.py 이 실행이 안되어서 문의드려요! 처음에 directory가 없다는 오류가 떠서 생성하는 코드를 추가해봤는데, 추가한 이후에 dag 실행해도 실패해서 로그를 확인해보니 permission 거부 문제로 오류가 발생한 것을 확인하였습니다. docker-compose.yaml에서 volumes는 잘 설정되었는데, 혹시 제가 AIRFLOW_CORE_EXECUTOR를 LocalExecutor로 바꾼 게 문제가 되었을까요? databricks와 airflow를 연동하면서 dns를 설정하고, command를 좀 수정하였는데 이 부분이 문제였을까요...? ChatGPT에 물어보니 Webserver로 들어가서 Docker 컨테이너 내에서 이 디렉토리의 소유자를 airflow 사용자로 변경하면 된다고 하는데, [sudo] password for default: 부분에서 비밀번호 에러가 나네요...! 저는 따로 default에 대한 비밀번호를 설정하지 않아서 해당 비밀번호를 잘 모르는 상태입니다..! docker를 재설치해야할 것 같은데... 하기 전에 강사님께 문의 드립니다! 편하게 답변 주시면 감사하겠습니다!!
진행중 사진과 같이 정상적으로 카드정보 입력후 결제를 진행했음에도 불구하고 결제실패로 출력됩니다. 코드는 강의와 동일하고 또한 올려주신 깃허브 코드와도 비교하여 교차검증을 진행한 결과 동일합니다. 디버깅시 오류 또한 존재하지 않습니다. 이 경우 해결방안에 대해 어떻게 접근하는게 좋을지 알려주실 수 있을까요..?