묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    미해결(2025 최신 업데이트)리액트 : 프론트엔드 개발자로 가는 마지막 단계더보기..영상 밑에 더보기 주소가 안보입니다 
- 
      
        
    미해결스프링과 JPA 기반 웹 애플리케이션 개발실제 구동은 되지만 테스트는 실패합니다.강사님 현재 스프링과 JPA 기반 웹 애플리케이션을 듣는 중입니다.여러 번 반복하면서 개발 흐름을 파악하는 중인데요.AccountControllerTest에서 회원 가입 테스트- 잘못된 입력값을 테스트하는 중인데, 실제로는 구동이 잘 되지만 테스트 중에는 매번 테스트 실패로 뜹니다. 코드는 다음과 같습니다.@Test @DisplayName("회원 가입 테스트 - 잘못된 입력값") public void signUpSubmitTest_wrong() throws Exception{ mockMvc.perform(post("/sign-up") .param("nickname", "yena") .param("email", "yenice") .param("password", "12354") .with(csrf())) .andDo(print()) .andExpect(status().isOk()) .andExpect(view().name("account/sign-up")); }깃허브 주소: https://github.com/KrillM/studyclub이 문제를 넘어가기에는 앞으로 수업을 들으면서, 이후 포트폴리오를 만들 때 발목을 잡을 것 같아 질문합니다. 
- 
      
        
    미해결Vue.js + TypeScript 완벽 가이드this.todoItem 타입이 any 라고 나옵니다타입스크립트가 적용이 안되는 것인지...this.todoItem 타입이 any 라고 나옵니다 this.todoItem. 하면 title이랑 done이 나와야 하는데 안나오구요..interface exprot도 잘되어있는데숫자를 넣어줘도 에러가 안나고 부모 컴포넌트에서도 똑같이 this.todoItem.이 안되고 있습니다.혹시 tsconfig.json이나 설치해줘야 하는 vscode 익스텐션이 있는지 궁금합니다. *깃허브 링크알려주시면 감사하겠습니다 ㅠㅠ 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스버전 관리에 대한 궁금증이 있습니다.react가 18버전으로 업그레이드 되었지만 실무에서는 안전한 17버전을 쓰고 next는 12.1.0 버전 react는 17.0.2 버전을 쓴다고 하셨는데, 이러한 정보들은 어디서 얻을 수 있나요? 
- 
      
        
    미해결홍정모의 따라하며 배우는 C언어오류 이유가 궁금합니다int main(){ int count = 0; while (1) { printf("Current count is %d. Continue?(y/n)\n", count); if (getchar() == 'n') break; else if (getchar() == 'y') count++; else printf("Please input y or n\n"); while (getchar() != '\n') continue; } return 0;} 강의에서 int c = getchat() 해서 c를 사용하니까 잘 되던데, if문이랑 else if문에 getchar()을 그대로 넣으면 왜 오류가 나는지 궁금합니다! 
- 
      
        
    미해결자바 ORM 표준 JPA 프로그래밍 - 기본편hibernate.properties not found 오류 안고쳐짐아무리 인터넷에 나와있는대로 pom.xml 파일에 <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency>아래 코드를 추가해보아도 뭘 해도 저 오류가 없어지지 않습니다. 무엇이 문제일까요.... 다른 해결방법이 또 있을까요? java17 버전 입니다. 
- 
      
        
    미해결[LV1] Jetpack Compose - UI 연습하기웹뷰 화면 깨짐 현상에 대해 질문드립니다!똑같은 코드를 작성하고 앱을 실행했더니 에뮬레이터 화면이 깨져서 보이는 현상이 일어납니다! 화면 깨짐 현상이 일어나는 사진과 전체 코드도 첨부하겠습니다! 
- 
      
        
    해결됨반복되는 내 업무 자동화하기 - Power Automate(Flow)블로그가 아닌 네이버카페 특정폴더에 새 게시글이 올라올때선생님, 안녕하세요.블로그가 아닌 네이버카페 특정폴더에 새 게시글이 올라올때, 혹은 특정 단어가 들어간 게시글이 올라올 때, 이메일로 보내기는 불가능할까요? 네이버 카페는 rss 같은게 없는것 같은데,, 혹시나 하여 여쭤봅니다. 감사합니다. 
