inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

통합 테스트 작성 방식에 대해 궁금한 점이 있습니다

해결됨

실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트

테스트는 내부 구현에 의존하지 않고 사용자 입장에서 작성하는게 좋다고 이해했습니다. 그런데 ProductFilter 컴포넌트의 통합테스트를 작성하시면서 "상품명을 수정하는 경우 setTitle 액션이 호출된다" , "최소 가격 또는 최대 가격을 수정하면 setMinPrice와 setMaxPrice 액션이 호출된다" 와 같이 사용자가 값을 변경할 때 특정 액션 함수가 호출되는지를 검증하셨는데, 이건 내부 구현에 의존적인 테스트라고 볼 수 없을까요? 추후 Store 내부 구조가 바뀌거나 아예 Store를 사용하지 않는 식으로 구현 방법이 바뀌더라도 사용자 입장에선 달라지는게 없으니 테스트가 실패하지 않는게 좋은 테스트가 아닌지 궁금합니다. 2. api를 호출하는 커스텀 훅을 사용하는 컴포넌트를 테스트하실 때 msw를 이용해 해당 api의 응답을 모킹하셨는데, 커스텀 훅 자체를 모킹해서 훅이 반환하는 값을 원하는대로 지정하는 것도 가능할 것 같습니다. 이렇게 api 대신 훅을 모킹하여 테스트하는 것에 대해 어떻게 생각하시는지 궁금합니다.

  • javascript
  • react
  • 소프트웨어-테스트
  • vitest
BB Dev 댓글 2 좋아요 0 조회수 290

섹션 4 리액트와 API서버 통신 조회기능 구현 화면 차이 문의 건

미해결

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요. 질문이 있습니다. 섹션 4 리액트와 API서버 통신 에서 조회기능 구현을 실행하였습니다. 강사님 화면과 달리 저의 화면은 아래와 같이 나옵니다. 위 부분중 차이 나는 부분을 아래 다시 캡춰했습니다. 현재 스프링 부트는 아래와 같이 실행되고 있습니다. 조금 확대해서 다시 아래 다시 캡춰했습니다. 강사님은 한 화면에서 두개가 나오는 거 같은데요. 제가 어떤걸 수정해야 하는지 알고 싶습니다. 위 섹션 4 리액트와 API서버 통신 에서 조회기능 구현에서 최초 연결 확인하는 부분까지 코드는 강의에 나온데로 진행하였습니다. 부탁드립니다. 감사합니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
사랑2 댓글 4 좋아요 0 조회수 273

pub/sub 연결하기 문의

해결됨

Azure Native로 나만의 GPT 만들기

안녕하세요. 프론트와 pub/sub 연결하는 부분 강의 듣다가 에러가 생겨 질문 드립니다ㅠ 이렇게 favicon.ico 에러가 뜨면서 연결이 안되는데 어떻게 해결해야 할까요....?

  • javascript
  • python
  • mongodb
  • azure
  • FastAPI
황윤주 댓글 2 좋아요 1 조회수 306

네이버 쇼핑 크롤링 1 코드 사용 시, 접속 제한됐을 때의 해결 방법이 궁금합니다.

미해결

실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용

import requests from bs4 import BeautifulSoup keyword = input("검색할 상품을 입력하세요 : ") url = f"https://search.shopping.naver.com/search/all?&query={keyword}" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" headers = {"User-Agent" : user_agent} req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") print(soup) 위 코드 사용 시 아래와 같은 결과가 나타납니다. keyword = input("검색할 상품을 입력하세요 : ") url = f"https://search.shopping.naver.com/search/all?&query={keyword}" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" headers = {"User-Agent" : user_agent} req = requests.get(url, headers=headers) # req = requests.get(url, headers=headers) # print(req.request.headers) html = req.text soup = BeautifulSoup(html, "html.parser") print(soup) <title>네이버쇼핑</title> </head> <body> <div class="content_error"> <div class="head">쇼핑 서비스 접속이 일시적으로 제한되었습니다. </div> <div class="desc"> 네이버는 안정적인 쇼핑 서비스 제공하고자 시스템을 통해 아래와 같은 비정상적인 접근이 감지될 경우 해당 네트워크의 접속을 일시적으로 제한하고 있습니다. </div> <ul class="reason"> <li>상품 구매, 탐색과 무관한 외부 이벤트를 통한 접속</li> <li>짧은 시간 내에 너무 많은 요청이 이루어진 IP</li> <li>VPN을 사용하여 접속한 IP</li> <li>특정 확장 프로그램 이용 시</li> </ul> <div class="footer">위와 같은 접근이 아님에도 접속이 제한된 경우,네이버앱을 업데이트 또는 <a href="https://help.naver.com/service/30016/category/5278" target="_blank"> 원클릭 진단</a>을 부탁드립니다.<br/> 해당 방법을 통해서도 접속이 불가한 경우 <a href="https://help.pay.naver.com/mail/form.help?alias=shopping_stop" target="_blank">네 이버쇼핑 고객센터</a>로 문의 부탁드립니다.</div> </div> </body> </html> 이런 상황에서 대안이 있을까요?

  • python
  • 웹-크롤링
  • selenium
  • beautifulsoup
