printName(); 이렇게 매개변수 값을 안줬을때 name 값에 undefine이 들어가는거까지는 이해했습니다. 여기 콘솔로그에서 "person의 값이 없음" 이 뜨는이유를 모르겠어요 ,, name || "person의 값이 없음" 이라면 name은 이미 언디파인이기때문에 그다음 문장이 출력되는걸까요? 그리고 그 다음 printName({name:"정환"}) 여기서 이름이 출력되는 이유도 헷깔려요 ,, const name = person && person.name ; 객체와 객체의 프로퍼티 값 중 왜 프로퍼티 값이 출력되는걸까요? { console.log(name || "person의 값이 없음"); } printName(); // "person의 값이 없음" // undefine 값이 갈때는 name 에 언디파인 값이 가고 콘솔로그에서 undefine || truthy 기때문에 truthy 값이 출력된다
case "DELETE" 이 삭제 부분에서도 String으로 item.id와 action.id를 넣어 줬는데 수정에서는 사용자가 숫자나 문자로 사용하기 때문에 String을 사용해 줬다라고 이해하는데 삭제 부분에서는 id 하나를 찾아서 삭제버튼만 클릭하면 삭제가 되는데 이 부분은 왜 String을 사용한것인지 궁금합니다.
먼저 유사한 질문이 있었는지 검색해보세요. 꼭 강의와 관련된 질문이 아니더라도, 최대한 답변해드리겠습니다. 건의사항도 괜찮습니다. 편하게 질문해주세요! FastAPI를 Azure Functions 로 변환하는 강의를 따라 하던 중에 환경변수를 넣었는데 Azure Functions이 안올라갑니다 .. 어떻게 해야될까요? 로컬에서는 포스트맨으로 확인했을 때 다 연결 되었습니다. 그리고 배포도 성공이라고 떴는데 함수만 안 보이네요 ㅠㅠ ++ 1. requirements.txt에 필요한 의존성이 빠져있을 경우 확인 -> requirements.txt 에 확인했을 때 오타가 있어서 오타를 고치고 다시 배포를 해보았지만 함수가 뜨지 않습니다.. 관련 링크 https://www.inflearn.com/community/questions/1337610/azure-function-deploy-%EC%8B%A4%ED%8C%A8 여기를 참고 해서 저도 스토리지가 빈값이라 설정해주었으나 함수가 뜨지 않습니다.. 2. Azure Functions 리소스에 필요한 환경변수가 빠져있을 경우 -> 일단 필요한 3개는 들어가있습니다. 사진 참고 3. 배포 대상이 될 Azure Function이 실행중인지 확인 (실행중이여야 함) -> f5 로 실행 하고 배포 했습니다 4. 그냥 VSCode 재시작 -> 똑같습니다.. ㅠㅠ
회의가 끝나는 시간이 가장 일찍인 경우부터 개수를 구하는데, 만일 입력예제가 5 1 4 2 3 3 7 4 6 6 7 이런식이면 끝나는 시간순으로 구하는게, 회의실을 사용할 수 있는 최대수의 회의가 아니지 않나요? 영상의 방법이 모든경우의 예제에 적용이 되는지 궁금해서 질문 올렸습니다.
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 #드라이버 생성 driver = webdriver.Chrome() driver.implicitly_wait(10) #페이지 이동 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(user_id) #클립보드라는 공간에 user_id를 복사해놓음. id.send_keys(Keys.CONTROL, 'v') #붙여넣기. time.sleep(1) #비밀번호 입력 pw = driver.find_element(By.CSS_SELECTOR, '#pw') pyperclip.copy(user_pw) #클립보드라는 공간에 user_pw를 복사해놓음. pw.send_keys(Keys.CONTROL, 'v') time.sleep(1) #로그인 버튼 클릭 driver.find_element(By.CSS_SELECTOR, '#log\\.login').click() # 메일 버튼 클릭 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.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() #새창으로 전환 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() # 받는 사람 driver.find_element(By.CSS_SELECTOR, '#recipient_input_element').send_keys('gnslgnsdl@naver.com') # 제목 driver.find_element(By.CSS_SELECTOR, '#subject_title').send_keys('연습') #서브페이지로 이동 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) #본문 driver.find_element(By.CSS_SELECTOR, '#log\\.login').send_keys('연습중') #다시 메인페이지로 이동 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() 에러내용: 예외가 발생했습니다. ElementClickInterceptedException Message: element click intercepted: Element <a href=" https://mail.naver.com/ " target="_blank" class="MyView-module__link_service___Ok8hP">...</a> is not clickable at point (937, 789). Other element would receive the click: <a href="#" role="button" class="SettingView-module__btn_setting___Z_3Uu SettingView-module__type_top___GkN8V" aria-pressed="false">...</a> (Session info: chrome=131.0.6778.205) Stacktrace: GetHandleVerifier [0x00007FF6E6F2FB05+28789] (No symbol) [0x00007FF6E6E986E0] (No symbol) [0x00007FF6E6D3592A] (No symbol) [0x00007FF6E6D90FDE] (No symbol) [0x00007FF6E6D8EA7C] (No symbol) [0x00007FF6E6D8BC46] (No symbol) [0x00007FF6E6D8ABA1] (No symbol) [0x00007FF6E6D7CD60] (No symbol) [0x00007FF6E6DAF43A] (No symbol) [0x00007FF6E6D7C5B6] (No symbol) [0x00007FF6E6DAF650] (No symbol) [0x00007FF6E6DCF654] (No symbol) [0x00007FF6E6DAF1E3] (No symbol) [0x00007FF6E6D7A938] (No symbol) [0x00007FF6E6D7BAA1] GetHandleVerifier [0x00007FF6E726933D+3410093] GetHandleVerifier [0x00007FF6E727E7DD+3497293] GetHandleVerifier [0x00007FF6E7272A73+3448803] GetHandleVerifier [0x00007FF6E6FF7BBB+848171] (No symbol) [0x00007FF6E6EA3C3F] (No symbol) [0x00007FF6E6E9F6E4] (No symbol) [0x00007FF6E6E9F87D] (No symbol) [0x00007FF6E6E8ED49] BaseThreadInitThunk [0x00007FF906E3259D+29] RtlUserThreadStart [0x00007FF90852AF38+40] File " C:\Users\gnslg\OneDrive\ 바탕 화면\PYTHON_CRAWLLING\셀레니움실전테크닉\ 06네이버메일자동화.py ", line 36, in <module> 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() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <a href=" https://mail.naver.com/ " target="_blank" class="MyView-module__link_service___Ok8hP">...</a> is not clickable at point (937, 789). Other element would receive the click: <a href="#" role="button" class="SettingView-module__btn_setting___Z_3Uu SettingView-module__type_top___GkN8V" aria-pressed="false">...</a> (Session info: chrome=131.0.6778.205) Stacktrace: GetHandleVerifier [0x00007FF6E6F2FB05+28789] (No symbol) [0x00007FF6E6E986E0] (No symbol) [0x00007FF6E6D3592A] (No symbol) [0x00007FF6E6D90FDE] (No symbol) [0x00007FF6E6D8EA7C] (No symbol) [0x00007FF6E6D8BC46] (No symbol) [0x00007FF6E6D8ABA1] (No symbol) [0x00007FF6E6D7CD60] (No symbol) [0x00007FF6E6DAF43A] (No symbol) [0x00007FF6E6D7C5B6] (No symbol) [0x00007FF6E6DAF650] (No symbol) [0x00007FF6E6DCF654] (No symbol) [0x00007FF6E6DAF1E3] (No symbol) [0x00007FF6E6D7A938] (No symbol) [0x00007FF6E6D7BAA1] GetHandleVerifier [0x00007FF6E726933D+3410093] GetHandleVerifier [0x00007FF6E727E7DD+3497293] GetHandleVerifier [0x00007FF6E7272A73+3448803] GetHandleVerifier [0x00007FF6E6FF7BBB+848171] (No symbol) [0x00007FF6E6EA3C3F] (No symbol) [0x00007FF6E6E9F6E4] (No symbol) [0x00007FF6E6E9F87D] (No symbol) [0x00007FF6E6E8ED49] BaseThreadInitThunk [0x00007FF906E3259D+29] RtlUserThreadStart [0x00007FF90852AF38+40] 메일버튼 클릭하고 하단바에 메일버튼을 클릭하려고 하니까 ElementClickInterceptedException 이 발생했어요. 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() 여기서 발생하는거 같은데 이유가 뭘까요..?
새 강의영상 시작시 from hwpWings import HWP hwp = HWP() 입력하면 꼭 오류가 나고, VS code를 종료했다가 열어서 다시 실행하면 그 때 한글이 제대로 나오는데 원인과 해결 방법이 있을까요? 오류는 HWP 객체 생성 실패: (-2147221008, 'CoInitialize가 호출되지 않았습니다.', None, None) 이렇게 나옵니다.
한글에서 tab 누르며 세어보면 강의대로 9번 눌러 필드 값 넣는 곳 까지 이동하는데, press('tab')을 9개 쓰고 실행시키면 '세로쓰기'까지 뿐이 이동이 안되어 있습니다. 원인이 뭘까요? 심지어 13번 또는 15번 tab코드를 넣어야 필드까지 커서가 가기도 하고 일정하지가 않습니다. 그리고 매번 기본 시작 위치를 셀속성에서 맞춰놓고 시작해야하니 자동화의 의미가 많이 줄어드는데, 상대적인 이동이 아닌 절대적 위치 방법은 없을까요?
1-1 장 처음 보다가 Repl.it 검색헤서 들어가서 보니 화면이 강사님 화면 하곤 틀리네요, 시간이 많이 지나서 이해하고 중간쯤에 입력하는게 있어서 보니까 뒤로가기 버튼도 있고해서 이름, 직업 등 적어주니까 화면이 바뀌며 입금 해서 등록 하는 화면이 나오네요. 여기서는 뒤로 가기 해도 안되고, 나왔다 다시 들어거기도 않되고 어케하면 되나요. Repl.it 에 비용 지불 안하고 공부 하는 방법은 없나요. 있다면 어떻게 클리어 하는 방법은 ??
이 문제를 풀다가 의문이 들었는데요 visitied를 사용할 필요가 있었는지 의문이 듭니다. public static int catch_me(int cony_loc, int brown_loc){ int time = 0; Queue<int[]> q = new LinkedList<>(); //map<위치, 시간> q.add(new int[]{brown_loc,0}); Map<Integer, Boolean>[] visitied = new HashMap[200010]; for (int i = 0; i < visitied.length; i++) { visitied[i] = new HashMap<>(); } while(cony_loc <= 200000){ cony_loc += time; if(visitied[cony_loc].containsKey(time)){ return time; } for(int i=0, initialSize = q.size(); i< initialSize; i++){ int[] info = q.poll(); int currentPosition = info[0]; int currentTime = info[1]; int newTime = currentTime + 1; int newPosition ; newPosition = currentPosition - 1; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } newPosition = currentPosition + 1; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } newPosition = currentPosition * 2; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } } time++; } return -1; } 딩코딩코님의 파이썬 풀이를 자바로 변환해봤을 때 이런식으로 코드가 작성이 되었는데 보통 dfs나 bfs에서 visitied는 재방문을 방지하려고 사용하는 것 같은데 이 코드상에는 재방문을 막으려는 부분이 없어보여서요 bfs 내에서 다음 초에 해당하는 위치를 q에 모두 넣게되는데 그럼 비교를 할 때 코니의 다음 시간과 브라운의 다음 시간은 반복문을 돌면서 어차피 조건문에서 체크를 하게되는데 visitied에 저장할 필요가 있나라는 생각이 들더라구요. 그래서 public static int catchMe(int cony, int brown) { int time = 0; //브라운의 next 위치를 저장할 queue 사용 Queue<int[]> q = new LinkedList<>(); q.offer(new int[]{brown, time}); while(cony <= 200_000){ cony += time; //bfs //q.size가 반복문내에서 동적으로 변경이 되므로 고정값을 구해놔야함. for(int i = 0, size = q.size() ; i < size; i++){ //q에 넣은 값을 poll int[] posTime = q.poll(); int currPos = posTime[0]; int currTime = posTime[1]; //같은 시간의 코니와 브라운의 위치를 비교하니까 visited를 사용할 필요없어보이데..? if(cony == currPos){ return time; } //다음 초에 브라운의 위치 int nextPos[] = {currPos - 1, currPos + 1, currPos * 2}; for(int pos : nextPos){ q.offer(new int[]{pos, currTime + 1}); } } time++; } return -1; } 해당 코드로 다시 작성을 해보았는데 잘되는거는 같은데 혹시 제가 잘못생각하거나 놓치고 있는 부분이 있는지 확인받고싶습니다.
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
안녕하세요! 현재 07챕터 수강중입니다. 다름이 아니라 papagoAPI에서 ID와 PW는 ncloud에서 받으면 되는 건가요? 개발자 센터에서는 파파고 api가 안보여서요ㅠㅠ 실행이 안되어서요. url은 아래 코드 그대로 사용하면 되는거죠?? https://openapi.naver.com/v1/papago/n2mt
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
[notice] A new release of pip is available: 23.1.2 -> 24.3.1 [notice] To update, run: C:\Users\82109\AppData\Local\Programs\Python\Python311\python.exe -m pip install --upgrade pip (ch07_env) C:\Inflearn\inflearn_chatGPT-main\ch07>python 01_ googleTrans.py Traceback (most recent call last): File "C:\Inflearn\inflearn_chatGPT-main\ch07\01_ googleTrans.py ", line 1, in <module> from googletrans import Translator ModuleNotFoundError: No module named 'googletrans' pip install googletrans==3.1.0a0 이렇게 설치했는데 계속 찾을 수 없다고 뜹니다.
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
학습 관련 질문은 상세히 남겨주세요! 가상환경 생성은 됐는데 활성화에서 에러가 생기네요 처음에는 : 'ch01_env' 모듈을 로 드할 수 없습니다. 자세한 내용을 보려면 'Import-Modu le ch01_env'을(를) 실행하 십시오. 이하생략 그래서 질문을 찾아보니 터미널 환경을 cmd 로 바꾸라해서 알려주신 링크로 가서 세팅을 바꾸어 다시 실행해서 ok 됐습니다. 그런데 다시 활성화 하려니까 다른 에러가 발생하네요 \_2C\w2_\source\inflearn_chatGPT-main\ch01ch01_env\Scripts\activate.bat 지정된 경로를 찾을 수 없습 니다. E:\_flutter\_2C\w2_\source\inflearn_chatGPT-main\ch01> 에러가 생기네요. 경로가 틀렸는지 해서 처음부터 폴더 오픈을 다시 해도 똑같으네요 에러 메세지 전부 첨부합니다. 에러 생기네 \source\inflearn_chatGPT-main\ch01> python -m venv ch01_env Looking in links: c:\Users\userpc\AppData\Local\Temp\tmp_p8zwvy1 Processing c:\users\userpc\appdata\local\temp\tmp_p8zwvy1\setuptools-58.1.0-py3-none-any.whl Processing c:\users\userpc\appdata\local\temp\tmp_p8zwvy1\pip-22.0.4-py3-none-any.whl Installing collected packages: setuptools, pip Successfully installed pip-22.0.4 setuptools-58.1.0 PS E:\_flutter\_2C\w2_\source\inflearn_chatGPT-main\ch01> ch01_env\Scripts\activate.bat ch01_env\Scripts\activate. bat : 'ch01_env' 모듈을 로 드할 수 없습니다. 자세한 내용을 보려면 'Import-Modu le ch01_env'을(를) 실행하 십시오. 위치 줄:1 문자:1 + ch01_env\Scripts\activat e.bat + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ + CategoryInfo : ObjectNotFound: (ch01_env\Scripts\act ivate.bat:String) [], CommandNotFoundExcep t ion + FullyQualifiedError Id : CouldNotAutoLoad Module PS E:\_flutter\_2C\w2_\source\inflearn_chatGPT-main\ch01> 해결책 : https://codest.tistory.com/3 에러 2번째, \_2C\w2_\source\inflearn_chatGPT-main\ch01ch01_env\Scripts\activate.bat 지정된 경로를 찾을 수 없습 니다. E:\_flutter\_2C\w2_\source\inflearn_chatGPT-main\ch01>
현재 강의를 너무 잘 듣고 있는 수강생입니다. 강의에 대한 내용은 아니지만 여쭤보고 싶은게 있어 질문을 드립니다. 감정일기 만드는 부분을 따라하면서 코드도 어느정도 이해는 하고 있지만 만약 혼자 이러한걸 만든다고 했을 때 예를 들어 Home 페이지 부분에서 해당 날짜에 작성된 리스트가 나오게 할려고 하면 getMonthlyData함수에 작성된 코드처럼 저렇게 생각도 하지 못할것같고 또 pivotData, data를 이용해야되니 매개변수를 넣으면 되겠다... 하는 이러한 생각도 하지 못할것같은데 어떤 식으로 공부를 하면 감정일기장 뿐만 아닌 다른것도 혼자서 코드를 작성할 수 있고 또 활용도 할 수 있을지 궁금합니다.