안녕하세요 일코님 오랜만에 질문을 드립니다. 건강하시지요? 늘 일코님 덕에 업무에 많은 도움을 받고 있습니다. 특정 텍스트를 검색하는 것은 할 줄 아는데, 특정 스타일을 검색해서 이동하는 코드도 존재하는지 궁금합니다. 질문게시판에서는 스타일 검색 관련한 질문은 없는것 같더라구요! 특정 스타일을 가진 문단들을 순회하면서 반복작업을 하고자합니다! 감사합니다!
안녕하세요, 좋은 강의 감사합니다. 글목록 추출하기에서 셀레니움을 이용한 추출 방법을 안내해주셨는데요, 이전 강의에서 알려주신 내용과 같이 BeautifulSoup를 이용하여 추출을 시도했을 때 반복문이 제대로 실행되지 않는 문제가 있어 문의드립니다. 나무태그를 나름 찾아봤는데 이 부분에 문제가 있을까요? 확인 부탁드립니다 ㅠㅠ 감사합니다!
안녕하세요. 강의에서 정의하신 아래의 함수에서 final_answer에 입력값을 넣는것이 결국 리스트 형태의 데이터고, 리스트는 HumanMessage와 AIMessage가 번갈아가면서 저장되어 있을텐데 llm모델에 이렇게 리스트 형태로 HumanMessage, AIMessage의 객체들을 상관없이 대입해도 괜찮은가요? langchain에서 사용하는 invoke라는 매서드가 내부적으로 이런 타입들을 처리하는 로직을 실행하나요? 감사합니다. def answer_invoke(message, history): history_langchain_format = [] for human, ai in history: history_langchain_format.append(HumanMessage(content=human)) history_langchain_format.append(AIMessage(content=ai)) history_langchain_format.append(HumanMessage(content=message)) # 현재 메시지에 대해 RAG 체인 실행 rag_response = run_route_rag_chain(message) # 답변 생성 모델에게 현재 메시지에 대한 답변 요청 final_answer = answer_llm.invoke( history_langchain_format[:-1] + [AIMessage(content=rag_response)] + [HumanMessage(content=message)] ) return final_answer.content
안녕하세요. 강의 잘 듣고 있습니다. OpenAIEmbedding모델을 이용해서 텍스트를 벡터화 하는 것까지는 이해가 되었는데, 텍스트를 임베딩모델에 넣을 때, 토크나이징을 한 결과를 input으로 사용하는지, 그렇다면 어떤 토크나이징 모델을 사용하는지 궁금합니다. 아니면 토크나이징 없이 바로 임베딩 모델에 대입하는건가요?
안녕하세요 강사님 덕분에 그동안 무척 배우고 싶었던 크롤링과 데이터 수집 방법에 대해 많이 배우고 있어서 감사할 따름입니다. 다름이 아니라 네이버 자동화 로그인 과정에서 중복방지문자가 계속 나타나서 질문 드립니다. time.sleep으로 시간도 길게 했고, 시간을 충분히 가진 후(이틀 후)에도 시도했으나 계속해서 중복방지문자가 나타나서 질문드립니다. 혹시 이제 클립보드 복사 붙여넣기의 로그인 방법이 막힌건가요? 그리고 마지막으로 코드 전체를 합쳐서 실행했을 때 ElementClickInterceptedException, NoSuchElementException 오류가 계속 나타나 오류가 뜨는 대부분의 버튼에 명시적 대기를 걸어줬는데, 이렇게 코드를 한꺼번에 실행하려 했을 때는 대부분의 과정마다 모두 명시적 대기를 걸어줘야 하는지도 궁금합니다! user_id = "************" user_pw = "************" # 셀레니움 기본 템플릿 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pyperclip import random # 크롬 드라이버 생성 driver = webdriver.Chrome() # 페이지 이동 driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/") random_sec = random.uniform(3, 5) # 아이디 입력 id = driver.find_element(By.CSS_SELECTOR, "#id") pyperclip.copy(user_id) id.send_keys(Keys.CONTROL, 'v') time.sleep(random_sec) # 비밀번호 입력 pw = driver.find_element(By.CSS_SELECTOR, "#pw") pyperclip.copy(user_pw) pw.send_keys(Keys.CONTROL, 'v') pw.send_keys(user_pw) time.sleep(random_sec) # 로그인 버튼 클릭 driver.find_element(By.CSS_SELECTOR, "#log\.login\.text").click() from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver.switch_to.window(driver.window_handles[0]) # 네이버 메인 페이지 이동 driver.get("https://www.naver.com") # 드롭다운 메뉴 클릭 driver.find_element(By.CSS_SELECTOR, "#account > div.MyView-module__my_menu___eF24q > div > div > ul > li:nth-child(1) > a > span.MyView-module__item_text___VTQQM").click() # driver.implicitly_wait(10) -> 암시적 대기는 요소가 나타날 때까지만 기다려주는 것일뿐, 클릭가능한상태까지 기다려주진않음 wait = WebDriverWait(driver, 5) # 메일함 버튼 클릭 # driver.find_element(By.CSS_SELECTOR, "#account > div.MyView-module__layer_menu_service___NqMyX > div.MyView-module__service_sub___wix9p > div.MyView-module__sub_left___AIWHR > a").click() # -> 이 코드에서 오류가 뜨는 이유는 드롭다운 메뉴가 나타나기도 전에 이 코드가 실행돼서 그럼 -> 명시적 대기를 걸어줘야 함 mail_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#account > div.MyView-module__layer_menu_service___NqMyX > div.MyView-module__service_sub___wix9p > div.MyView-module__sub_left___AIWHR > a"))) # -> 요소를 찾아 클릭가능한 상태까지 최대 5초간 기다려줌 # mail_button.click() driver.execute_script("arguments[0].click();", mail_button) # 새창으로 전환 driver.switch_to.window(driver.window_handles[1]) # 메일쓰기 버튼 클릭 # driver.find_element(By.CSS_SELECTOR, "#root > div > nav > div > div.lnb_header > div.lnb_task > a.item.button_write").click() write_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#root > div > nav > div > div.lnb_header > div.lnb_task > a.item.button_write"))) write_button.click() receiver = "wjddudtn1618@naver.com" # 받는사람 입력 # receiver_blank = driver.find_element(By.CSS_SELECTOR, "#recipient_input_element") # receiver_blank.click() receiver_blank = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#recipient_input_element"))) receiver_blank.click() receiver_blank.send_keys(receiver) # 제목 입력 title = "안녕" title_blank = driver.find_element(By.CSS_SELECTOR, "#subject_title") title_blank.click() title_blank.send_keys(title) # iframe으로 전환 iframe = driver.find_element(By.CSS_SELECTOR, "#content > div.contents_area > div > div.editor_area > div > div.editor_body > iframe") driver.switch_to.frame(iframe) body = "메일 자동화 프로그램 테스트하는 중인데, 메일 리스트에 너가 있길래 한번 보내봤어" body_blank = driver.find_element(By.CSS_SELECTOR, "body > div > div.workseditor-body > div.workseditor-content") body_blank.click() body_blank.send_keys(body) # 원래 페이지로 전환 driver.switch_to.default_content() # 메일 보내기 driver.find_element(By.CSS_SELECTOR, "#content > div.mail_toolbar.type_write > div:nth-child(1) > div > button.button_write_task").click() # driver.find_element(By.CSS_SELECTOR, "#layer > div > div > div > div.button_area > div.button_area_inner > button.button_send").click() confirm_send_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#layer button.button_send"))) confirm_send_button.click()
안녕하세요 캐글에 있는 타이타닉 문제풀이를 보면 훈련데이터를 훈련/검증으로 나누지 않고 훈련데이터 전부를 가지고 랜덤포레스트 학습을 시킨후에, 또 훈련데이터를 가지고 model.score를 평가하는데 훈련/검증안나누고 이렇게 해도되나요? 어떤풀이는 나누고 어떤풀이는 안나누니까 조금 혼동이 됩니다.
Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)
안뇽하세요. 몇일 전 구매하고 열강하고 있는 개발자입니다. ISR 매커니즘에 대한 궁금증이 있는데요. 저희가 작성한 코드에 보면 export const generateStaticParams = async () => { const { posts } = await getPublishedPosts(); return posts.map((post) => ({ slug: post.slug, })); }; 이렇게 게시글들을 미리 ISR 하는 코드가 있습니다. 특정 게시글의 slug 정보 기반으로 미리 SSG 만드는 것으로 이해했는데요. 그래서 빌드를 하면 SSG + 두 개의 슬러그 페이지가 존재합니다. (getPubishedPosts의 기본 사이즈가 2개이기 때문) 그런데 제가 궁금한게 위 ISR 적용하기 전에 빌드한 후 상세 페이지에 진입을하면 약 1초 정도? 딜레이가 발생하고 화면이 렌더링이 되는데요. ISR을 적용한 후 기대한 동작은 미리 생성된 두 개의 slug에 대해서는 바로 화면에 보이지만 무한스크롤로 발생한 동적 블로그에 대해서는 빌드 전과 동일하게 1초의 딜레이가 발생하고 이후 접근 시 정적페이지가 생성되어 빠르게 보이는게 맞지 않나요? 하지만 현재 동작을 보면 미리 생성된 slug를 제외한 모든 게시글에 대해 빠르게 화면이 보여 제가 이해한게 아닌가 싶네요. 공식문서를 봐도 이해가 잘되지 않아 확인차 문의드립니다.
안녕하세요, 좋은 강의 감사합니다. 실행 컨텍스트 부분에서 궁금한 점이 있어서 질문드립니다. 강의에서 Variable Object를 설명해주셨는데, 제가 개인적으로 찾아본 자료들에서는 ES2015부터 실행 컨텍스트가 Lexical Environment, Variable Environment, this binding으로 구성된다고 나와 있더라고요. Variable Object는 그 이전 스펙에서 사용되던 용어인 것 같은데, 혹시 강의에서 이 개념을 선택해서 설명하신 특별한 교육적 의도가 있으셨을까요? 제가 아직 깊이 이해하지 못해서 그런데, 두 방식 중 어떤 것이 JavaScript 동작 원리를 학습하는 데 더 도움이 되는지, 또는 어떤 차이점들이 있는지 알려주시면 감사하겠습니다.
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 1-5 . 알고리즘과 친해지기 (2) 어떤 알고리즘을 학습하고 계신가요? 최빈값 찾기 여기까지 이해하신 내용은 무엇인가요? def find_max_occurred_alphabet(string): alphabet = {} result = [] maxvalue = 0 for char in string: if char.isalpha(): alphabet[char] = alphabet.get(char,0) + 1 for value in alphabet: maxvalue = max(maxvalue, alphabet[value]) for i in alphabet: if alphabet[i] == maxvalue: result.append(i) return result result = find_max_occurred_alphabet print("정답 = i 현재 풀이 값 =", result("hello my name is dingcodingco")) print("정답 = e 현재 풀이 값 =", result("we love algorithm")) print("정답 = b 현재 풀이 값 =", result("best of best youtube")) 영상 안보고 문제만 보고 한번 풀어봤는데 예시의 hello my name is dingcodingco, we love algorithm, best of best youtube 문자열 전부 최빈값이 여러개라서 원본 문제로 가보니 여러개라면 -1을 반환하도록 되어있어서 조금 바꿔서 저는 리스트로 반환하도록 풀어봤는데 이 방법은 어떨까요? 알파벳 아스키코드로 풀 방법은 생각이 안나서 자바에서는 map에 넣듯이 dictionary에 넣어서 풀어보려고 했습니다 max 메소드는 연습할땐 안쓰는게 좋은데 자바 삼항연산자가 파이썬에서 어떻게 쓰는지 몰라서 일단 max로 해봤습니다
강사님, 안녕하세요. 빅데이터분서기사 외에도 바이브 코딩 관련 영상도 잘보았습니다. 아... 벌써 만료 일이 다가옵니다. ( 2025. 09. 21. 23:59 만료) 2번째 불합격하고 이번이 3번째 도전입니다. (매번 하나씩 꼭 아쉽게 떨어졌어요.) 책도 가지고 있기는 한데, 영상에서만 볼 수 있는 꿀팁을 자주 업뎃 해주시는 것 같아서요. 3번째 시험 볼때까지만 이라도 혹시 연장이 가능한지 문의를 드려봅니다. 혹시 몰라 메일 주소 남겨놓습니다. fluk24@gmail.com 감사합니다.