댓글 1 좋아요 0 조회수 3349

rtm.start() 오류

미해결

날씨를 알려주는 나만의 SlackBot 만들기 (파이썬)

아래와 똑같은 질문입니다. 19번 라인 trm.start부분에서 계속 오류가 납니다. 아래 질문의 답변을 통해 Classic Slack App으로 생성하지 않아(현재 불가능) 발생한 것으로 파악하였습니다. 강의 업데이트 공지 상으로 6월 중으로 완료될 예정이라고 하셨는데 아직 강의가 업데이트 되지 않은 것 같아 질문 드립니다. 업데이트 된 강의는 언제 올라올 예정인가요? 오류 해결 방법을 알고 싶습니다.

  • python
  • slack
  • github-actions
  • playwright
  • httpx
dudzw623 댓글 1 좋아요 0 조회수 132

다익스트라 코드 중에 궁금한 것이 있습니다.

해결됨

코딩테스트 [ ALL IN ONE ]

def dijkstra(graph, start, final): costs = {} # 방문 여부 pq = [] # 우선순위 큐 heapq.heappush(pq, (0, start)) # 시작 노드 추가 while pq: cur_cost, cur_v = heapq.heappop(pq) if cur_v == final: return cur_cost if cur_v not in costs: # 방문여부 확인 costs[cur_v] = cur_cost # 인접 노드 탐색하면서 비용 업데이트 for next_v, cost in graph[cur_v]: # 현재노드와 연결된 인접노드와 그 비용 next_cost = cur_cost + cost heapq.heappush(pq, (next_cost, next_v)) return costs[final] 정말 사소한건데요, while pq: 내용 중 for cost, next_v in graph[cur_v]: 를 for next_v, cost in graph[cur_v]: 로 고쳐도 되는지 묻고 싶습니다. 우선순위 큐는 비용을 기준으로 하니까 (E,V)가 맞는거 같은데요. 그래프가 G=(V,E) 수식을 따르다 보니까 그래프로 초기화할 때도 ("A", 3)과 같이 노드와 비용 순서대로 하잖아요? 그래서 이러한 논리를 for문에도 적용하면 훨씬 이해하기 쉽지 않을까 개인적으로 생각이 듭니다. (아! 이건 제 개인적인 생각이니 코드를 고쳐달라고 요구를 하는 건 절대 아닙니다 😅 )

  • python
  • 코딩-테스트
  • 알고리즘
Ambition 댓글 1 좋아요 1 조회수 166

보스턴 집값 강의에서 csv 파일이 없습니다.

미해결

파이썬으로 시작하는 머신러닝+딥러닝(sklearn을 이용한 머신러닝부터 TensorFlow, Keras를 이용한 딥러닝 개발까지)

안녕하세요 훌룡한 강의 잘 수강하고 있습니다. 보스턴 집값 예측 강의에서 csv 파일이 없습니다. 말씀 주신 링크에서도 찾을 수가 없습니다ㅠㅠ jm90.hong@gmail.com 제 메일이긴 하는데 csv 파일 보내 주셔도 됩니다 감사합니다^^

  • python
  • 머신러닝
  • 딥러닝
  • keras
  • sklearn
홍정민 댓글 3 좋아요 0 조회수 288

filter, rename axis 기본값

해결됨

5분빨리 퇴근하자! 파이썬 데이터 분석, 시각화, 웹 대시보드 제작하기

filter의 경우에는 axis 기본값이 1이 설명대로 맞는거 같은데, rename 메서드 설명에도 axis 기본값이 1로 작성되어 있습니다. 하지만 실제로 수행해보니 rename의 경우에는 axis의 기본값이 0인것 같은데 제가 잘못이해한걸까요?

  • python
  • pandas
  • seaborn
  • plotly
  • matplotlib
  • data-visualization
  • streamlit
이동훈 댓글 1 좋아요 0 조회수 169

에러만 나와요

미해결

처음 만난 리액트(React)

깃 복붙도 해봤는데 계속 저래요... ㅜㅜ

  • HTML/CSS
  • javascript
  • react
진영 댓글 2 좋아요 1 조회수 212

전일비 상승,하락때문에 int화를 못하고 있는데

미해결

내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)

5.4 영상보면 전일비는 숫자로만되어있네요 영상보면 전일비는 숫자로만되어있네요 제 코드는 아래와 같고 어떻게 상승,하락을 없애는지 모르겠습니다. import requests import bs4 import re import time total_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 사용하면 편한데 로직내에서도 가능하긴 하다.

  • python
  • 웹-크롤링
김은준 댓글 1 좋아요 0 조회수 148

강의 리뉴얼 언제될까요??

미해결