- 
      
        
    미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술Junit5 테스트 시, JDK 17 stackoverflow error 해결 문의드립니다.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]jdk 17로 사용하고 있는데회원 리포지토리 테스트 케이스 작성 강의를 보면서Hashmap과 Long 때문에 stackoverflow error가 발생하는데 어떻게 해결해야 하나요? 
- 
      
        
    미해결토비의 스프링 부트 - 이해와 원리독립 실행형 스프링 애플리케이션까지 본 수강생입니다. 질문있습니다.질문은 다음과 같습니다...!====Spring Container 제작시, 자기자신을 Bean으로 등록하는 이유==== 코드를 수정했습니다.Servlet Container, DispatcherServlet을 Bean으로 등록하는 코드를 config 패키지의 클래스로 따로 빼버렸습니다.[ :이유:ComponentScan은 자기자신을 탐색범위에 넣지 않는다->클래스 내부의 Configuration을 찾지 못한다-> Configuration만 외부로 빼면 자기자신을 Bean으로 등록하지 않아도 된다] Spring Container를 만드는 과정에 Servlet Container를 만들지 않습니다. 분리시켰습니다.(순서대로 만들어진다는 느낌을 받기위해...) 다음은 제가 작성한 main 문의 코드입니다.@ComponentScan public class DemoApplication { public static void main(String[] args) { //Spring Container 구성정보 AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); // Bean 등록 applicationContext.register(DemoApplication.class); //Spring Container 실행(초기화) applicationContext.refresh(); // ========================================= //Servlet Container 구성정보 ServletWebServerFactory serverFactory = applicationContext.getBean(ServletWebServerFactory.class); //servlet 만들기 DispatcherServlet dispatcherServlet = applicationContext.getBean(DispatcherServlet.class); dispatcherServlet.setApplicationContext(applicationContext); //Servlet Container 인스턴스 WebServer webServer = serverFactory.getWebServer(servletContext -> { servletContext.addServlet("dispathcerServlet", dispatcherServlet).addMapping("/*"); }); //서버 실행 webServer.start(); } }1번의 이유로,// Bean 등록 applicationContext.register(DemoApplication.class);이걸 주석처리했습니다.같은 클래스내에 ApplicationContext가 있고, 생성도 완료한 시점이기 때문에, 본인이 Bean에 직접 접근해서 꺼내 써도 된다고 생각했습니다.실제로도 직접 Bean을 꺼내서 주입시켜버립니다. ServletWebServerFactory serverFactory = applicationContext.getBean(ServletWebServerFactory.class); DispatcherServlet dispatcherServlet = applicationContext.getBean(DispatcherServlet.class); 따라서 저는, Spring Container가아래 2줄의 코드에서 Bean을 다 생성하고 DI까지 완료한줄 알았습니다.//Spring Container 구성정보 AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); // Bean 등록 //applicationContext.register(DemoApplication.class); //Spring Container 실행(초기화) applicationContext.refresh();어차피 서블릿 환경 설정도 저 어딘가에서 ComponentScan 해서 Bean으로 등록하기 때문에자기자신을 Bean으로 등록하는건 필요 없는줄 알았습니다. 그리고 발생한 에러 입니다.No qualifying bean of type 'org.springframework.boot.web.servlet.server.ServletWebServerFactory' available =======주석만 풀면 잘 돌아갑니다. 왜이럴까요...? 
- 
      
        
    미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터pod 레이블 질문pod의 레이블 키값은 정해진 것만 사용해야 하나요? 임의 지정할 수도 있는지요? 
- 
      
        
    해결됨디자인 시스템 with 피그마안녕하세요 선생님!타이포그래피 피그마 토큰에서 default 값 16에서 14로 변경을 해도 폰트의 크기가 줄어들지 않는데 적용이 잘못된걸까요??.. 
- 
      
        
    미해결컴퓨터 일반론부록 강의영상은 소리가 안들리는게 맞나요?다른 강의영상은 소리가 들리는데 부록은 안들리네요 
- 
      
        
    미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술Argument Resolver. HTTP 메시지 컨버터[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@RequestBody타입의 파라미터 컨트롤러가 호출되기전에 @RequestBody의 argument를 처리하는 Argument Resolver가 HTTP 메시지 컨버터를 사용해서 필요한 객체를 생성하고 생성한 파라미터를 컨트롤러로 넘겨주는 것이다.Argument Resolver안에 HTTP 메시지 컨버터가 있다고 생각을 해도 괜찮을까요?Argument Resolver도 매우 다양한게 존재하고, HTTP 메시지 컨버터도 매우 다양하게 존재한다고 하셨는데 Argument Resolver-HTTP 메시지 컨버터가 쌍을 이룬다고 생각해도 될까요?Argument Resolver가 처리할 수 있는 argument는 결국 HTTP 메시지 컨버터가 생성해주는 것으로 이해했습니다.저는 이렇게 이해를 했는데 혹시 다르게 이해한 부분이 있을까요? 
- 
      
        
    미해결Practical Testing: 실용적인 테스트 가이드궁금한게 있습니다.언제 @MockBean 쓰고@Mock + @InjectMocks 을 이용하나요?? @MockBean은 자동으로 DI해주니 @MockBean 쓰는게 낫지 않나요?? 제가 설명해주신걸 놓친거 같은데..다시한번 설명 부탁드리겠습니다.미리 감사드릴게요. 
- 
      
        
    해결됨코딩테스트 [ ALL IN ONE ]링크드리스트의 while cur.next: 부분이 제가 이해한 것이 맞는지 질문드립니다.else: cur = self.head # cur 포인터는 head가 가리키는 곳을 가리킴(현재는 1의 값을 가진 노드를 가리킴) while cur.next: # cur.next값은 곧 head가 가리키는 new_node의 next값인 Node이므로 False라서 while문 탈출 cur = cur.next cur.next = new_node # None값을 가지는 노드를 새로 들어온 노드와 연결 링크드 리스트부터 갑자기 이중 포인터가 사용되서 이해하기가 어려웠는데요, 결국에는 cur가 가리키는 값이 head이고, head가 가리키는 것이 new_node인데, 현재 new_node의 next값은 None이므로, 이것을 새로 추가된 노드를 가리키게 하기 위해 cur.next = new_node로 작성한 것인가요? 
- 
      
        
    미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)쿠팡 검색 후 제품명 가져오기 오류''' 아래 키워드별로 순위, 브랜드명, 제품명, 가격, 상세페이지링크를 엑셀에 저장하기(1~100위 까지) [게이밍마우스, 기계식 키보드, 27인치 모니터] ※ 주의사항 - 광고 상품은 제외한다 (AD라고 표기됨) - 브랜드명이 없거나 이상하면 빈칸 ''' import requests from bs4 import BeautifulSoup import time import pyautogui # 헤더에 User-Agent, Accept-Language 를 추가하지 않으면 멈춥니다 header = { 'Host': 'www.coupang.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3', } url = f'https://www.coupang.com/np/search?component=&q=%EA%B2%8C%EC%9D%B4%EB%B0%8D+%EB%A7%88%EC%9A%B0%EC%8A%A4&channel=user' response = requests.get(url, headers=header) html = response.text soup = BeautifulSoup(html, 'html.parser') items = soup.select("div.descriptions-inner") for item in items : name = soup.select_one("div.name").text print(name) 쿠팡 첫페이지에서 '게이밍 마우스' 검색하여 각 상품별 이름을 가져오는 코드를 작성했는데요.(강의에서처럼 상품별 url에 들어가서 가져오는 것이 아닌, 검색 완료 페이지에서 바로 가져오기)각 상품별로 div의 descriptions-inner tag를 가지고있고 div의 name tag를 가지고있어 해당 방법으로 가져오기를 해봤습니다.위와 같이 실행을 하면 상품별 이름을 가져오기는 하는데 해당 페이지내 랜덤한 상품명이 하나로 쭉 나오는데... 어디서 잘못된걸까요?(결과는 아래 처럼 페이지중 하나의 상품명이 쭉나옵니다.)로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스비밀번호 수정 기능에 관해 궁금한 점이 있습니다.마이페이지에서 비밀번호 수정 기능을 구현 중에 있습니다.현재 비밀번호와 새로운 비밀번호를 입력하고 뮤테이션을 날릴 때에는 새로운 비밀번호만 넣어서 저장을 하는 것으로 이해를 했습니다. 기존 비밀번호의 체크는 백엔드에서 이루어지는 과정이 따로 없는 것 같아서요. 제가 가볍게 생각해보기로는 loginUser api를 활용해서 체크를 해야하나 싶은데요, 현재 비밀번호 체크 로직이 이 과정에서 구현 가능한지 아니면 추가로 다른 기능이 있어야 가능한건지 궁금합니다! 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스시작은 프리캠프 final 과제 질문안녕하세요 과제 중 해결되지 않는 문제가 있어 문의 드립니다. 인증 확인 버튼을 누를 때'인증이 완료되었습니다' 안내창 띄우기안내창 확인을 누르면, 인증 확인 버튼 텍스트 인증 완료로 변경인증 확인 버튼 비활성화가입하기 버튼 활성화과정을 하고 있습니다.const timer__button = () => { alert("인증이 완료되었습니다.") document.getElementById("timer__button").innerText = "인증 완료" document.getElementById("timer__button").disabled = true document.getElementById("submit").disabled = false }인증 확인 버튼을 누르면,'인증이 완료되었습니다.' 안내창이 뜨고, 인증 확인에서 인증 완료로 텍스트가 변경됩니다.하지만 버튼의 활성화와 비활성화가 되지 않습니다. 타이머가 작동되고 있는 동안 타이머가 활성화되도록 한 코드 때문에 씹히는 걸까요? 혹시 몰라 타이머 부분 코드도 첨부합니다.const randomNumber__button = () => { document.getElementById("randomNumber__button").disabled = true let randomNumber = String(Math.floor( Math.random() * 1000000 )).padStart(6,"0") document.getElementById("randomNumber__number").innerText = randomNumber let time = 7 let timer = true timer = setInterval(function(){ if(time >= 0){ let min = Math.floor(time/60) let sec = String(time%60).padStart(2,"0") document.getElementById("timer__number").innerText = min + ":" + sec time = time - 1 document.getElementById("timer__button").disabled = false } else { document.getElementById("timer__button").disabled = true document.getElementById("randomNumber__number").innerText = "000000" document.getElementById("timer__number").innerText = "3:00" clearInterval(timer) } },1000) } 혹시 이 코드에 영향을 받아 버튼 비활성화가 안 되는 거라면 타이머 숫자를 3:00(기본 세팅 값)으로 바꾸면 될까 했지만 역시 안 됐습니다.const timer__button = () => { document.getElementById("timer__button").innerText = "인증 완료" alert("인증이 완료되었습니다.") document.getElementById("timer__number").innerText = "3:00" // document.getElementById("timer__button").disabled = true // document.getElementById("submit").disabled = false } 여기저기 찾아본 결과 alert 기능은 안내창이 떠 있는 동안 동작을 일시정지 시키고, alert 다음으로 이어지는 동작을 적어줄 땐 첨부 코드와 같이 단순 나열로 가능하다고 합니다. 다른 코드들 찾아봤을 때도 제가 쓴 코드와 유사했고요. 어느 부분이 문제인 건지, 만약 앞서 작성한 타이머 코드 때문에 씹히는 거라면 어떻게 해결해야 좋을지 힌트를 좀 받고 싶습니다.alert button disabled 이 키워드로 해결책을 검색하며 찾아봤는데요, 혹시 더 적절한 검색 키워드가 있다면 그것도 추천 부탁합니다. 검색도 기술인 것 같은데 요령이 없네요. 
- 
      
        
    해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)배열을 생성할때String[] a = new String[] {“abc”, “bcd”}; 이 방법과String[] a = {“abc”, “bcd”} 의 방법중 아래의 방법이 조금 더 깔끔하고 효율적인 코드가 아닌가요? 첫번째 방법을 사용하는 이유를 알고 싶습니다 
