변수가 많으면 리스트로 변수 수를 줄여서 인덱싱하여 각 원소에 접근하는데, 이 비용이 생각보다 비싸다. 몇번 반복 안하면 무시할정도긴 해도 수천만번, 수억번이상 반복하면 이 비용을 무시할 수 없을정도로 커진다 변수가 3개 필요한 경우 리스트를 이용해서 길이가 3인 리스트를 만들고 다음과 같은 코드를 작성하였다. import times = time.time()for _ in range(40320): b = [0,0,0] score = 0 for _ in range(50): b[0] = 1 b[1] = 1 b[2] = 1 for _ in range(120): score += (b[0]+b[1]+b[2]..
먼저 claude desktop 설치 https://claude.ai/download 이렇게 코드 작성하고 server.py로 저장 # server.pyfrom mcp.server.fastmcp import FastMCP# Create an MCP servermcp = FastMCP("Demo")# Add an addition tool@mcp.tool()def add(a: int, b: int) -> int: """Add two numbers""" return a + b@mcp.tool()def gcd(a,b): """find gcd two number""" while b != 0: a,b = b,a%b return a# Add a dynamic g..
1. 로딩 지연 문제 프로그램은 한줄 실행이 성공하면 바로 다음줄로 넘어가는데, 웹드라이버의 로딩이 안되어있다보니, 프로그램이 해당 요소를 찾지 못해 에러나는 경우가 있다 로딩 속도가 프로그램 속도를 따라오지 못해 에러가 나는 경우가 있다는 것 import time time.sleep()으로 지연시간을 두는 방법이 있는데, 이래도 안되는 경우가 종종 있다 이때 요소가 로딩이 될때까지 기다리고, 로딩이 되면 실행을 하는 방법이 있다는데 WebDriverWait와 EC.presence_of_element_located를 이용하면 된다 from selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import ex..
원래 잘 작동하던 프로그램이 어느날 갑자기.. 에러나더라?? 왜 안되나 봤는데 원래 이렇게 되어있던 xpath가 button = driver.find_element(By.XPATH, "/html/body/div[4]/div/div/span") /html/body/div[5]/div/div/span 이렇게 바뀌어있더라? 웹페이지 구조가 살짝 바뀔수도 있나봐? https://www.geeksforgeeks.org/difference-between-relative-and-absolute-xpath-in-selenium/#choosing-the-right-xpath-strategy Difference between Relative and Absolute XPath in Selenium - Geeksfor..
호요버스 게임은 출석체크를 호요랩이라는 페이지에 들어가서 따로 해야한다 하지만 보상도 적고 그러다보니 귀찮기도 하고 그러다보니 까먹기도 한다 보상이 적은 만큼 최소한의 노력으로 출석체크를 다 하고 싶다는 마음에서 자동으로 출석 체크를 하는 프로그램을 만들어보고 싶었다 웹 페이지를 보니 Selenium으로 자동으로 위치를 찾아가면 할 수 있을 것 같았다 먼저 웹페이지를 webdriver로 열어준다 from selenium import webdriverfrom selenium.webdriver.common.by import By# 웹 드라이버 실행 (Chrome 기준)driver = webdriver.Chrome()driver.get("https://act.hoyolab.com/ys/event/sign..
프로그램이 실행되는 동안 일어나는 (유저의 접근, 갑작스러운 에러) 여러가지 일을 기록하는 것 콘솔 화면에 출력하거나 파일이나 데이터베이스에 남기거나 기록된 로그를 분석하여 의미있는 결과를 도출할 수 있음 레벨별(개발시점,운영시점 등)로 로그 기록을 남길 수 있음 debug,info,warning,error,critical 등이 있음 기본은 warning여서 여기서부터 출력됨 setLevel로 기본 레벨을 변경할 수 있음 스트림핸들러에 로그 기록을 저장할 수도 있음 위 코드를 수행하면 my.log에 로그 기록을 남겼음 log format을 정할 수도 있다 asctime은 날짜와 시간 levelname은 debug,info,waning,error,critical proce..