[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스

학습에 관련된 질문만 해주세요. 질문은 상세하게 무엇이 궁금한지 작성해주세요. 질문은 '마크다운'을 사용하여 할 수 있습니다. 유사한 질문이 있었는지 살펴보고 질문 해주세요. 부담갖지 말고 강의에서 궁금하신 점 전부 질문해주세요 :)

  • javascript
  • react
  • node.js
  • react-native
  • typescript
dlawnsdlekd 댓글 2 좋아요 0 조회수 282

AccessDeniedHandler가 작동하지않습니다

미해결

코드로 배우는 React 19 with 스프링부트 API서버

@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로 하면 핸들러가 작동안하긴해도 예외처리가 가능했습니다 근데 문제는 왜 원래코드에서 영상처럼 작동을 안하는지 이유를 모르겠습니다 제가 빠트린부분이 있을까요? 스프링부트 버전도 똑같이 맞춰보기도 했습니다

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
고래돌 댓글 1 좋아요 0 조회수 221

반복문 강의

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

반복문강의 20:40초 for 과 while 반복문 풀이를 할때 for문은 i=5까지 반복한다하셨는데요. 어떻게 출력값이 짝수기준으로 while 출력물이 나오는지 이해가 안갑니다. i=1일때 for문으로 현재숫자:1 출력은 이해가 가구요. 그다음 while로 넘어갔는데 조건식이 false여서 다시 for문으로 돌아오는 것인가요? 왜 돌아가는지 이해가 안가서요. 그다음 2일땐 while 조건식이 True 여서 출력되고break로 빠져나오고 다시 for문으로 돌아가는건가요.

  • python
  • java
  • c
  • 정보처리기사
ghkd1118 댓글 1 좋아요 0 조회수 152

hwp = win32.gencache.EnsureDispatch 에러

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

안녕하세요? 어제까지 작동하던 코드가 오늘 위 에러 메시지가 나면서 작동이 되지 않네요. 예외가 발생했습니다. AttributeError module 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap' File " E:\Naver MYBOX\빠른동기화폴더\999_업무용주요매크로\999_한글매크로\01_일상의코딩\002_import win32com.py ", line 3, in <module> hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") # 한글 실행 AttributeError: module 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap' GPT에게 물어 보니 com 이 손상되었다고 하면서 com 캐시 재생성 하거나 캐시를 재설정 및 재실행을 하라고 하는데, 정말 그런건가요? 위 두 코드를 넣어 보았는데, 계속해서 에러메시지가 나네요 TT

  • python
  • 한컴오피스
이상하 댓글 2 좋아요 1 조회수 294

graphviz 오류

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요 선생님 구글에 graphviz 다운로드 후 pip install을 해야하나 모르고 pip install 먼저하고 구글 다운로드 후 다시 pip install 하니 중복되서 프롬프트에서 graphviz가 중복됬다고 실행이 안됩니다 ㅠㅠ 혹시 해결방법이 있을까요 ?

  • python
  • 머신러닝
  • 통계
kyb1053 댓글 3 좋아요 0 조회수 216

vercel login이 안돼요

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

로그인 하고 vercel login 했는데 찾을수 없데요 ㅠ 왜이럴까요?...

  • javascript
  • react
  • node.js
이호재 댓글 2 좋아요 2 조회수 1182

안녕하세요 질문이 있습니다.

해결됨

한 입 크기로 잘라먹는 Next.js

Static Page로 설정되는 기준은 동적함수가 아니거나 데이터 캐시에 저장해주는 경우 설정된다고 하셨는데요 만약 그렇다면 강의 자료에서도 백엔드에서 받아온 데이터가 데이터 캐시부분을 그냥 지나가는 게 아니라 'SET' 해야하는거 아닌가 궁금합니다 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨 질문 하시기 전에 꼭 확인해주세요 - 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다) - 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다) - 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢 ) 질문 하실때 꼭 확인하세요 - 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X) - 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지) - 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우) - 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요 - 강의의 몇 분 몇 초 관련 질문인지 알려주세요! - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • react
  • typescript
  • next.js
앙엉 댓글 1 좋아요 2 조회수 205

일별 시세 데이터 상승/하락 \t\n해결법

미해결

내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)

사진과 같이 등락률에 상승 \n\t\t\ 이런 결과값이 나오는데 왜이런가요?

  • python
  • 웹-크롤링
김은준 댓글 1 좋아요 0 조회수 173

최소값의 위치

미해결

입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]

안녕하세요 저는 해당 문제를 배열 길이와 배열 요소를 input으로 입력받고 최소값의 위치를 반환하는 코드를 작성해봤는데 답이 틀리게 나오네요 반복문으로 배열 인덱스에 따른 요소값은 제대로 나오는데 무엇이 문제인가요?

  • python
  • 코딩-테스트
parksangil99 댓글 1 좋아요 0 조회수 165

인기 태그

인프런 TOP Writers

주간 인기글