[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] user.username 이 어떻게 가능한가요? private 이어서 user.getUsername() 해야하는 것 아닌가요? 아니면, 서버 사이드에서 user.username 을 user.getUsername으로 바꿔주나요?
섹션 15 (프로그래밍 방식의 인가 구현 – DB 연동) 강의에서 6:10 에 작성하신 코드 위 코드에 대해서 질문 드립니다. 저는 PageDto라는 객체를 만들고 해당 객체는 String url, Set<PageRole>으로 구성되어있고 위와 같이 코드를 작성하였습니다. 데이터를 Map에 넣고 콘솔창에 출력해보았을 때 url값이 중복이라(맵의 key값) 마지막 권한만이 Map<String, String>객체에 들어가는데 하나의 url에 여러 개의 권한을 매핑 할 때 해당 구조로 작성 하는 것이 맞는지 질문 드립니다. 만약에 Map<String, Set>구조이면 이후 커스텀 매니저에서 setMapping()의 로직이 달라지는지도 궁금합니다.
error @react-native/gradle-plugin@0.74.81: The engine "node" is incompatible with this module. Expected version ">=18". Got "14.16.1" error Found incompatible module. 오류 @react-native/gradle-plugin@0.74.81: 엔진 "노드"가 이 모듈과 호환되지 않습니다. 예상 버전은 ">=18"입니다. "14.16.1"을 얻었습니다. 오류 호환되지 않는 모듈이 발견되었습니다. error Command failed with exit code 1: yarn add react-native@latest 오류 종료 코드 1로 인해 명령이 실패했습니다. Yarn add React-native@latest npm WARN deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. npm WARN은 더 이상 사용되지 않습니다 @babel/plugin-proposal-ional-catch-bind@7.18.6: 이 제안은 ECMAScript 표준에 병합되었으므로 이 플러그인은 더 이상 유지되지 않습니다. 대신 @babel/plugin-transform-ional-catch-bind를 사용하세요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 쌤 인프런, 유튜브 강의 보면서 잘 만들어 가고 있었는데 현재 코드에서 아무리 수정을 해도 css를 잘못 가져오는건지 오류가 생겨서 답답해서 질문 들고 왔습니다 현재 css 코드 찾기 좀 부탁드릴게요ㅠㅠ 안되는 항목 ✔ 연예뉴스 -> 내용을 못 가져옴 ✔ 스포츠뉴스 -> 제목, 날짜, 내용 다 못 가져옴 css를 여러개 바꿔서 넣어봐도 저는 자꾸 찾을 수 없다고 크롤링 됩니다 도와주세요,,,,,,, #네이버기사 크롤링 엑셀저장 import requests from bs4 import BeautifulSoup import time import pyautogui from openpyxl import Workbook #사용자입력 keyword = pyautogui.prompt("검색어를 입력하세요") lastpage = int(pyautogui.prompt("몇 페이지까지 크롤링 할까요?")) #엑셀 생성 wb = Workbook() #엑셀시트 생성 ws = wb.create_sheet(keyword) #열 너비 조절 ws.column_dimensions['A'].width = 60 ws.column_dimensions['B'].width = 30 ws.column_dimensions['C'].width = 60 ws.column_dimensions['D'].width = 150 #행 번호 row = 1 #페이지 번호 pageNum = 1 for i in range(1, lastpage*10, 10) : print(f"{pageNum}페이지 크롤링중입니다 =================") response = requests.get(f"https://search.naver.com/search.naver?where=news&query={keyword}&sm=tab_opt&sort=1&photo=0&field=0&pd=3&ds=2024.04.11&de=2024.15.20&news&query={keyword}&start={i}") html = response.text soup = BeautifulSoup(html, 'html.parser') articles = soup.select("div.info_group") #뉴스기사 div 10개 추출 for article in articles: links = article.select("a.info") #리스트 time.sleep(0.7) if len(links) >= 2: #링크가 2개 이상이면 url = links[1].attrs['href'] #두번째 링크의 href를 추출 response = requests.get(url, headers={'User-agent': 'Mozilla/5.0'}) html = response.text soup_sub = BeautifulSoup(html, 'html.parser') content = soup_sub.select_one("#newsct_article") if content: content_text = content.get_text(separator="\n") else: content_text = "내용을 찾을 수 없습니다." title = None date = None #만약 연예 뉴스라면 if "entertain" in response.url: title = soup_sub.select_one(".end_tit") date = soup_sub.select_one("div.article_info > span > em") content = soup.select_one("#articeBody") #만약 스포츠 뉴스라면 elif "sports" in response.url: title = soup_sub.select_one(".Main_article_title") content = soup.select_one("._article_content") else: title = soup_sub.select_one(".media_end_head_headline") date = soup_sub.select_one("span.media_end_head_info_datestamp_time._ARTICLE_DATE_TIME") #본문 내용안에 불필요한 div, p제거 divs = content.select("div") for div in divs: div.decompose() paragraphs = content.select("p") for p in paragraphs: p.decompose() print("=======제목======= \n", title.text.strip() if title else "제목을 찾을 수 없습니다.") print("=======날짜======= \n", date.text if date else "날짜를 찾을 수 없습니다.") print("=======URL======= \n", url) print("=======내용======= \n", content.text.strip() if content else "내용을 찾을 수 없습니다") # 'else' 블록에서 'date' 변수 정의는 여기서 끝나도록 수정 ws['A1'] = '제목' ws['B1'] = '날짜' ws['C1'] = 'URL' ws['D1'] = '내용' ws[f'A{row}'] = title.text.strip() if title else "제목을 찾을 수 없습니다." ws[f'B{row}'] = date.text.strip() if date else "날짜를 찾을 수 없습니다." ws[f'C{row}'] = url ws[f'D{row}'] = content_text.strip() if content else "내용을 찾을 수 없습니다." row=row+1 #마지막 페이지 여부 확인하기 next_button = soup.select_one("a.btn_next") if next_button: isLastPage = next_button.attrs.get('aria-disabled', None) if isLastPage == 'true': print("마지막 페이지 입니다.") break pageNum = pageNum+1 wb.save(f"{keyword}_4월_뉴스기사_크롤링(4)_내용까지_0411~0415(3).xlsx")
■ 질문 남기실 때 꼭! 참고해주세요. - 먼저 유사한 질문이 있었는지 검색해주세요. - 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다. - HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요. - 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다. 선생님 안녕하세요 pc, 모바일 반응형은 대응이 됐는데, 웹사이트 창을 1250px정도로만 줄여도 가로스크롤이 발생을 해서요ㅠㅠ 혹시 이런 경우에는, div와 이미지 크기를 80%같은 수치로 줄여야하는건지? 아니면 overflow로 대응을 해야하는건지? 궁금합니다. 혹시 몰라서 제가 임의로 img에 max-width:100% height:auto로 해놨는데 이미지가 안넘어가고 가로스크롤이 발생해서요ㅠㅠ 답변주시면 감사합니다. 다른 질문들을 확인해보니, @media (min-width: 768px) and (max-width: 1024px) 이런식으로 대응하라고 하셨는데 폰트사이즈와 이미지를 줄여야하는건가요?ㅠㅠㅠ 아니면 flex구조를 컬럼으로 바꿔야할까요?
안녕하세요. 오늘 첫 강의 수강하게 된 수강생입니다. 이런 강의가 있는줄 모르고 여러가지 유튜브 보면서 태그매니저, 구글애널리틱스, 구글애즈 연동을 한 상황인데요. 질문1) 제가 들었던 강의에서 태그마스터-> 구글애즈 연동시에 태그-> 태그구성에서 태그유형선택->구글애널리틱스->구글애널리틱스:ga4 이벤트를 선택하라고 해 GA4에 연동된 이벤트는 다 그렇게 설정되었습니다. 물론 트리거도 별도로 설정해놓았구요. 강사님께서는 태그관리자에서 GA4연동시 구글태그 유형을 선택하라고 하신 것 같은데 이렇게 해도 되고 , 저렇게 해도 되는 개념인지 아니면 제가 틀린방식으로 한건지 궁금해서 문의드립니다. 질문2) 탐색-> 방문페이지+쿼리문자열 부분에서 다 같은데 웹사이트 주소의 뒷부분이 하나는 /surl/P/14 , 하나는 /surl/P/14/ 이렇게 둘로 나누어지더라구요. 제가 보통 웹사이트.com/ surl/P/14 /?utm_source= ### 형식으로 광고를 돌리는데 paid search부분이 모두 /surl/P/14 로 나오는데 여기서 궁금한 것은 위의 웹사이트.com / surl/P/14 /?utm_source= ### 가 탐색보고서의 방문페이지에서 /surl/P/14 로 나오는게 맞는지, 그럼 탐색보고서에 /surl/P/14/로 나오는 경우는 어떤경우인지 궁금합니다. 질문3) 저는 paid search 사용자가 그나마 많아서 어떤 방문페이지를 어떤 기기를 통해 왔는지 찾아보았는데요. 모바일로 들어온 186명정도의 사람들이 모두 ios 사용자로 나와서 이게 가능한가 싶은데 이게 제대로 된건지 확인하는 방법은 없는지 궁금합니다. 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 강의를 따라하고 있는데 http://localhost:8080/ 를 치면 home.html 파일이 안열리고 index.html이 열립니다. 캐시를 삭제해보고 시크릿모드로 다시해봐도 index.html 파일이 열립니다! 해결 방법을 모르겠어요... 구글 드라이브 파일입니다 https://drive.google.com/file/d/18dkvdMVN4ivRebUFHNF3IXZRCPjDbS91/view?usp=drive_link
안녕하세요 ! Next.js에 Custom hook 디자인 패턴을 사용하는 것에 대해 어떻게 생각하시나요 ?! hooks 폴더를 페이지 단위로 두어 RCC 컴포넌트 내부 로직을 hooks으로 관리하는 Custom hook 패턴과 아토믹을 함께 사용하려고 하고 RSC 컴포넌트에서는 아토믹 패턴을 사용하려고 하는데 이렇게 hooks을 next에서 사용해도 괜찮은 건지 고민이 들어서 질문 드립니다 ! (정답이 없는 문제인 건 알지만 어떻게 생각하시는지 궁금하여 질문드립니다.)
안녕하세요. 강의 영상을 보면서 Korea Central 지역에 Quotas 요청을 보냈는데 아래와 같이 나오면서 승인이 안되네요 QMS Update - Status: ResourceType: crpCores { Quota Bucket: TotalLowPriorityCores Status Description: Due to very high rates of Spot consumption, Microsoft is unable to approve additional quota at this time State: SpotVMNotAllowedForPayGCustomer Current Quota: 3 New Quota: 16 } Properties: [location, koreacentral] } Korea South 지역에 요청해도 동일하게 되지 않습니다. 어떻게 해야할까요? QMS Update - Status: ResourceType: crpCores { Quota Bucket: TotalLowPriorityCores Status Description: Due to very high rates of Spot consumption, Microsoft is unable to approve additional quota at this time State: SpotVMNotAllowedForPayGCustomer Current Quota: 3 New Quota: 16 } Properties: [location, koreasouth] }
안녕하세요. 이번 수업에서 사소한? 궁금증이 생겨서 질문 남깁니다! handleReset() { this.setState(() => { return { searchKeyword: "", // searchResult: [], submitted: false, } }, () => { // console.log("TODO: handleReset", this.state.searchKeyword); console.log("TODO: handleReset", this.state.searchResult); // 이전 검색 결과가 그대로 저장되어있음. }); } 위의 handleReset 메서드 실행시, 저 같은 경우엔 주석 친 부분처럼 this.state.searchResult를 빈배열로 무조건 갱신해줘야 한다고 생각 했습니다. 이유는, reset의 동작이 검색 결과 부분에 아무것도 노출하지 않는다는 점 때문에, 검색 결과를 저장하고 있는 searchResult 역시 같이 비워줘야 하지 않나 라는 생각이 들었기 때문입니다. 물론 현재로서는 this.state.submitted으로 노출 제어를 하고 있는 상황이기 때문에 동작에는 전혀 문제가 없긴 하지만요...! 사소한 부분이긴 하지만.. 혹시 강사 님께서는 이 부분에 대해서 어떻게 생각하시는지 여쭤보고 싶습니다!
안녕하세요, 최근에 강의를 마치고 나서, 강의 내용 중에 좀비 프로세스가 발생하는 이유가 자원 소모가 아니라 PID를 차지하기 때문이라고 설명해주셨습니다. 그렇다면 좀비 프로세스는 실제로 어떠한 자원도 소비하지 않는 것인가요? 또, 직접 좀비 프로세스를 확인해보고 싶을 때는 어떻게 해야 할까요? 답변해주시면 감사하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의에서 order 객체(주인X)쪽에서 addOrderItem 메서드로 orderItems.add(orderItem), orderItem.setOrder(order) 를 하시는걸 보았습니다. 어느쪽(주인 or 주인X)에서 편의 메서드를 사용할지는 상황에 따라 다른가요? 예전 강의의 team(주인X), member(주인) 관계에서, member.setTeam 메서드 내에서 this.team = team, team.getMembers().add(this) 를 했던게 기억나는데, 이 경우는 주인쪽에서 반대쪽에 값을 넣어주었잖아요 [질문 정리] 양방향 연관관계에서 주인과 주인이 아닌쪽 모두에게 값을 입력할때 사용하는 연관관계 편의 메서드의 위치는 어디든 상관없나요? 편의 메서드를 양쪽 모두에 정의해도 되나요? 좀 복잡할 것 같긴한데..