묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
전일비 상승,하락때문에 int화를 못하고 있는데
5.4 영상보면 전일비는 숫자로만되어있네요영상보면 전일비는 숫자로만되어있네요 제 코드는 아래와 같고 어떻게 상승,하락을 없애는지 모르겠습니다. import requestsimport bs4import reimport timetotal_data_list = [] # 추출하고자 하는 데이터 리스트를 모아놓을 곳 page_number = 1 pre_data_time_set = set() # 이전 페이지에서 추출한 데이터를 모아놓는 곳 cuz 중복되면 그만두게 하기 위해 while True: # 특정 조건이 만족하면 break로 루프 끝냄 # 페이지 번호를 포함한 url 생성 - {}.format을 사용해서 동적으로 사용 url2 = "https://finance.naver.com/item/sise_day.naver?code=453450&page={}".format(page_number) # 해당 url로 요청 res2 = requests.get(url=url2, headers=headers2) # 요청한 정보를 .text로 만든 뒤 파싱 soup3 = bs4.BeautifulSoup(res2.text, "lxml") tr_eli = soup3.select("table.type2 > tr[onmouseover='mouseOver(this)']") current_time_set = set() # 현재 페이지의 날짜 데이터를 저장할 set for a in tr_eli: # tr_eli라는 ResultSet에서 하나씩 추출 td_eli = a.select("td") # a.select("td") = 위에서 추출한 것에서 'td' 태그를 포함한 것을 추츨하고 ResultSet으로 반환 # a는 태그지만 td_eli는 ResultSet이다 : data_list = [] # 추출한 데이터를 담을 리스트 for i, td_real2 in enumerate(td_eli): # 추출한 ResultSet(열)들과 인덱스를 같이 순회 clean_data = re.sub(r'\s+', " ", td_real2.text.replace(",","")) # 숫자가 아닌 모든 문자를 제거 if clean_data == " ": break if i == 0: # 첫 번째 인덱스는 무조건 날짜임 current_time_set.add(clean_data) data_list.append(clean_data) if len(data_list) > 0: # data_list가 빈칸이 아닐경우에 total에다가 추가 total_data_list.append(data_list) else: # eliment를 가져오는거 자체를 그만두게 하는 것 break # 이전에 수집한 날짜와 현재 페이지의 날짜가 동일하면 루프 중단 if pre_data_time_set == current_time_set: print("끝났다", page_number) break else: pre_data_time_set = current_time_set # 현재 페이지의 날짜로 업데이트 time.sleep(3) # or random.random() * 2 page_number += 1 # 페이지 번호를 1씩 증가# 결과 출력 for data in total_data_list: # total_data_list는 리스트 형식이라 리스트안에 리스트를 빼내는 작업하는 것 print(data)# 중복되는 내용 없애는거는 나중에 DataFrame 사용하면 편한데 로직내에서도 가능하긴 하다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
해결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 이런 오류가 3_3 부터 생기는데 해결이안됩니다! It appears as if your JDK does not supply a working agent attachment mechanism.Java : 21JVM vendor name : Oracle CorporationJVM vendor version : 21.0.3+7-LTS-152JVM name : Java HotSpot(TM) 64-Bit Server VMJVM version : 21.0.3+7-LTS-152JVM info : mixed mode, sharingOS name : Windows 11OS version : 10.0at app//org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260)at app//org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23)... 18 moreCaused by: java.lang.IllegalArgumentExceptionat java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method)at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:280)at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177)... 19 more
-
미해결스프링 핵심 원리 - 기본편
FilterType.ASSIGNABLE_TYPE 관련 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1번 캡쳐2번 캡쳐Q) 컴포넌트 스캔 강의 초반에 강사님께서 기존에 사용하던AppConfig(1번 캡쳐)에서의 빈 등록과 새롭게 만들 AutoAppConfig (2번 캡쳐)에서의 빈 등록이 중복될까봐 AutoAppConfig에서 2번 캡쳐와 같이 Configuration.class 애노테이션을 붙인 녀석들을 exclude를 시켜주었습니다. 여기까지는 문제가 없이 이해가 가지만,강사님께서 알려주셨던 Assignable_type 을 활용하여기존에 사용하던 AppConfig 클래스를 아래와 같이 exclude 를 하여 돌려보았는데, 이때는 실행이 되지 않고 빈 충돌이 일어납니다. 이유가 무엇인지 궁금합니다.
-
해결됨공업수학을 위한 중학, 고교수학
평면벡터(1)
평면벡터(1)에서 40분 12초 평면벡터의 크기부분 그래프를 이용해서 증명하는 부분에서 루트54가 아니라 루트 53이 되어야할것같아요 !
-
미해결[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
4.1 마지막 회원가입 실행되지만 빈화면 뜸
오류없이 실행은되는데 계속 이렇게 아무것도 결과가 안나옵니다.봐도봐도 모르겠어 프로젝트 파일 남겨봅니다.https://drive.google.com/file/d/1UngsyVj2InuB9bJWA6hpdcjhMBkXI9w3/view
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
예외를 공통으로 처리하는곳
안녕하세요. 강의를 듣던중에 궁금한점이 있어서 질문드립니다.이번강의에서도 그렇고, 앞서 다른 강의에서도 "복구할수 없는 예외는 예외를 공통으로 처리하는 부분까지 전달되고, 예외를 공통으로 처리하는곳에서 처리한다 " 고 하셨는데, 지금까지 강의에서도 이 부분에서 대해서는 자세한 설명이 없으셔서 넘어가긴했는데 예외를 공통으로 처리하는곳이 구체적으로 어떤부분을 말하는것일까요? 지금까지는 이 부분에 대해서는 학습한적이 없는걸로 생각되는데 제가 놓친부분이 있는것인지 아니면 추후 강의에서 설명을 해주시는 부분인지 질문드립니다..!
-
미해결[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
강의 리뉴얼 언제될까요??
학습에 관련된 질문만 해주세요.질문은 상세하게 무엇이 궁금한지 작성해주세요.질문은 '마크다운'을 사용하여 할 수 있습니다.유사한 질문이 있었는지 살펴보고 질문 해주세요. 부담갖지 말고 강의에서 궁금하신 점 전부 질문해주세요 :)
-
미해결실전! Querydsl
스프링 테스트 실행이 안됩니다... 제발 도와주세요 ㅠㅠ
java : 21spring : 3.3.3 사용뭔가 제대로 빌드가 되지 않은 것 같아서 gradle 클린하고 재빌드하고 여러번 했는데도 반복적으로 오류 메세지가 발생합니다 ㅠㅠ영한쌤의 다른 자바 강의도 수강 중인데 그건 해당 경로에 있어도 실행이 잘되는데 특이하게 spring 프로젝트는 안되네요... 경로에 한글이 있어서 그런가 싶어 UTF-8 설정도 해두었습니다.얼른 수업 듣구 싶어욧,,, 도와주세요 ㅠㅠ
-
미해결스프링은 어려워! 코틀린과 Ktor로 백엔드/서버개발 기초정복 (커피주문시스템 개발)
자바 LocalDateTime 직렬화 관련 질문
Kotlinx DateTime 라이브러리를 쓰면 자바 LocalDateTime 직렬화 과정이 없어지나요?
-
미해결R언어 프로그래밍과 데이터분석
p.35 파일 불러오기 질문있습니다.
안녕하세요. 교재를 구매하여 공부하다 질문이 있어 이렇게 남깁니다.p.35 하단 부분에 " 1 )R 파일 불러오기 " 에서 강의 사이트에서 제공되고 있는 ch1_2_2_1.R 파일을 내려 받으라고 하셨는데 어디서 저 파일을 찾아올 수 있는지 모르겠습니다. 감사합니다.
-
미해결스프링 배치
job launcher관련 질문 있습니다.
joblauncher 동기적 방식 설명을 보면 controller 를 하나 만들job di 로 받고 있는데요 job 이 여러개 있는 경우 예를 들어 a, b, c 3개의 잡이 있을 때 controller 에 a job 을 전달하려면 어떻게 해야되나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
중복_회원_예외 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 뭐가 문제인지 모르겠습니다 ㅠㅠ isEqualto도 빨간색으로 뜨면서 작동이 안되고요 ㅠㅠpackage hello.hello_spring.service; import hello.hello_spring.domain.Member; import hello.hello_spring.repository.MemoryMemberRepository; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService = new MemberService(); MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); @AfterEach public void afterEach() { memoryMemberRepository.cleatStore(); } @Test void 회원가입() { //given Member member = new Member(); member.setName("hello"); //when long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); //ctrl + alt + v assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when Long saveId = memberService.join(member1); //then IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage().isEqualTo("이미 존재하는 회원입니다.")); /* try { memberService.join(member2); fail(); } catch (IllegalStateException e) { assertThat(e.getMessage().equals("이미 존재하는 회원입니다.")); } */ } @Test void findMembers() { } @Test void findOne() { } }Unexpected exception type thrown, expected: <java.lang.IllegalStateException> but was: <java.lang.RuntimeException> Expected :class java.lang.IllegalStateException Actual :class java.lang.RuntimeException <Click to see difference> org.opentest4j.AssertionFailedError: Unexpected exception type thrown, expected: <java.lang.IllegalStateException> but was: <java.lang.RuntimeException> at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:67) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35) at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3115) at hello.hello_spring.service.MemberServiceTest.중복_회원_예외(MemberServiceTest.java:53) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:28) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hello_spring.service.MemberService.validateDuplicateMember(MemberService.java:24) at hello.hello_spring.service.MemberService.join(MemberService.java:16) at hello.hello_spring.service.MemberServiceTest.lambda$중복_회원_예외$0(MemberServiceTest.java:54) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53) ... 6 more Caused by: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:26) ... 11 more java.lang.IllegalAccessException: 이미 존재하는 회원입니다. java.lang.RuntimeException: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:28) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hello_spring.service.MemberService.validateDuplicateMember(MemberService.java:24) at hello.hello_spring.service.MemberService.join(MemberService.java:16) at hello.hello_spring.service.MemberServiceTest.lambda$중복_회원_예외$0(MemberServiceTest.java:54) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35) at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3115) at hello.hello_spring.service.MemberServiceTest.중복_회원_예외(MemberServiceTest.java:53) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:26) ... 11 more
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
선생님 강의를 따라가려면 함수형 프로그래밍을 배워야 하나요?
선생님 코드의 로직이 어렵게 느껴져 따라가는데 어려움을 겪고 있습니다. chatgpt를 활용해보니, 함수형 프로그래밍을 공부하면 된다고 하는데요. 혹시 먼저 함수형을 공부하고 다시 선생님 강의에 도전을 하는게 맞는 순서일까요?
-
미해결14년차 마케터에게 배우는 데이터드리븐 디지털/퍼포먼스마케팅의 모든것
마케팅 대시보드 구성 문의
1) 안녕하세요! 강의 듣고 루커스튜디오로 마케팅 대시보드를 구성해봤는데요! 문의가 있어서 질문드립니다. 샘플 데이터로 주신 GPT Created law 파일로 대시보드는 구성했는데요! CVR을 표에 추가로 표기 하고 싶은데, 계산된 필드추가에 sum(구매자수)/sum(clicks)으로 계산된 필드를 활용하면 될까요? 2) 강의 듣고 GA4 자격도 취득 했는데! 이력서에 공식적으로 활용할 수 있을까요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
AccessDeniedHandler가 작동하지않습니다
@Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { try { 생략... SecurityContextHolder.getContextHolderStrategy().getContext().setAuthentication(token); filterChain.doFilter(request, response); } catch (Exception e) { log.info("---------------JWT ERROR!------------"); log.info(e); log.info(e.getMessage()); ObjectMapper mapper = new ObjectMapper(); String jsonStr = mapper.writeValueAsString(Map.of("error", "ERROR_ACCESS_TOKEN")); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); PrintWriter writer = response.getWriter(); writer.println(jsonStr); writer.close(); } }강의의 JWT와 @PreAuthorize 이용하기 파트 후반부에 강의처럼 USER권한만 가진 사용자로 ADMIN권한이 필요한 메소드에 접근하니 포스트맨에서 AccessDenied exception이 뜨지않고 catch (Exception e)가 예외를 잡아버려서 { "error": "ERROR_ACCESS_TOKEN" }결과가 이렇게 나옵니다 이미 AccessDenied 핸들러도 시큐리티에 등록 시킨후 입니다ADMIN권한을 가진 사용자 토큰으로 요청을 보내면 원하는 데이터도 잘 나옵니다 catch로 잡아서 예외를 던질까 시도해봤는데 이유는 모르겠지만 Exception에서만 예외가 잡힙니다ㅠ그래서 여러가지 해결책을 알아봤는데첫번째catch (RuntimeException e) { log.info("---------------JWT ERROR!------------"); log.info(e); log.info(e.getMessage()); ObjectMapper mapper = new ObjectMapper(); String jsonStr = mapper.writeValueAsString(Map.of("error", "ERROR_ACCESS_TOKEN")); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); PrintWriter writer = response.getWriter(); writer.println(jsonStr); writer.close(); }이렇게 RuntimeException으로하면{ "error": "ERROR_ACCESSDENIED" }AccessDenied 핸들러가 잘 작동하구요 두번째SecurityContextHolder.getContextHolderStrategy().getContext().setAuthentication(token); } catch (Exception e) { log.info("---------------JWT ERROR!------------"); log.info(e); log.info(e.getMessage()); ObjectMapper mapper = new ObjectMapper(); String jsonStr = mapper.writeValueAsString(Map.of("error", "ERROR_ACCESS_TOKEN")); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); PrintWriter writer = response.getWriter(); writer.println(jsonStr); writer.close(); } filterChain.doFilter(request, response);doFilter를 try catch 밖에 두어도 AccessDenied 핸들러가 잘 작동합니다세번째@ExceptionHandler(AccessDeniedException.class) public ResponseEntity<?> notAuthorized(AccessDeniedException e) { return ResponseEntity.status(HttpStatus.FORBIDDEN).body(e.getMessage()); }RestControllerAdvice로 하면 핸들러가 작동안하긴해도 예외처리가 가능했습니다근데 문제는 왜 원래코드에서 영상처럼 작동을 안하는지 이유를 모르겠습니다 제가 빠트린부분이 있을까요?스프링부트 버전도 똑같이 맞춰보기도 했습니다
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
반복문 강의
반복문강의 20:40초for 과 while 반복문 풀이를 할때for문은 i=5까지 반복한다하셨는데요.어떻게 출력값이 짝수기준으로 while 출력물이 나오는지 이해가 안갑니다.i=1일때 for문으로 현재숫자:1 출력은 이해가 가구요.그다음 while로 넘어갔는데 조건식이 false여서다시 for문으로 돌아오는 것인가요? 왜 돌아가는지 이해가 안가서요. 그다음 2일땐 while 조건식이 True 여서 출력되고break로 빠져나오고 다시 for문으로 돌아가는건가요.
-
미해결김영한의 실전 자바 - 기본편
강의 영상 음성 실수
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의 - "생성자 - 오버로딩과 this()"시간 - 2분 38초 ~ 2분 40내용 - "생성자를 오버라이딩 한 덕분에..." 라고 하셨는데"생성자를 오버로딩 한 덕분에..."로 말씀하시려 던 게 아닐까 생각합니다. 바로 10초 전에 헷갈리시다고 말씀하셔서 실수하신 것 같습니다. 별 거 아닌 사소한 내용이긴 한데 공유 드립니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Destroy() 지연 파괴에 관하여
QuestSystem구현 강의에서 12:51쯤에 Destroy(quest, Time.deltaTime)을 사용했는데 바로 파괴해도 될 것 같은데 한 프레임을 쉬는 이유가 있나요?즉시 파괴할 경우 이벤트나 다른 참조하는 곳에서 error가 날까봐 그런건가요?
-
미해결
Chroma.from_documents 에러가 납니다.
저는 윈도우에서 vscode로 실행중인데 앞에까지는 잘 실행되다가 chroma에서 부터 에러가 나네요;; pip install onnxruntime 을 해도 계속 마찬가지 에러가 납니다. 아래를 참고해 보니 Microsoft Visual C++ Redistributable 설치해야 한다고 해서 설치해 보니 에러가 없어졌네요 혹시 윈도우에서 실행하시는 분은 참고하시길 바랍니다. https://stackoverflow.com/questions/77321038/issue-with-chromadb-onnxruntime
-
해결됨'이것이 리눅스다' 저자의 Red Hat CentOS7 리눅스 서버&네트워크 강좌
강의 실습 막히는 분들 참고.
CentOS 버전이 올라간 이후 yum 지원 안되서 못하네요.강의 내용 거의 동일하니 저처럼 삽질하지 마시고 유튜브에서 '이것이 우분투 리눅스다.' 검색하시면 Ubuntu 20.04 강의 있는데 같은 이름의 까페 자료실 참고하시면서 이거보세요ㅋ