묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ResponseStatus
BadRequestException 만들어서@GetMapping("/api/response-status-ex1")public String responseStatusEx1(){ throw new BadRequestException();}직접 exception 내구postman 에서 header accept를 */*로 해도json 형태의 데이터가 전달되는 이유가 궁금해요.해당 매핑 핸들러가 RestController로 지정된 컨트롤러 내부에 있어서 그렇게 처리되는 건가요?? 직접 HandlerExceptionResolver를 상속하여 만든Resolver 내부에는response.setContentType("application/json");코드가 있어서 이해가 되지만 스프링이 제공하는 ExceptionResolver가 application/json을 우선순위(?)로 하여금반환하는 원리가 궁금해요
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
express server cookie관련 질문 드립니다.!
indexRouter.get('/', (req: Request, res: Response, next: NextFunction) => { console.log(req.cookies); const {name, pwd} = req.cookies; if (!name || !pwd) { res.sendFile(path.join(__viewPath, 'index.html')); } else { res.send(`${name}님 환영합니다!`); }});indexRouter.get('/login', (req: Request, res: Response) => { const {name, pwd} = req.query; const expire = new Date(); expire.setSeconds(30); const cookieOptions = { httpOnly: true, expires: expire, path: '/', }; res.cookie('name', name, cookieOptions) .cookie('pwd', pwd, cookieOptions) .redirect('/');});기존 쿠키서버를 express서버로 적용해보는 과정인데요, /login에서 받은 정보를 쿠키에 담고, redirect로 홈을 호출하고 있는데요,문제는 홈에서 보시면 req.cookies에 쿠키가 담겨있을때가 있고, 없을때가 있습니다."(console.log에서 쿠키값이 없을때: "[Object: null prototype]{}" 쿠키값이 존재할때: "{test:"test"}") 혹시 쿠키가 클라이언트에게 전송되기전에 redirect가 먼저 발생하여 쿠키값이 없어, index.html을 내보내는걸까요?6번 정도 시도한다고 가정할때 두번정도 쿠키값이 정상으로 전송되고, 나머지 4번 정도가 쿠키값이 없는 상태로 index가 호출됩니다;(정상결과와 아닌것은 순서가 없습니다;; 운이 좋으면되고 안좋으면 안되는 느낌입니다...)혹시 비동기 작업이랑 관련이 있을까여?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DirectX 리뉴얼 강의만 들어도 괜찮을까요?
현재 C++과 언리얼로 만드는 MMORPG시리즈 part2 DirectX12를 수강중에 있습니다. 강의를 따라가는 것이 벅찬 감이 있는 와중에, 강의가 리뉴얼되고 있는 것을 알게 되었습니다. 강사님께서 리뉴얼하게된 배경도 알게 되었구요. 그렇다면 일단 DirectX 리뉴얼강의 부분만 듣고 part3으로 넘어가도 괜찮을까요?
-
미해결홍정모의 따라하며 배우는 C++
구조체 선언후 초기화 질문하고싶습니다.
#include <iostream> using namespace std; struct Person{ string name; int age; double height; float weight; }; int main() { Person me; me = {"Saram", 22, 1.79, 65.2f}; //me.age(26)오류 발생 me.age(26); me.age = 26; //OK return 0; } 구조체타입 변수를 선언후에, direct initialization으로 맴버변수 초기화를하고 실행하면 오류가 발생하더라구요. 반면에 me.age = 26 이처럼 대입연산자를 사용하게될경우 문제없이 맴버변수를 초기화할수있었습니다. 저의 질문은 구조체 맴버변수를 초기화할때 direct initialization 방법을 사용하면 안되는것인가요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
합성된 이후, 원하는 신호에 대해 ILA처럼 Probe를 하는 방법
안녕하세요. 강의 너무 재미있고 도움되게 듣고 있습니다. 13강 bram과 관련된 부분에 대해 복습중입니다. 한가지만 짧게 여쭙고 싶습니다. (혹시 답변이 가능하지 않은 범위라면, 괜찮습니다.) BRAM에 들어가는 Addr을 관찰하고 싶어서 HW코드 및 Vivado Schematic을 분석해서, ADDRARDADDR이 그 Signal임은 발견하였는데 해당 Primitive Cell의 Signal에 [1]Waveform을 보거나 [2]Printf 로그를 찍을 수 있는 방법이 있을까요? (axi_wdata와 같은 신호에 ila를 더 붙혀보는 방법은 실패하였고, c를 통한 접근도 실패하였습니다.) 복습의 범위를 넘어 연구의 범위로 넘어가고 있어서, 키워드 정도만 도와주실 수 있다면 스스로 더 연구해보겠습니다. ㅠㅠ!! 제가 궁금한 것은, 0c주소로 보낸 데이터가, 결국 bram(RAMB36E1)의 어떤 address에서 저장되는가? 입니다. 계속 반복해서 0c주소로 데이터를 보내고 있는데, 그게 카운터(mem_addr_cnt) 등을 통해서 어떤 주소로 어떻게 Control 되는지가 이해되지 않아서 보고 싶어서 그렇습니다. [+0c주소가 data register라고 register map에 있는 부분에 대해서는 인지하고 있습니다만, 그 다음의 경로가 추적이 되지 않아서 그렇습니다.] #define XPAR_LAB01_0_BASEADDR 0x40000000 #define XPAR_LAB01_0_HIGHADDR 0x40000FFF
-
미해결자바스크립트 : 기초부터 실전까지 올인원
for loop 강의 관련 질문있습니다
이중 for loop 으로 구구단 만들기 강의할때 저는 그냥 console.log ( i '*' j '=' i*j) 썼는데 쌤은 이렇게 하셨더라구요 저 중간중간에 형관펜 칠한 저 + 를 왜 넣어야하는건가요?
-
미해결따라하면서 배우는 고박사의 유니티 기초
알려주실 수 있을까요?
'게임 오브젝트, 컴포넌트' 강의 17:54쯤에서 assets에 있는 것들을 못찾겠습니다. 에셋 스토어에 있는건가요? 검색해봤는데 안나와서...
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
마지막 페이지 오류
안녕하십니까, 크롤링 강의 잘 듣고 있습니다. 마지막 페이지를 찾는 과정에 궁금한 점이 있어 질문드립니다. 첫째, 마지막 페이지에서 비활성화된 버튼의 html을 보시면, 강의 내용과 다르게 a태그가 아니라 button에 들어가있습니다. 둘째, islastpage = ........... 부분을 넣지 않으면 크롤링이 제대로 되는데, 해당 부분을 추가하면 세번째 사진의 오류가 발생합니다. 셋째, no attribute 'attrs'를 어떻게 해결할지 방법이 궁금합니다. 아래는 작성된 명령어입니다. from sqlite3 import Row import requests from bs4 import BeautifulSoup import time import pyautogui from openpyxl import Workbook from openpyxl.styles import Alignment # 여러 페이지 가져오기 # 키워드 keyword = pyautogui.prompt("검색어를 입력하세요") lastpage = int(pyautogui.prompt("몇 페이지까지 크롤링 할까요?")) # pyautogui.prompt는 문자열인 결과를 뽑아내는데, 페이지는 숫자니까 int로 묶어서 문자를 숫자로 바꿔주자. # 엑셀 생성하기 wb = Workbook() # 엑셀 시트 생성 ws = wb.create_sheet(keyword) # 열 너비 조절: 크롤링한 결과에 비해 각 행이 너무 좁으니까 조절하자 ws.column_dimensions["A"].width = 60 ws.column_dimensions["B"].width = 60 ws.column_dimensions["C"].width = 120 # 행 번호 row = 1 page_num = 1 # 첫번째 반복을 돌 때는 page_num가 1이다. for i in range(1, lastpage*10, 10): # 네이버 기사는 10 단위로 변한다! print(f"{page_num}페이지 크롤링 중입니다============================") response = requests.get(f"https://search.naver.com/search.naver?sm=tab_hty.top&where=news&query={keyword}&start={i}") # 페이지 파라미터는 query 뒤에 &start={i}를 넣어주면 된다. html = response.text soup = BeautifulSoup(html, "html.parser") articles = soup.select("div.info_group") # 뉴스 기사 중 div가 info_group인 것을 선택해라. # info_group이 총 몇개인지 확인하니까, word에 나와 있듯이 총 기사가 10개임을 확인했다. for article in articles: links = article.select("a.info") # article의 a태그 중 class가 info인 녀석들을 가져오자. if len(links) >= 2: # 가져온 결과값은 리스트 형태이고, word에 나와 있듯이 네이버 뉴스는 a태그 2개로 구성되어 있다. 따라서 links의 리스트 중 len함수를 통해 리스트가 몇개인지 파악하고, 링크가 2개 이상인지 확인한다. url = links[1].attrs["href"] # 우리가 가져올 건 link 중 2번째 요소니까, [1]을 입력한다(리스트 인덱스는 0부터 시작하니까!) # 2. 네이버 뉴스 본문 내용 가져오기 response = requests.get(url, headers={'User-agent' : 'Mozila/5.0'}) # 방금 만든 url에 다시 requests를 사용!, 봇으로 인식되는걸 피하기 위한 header도 넣자. html = response.text soup_sub = BeautifulSoup(html, "html.parser") # 만약 연예 뉴스 라면 if "entertain" in response.url: # 이때, response.url이 아니라 그냥 url만 적으면 "리다이렉션"으로 인한 오류가 발생한다. 그러니까, 위에 만들어 놓은 response 객체의 url을 가져오자. title = soup_sub.select_one(".end_tit") # 연예 뉴스 타이틀은 class="end_tit"로 표시됨 content = soup_sub.select_one("#articeBody") # 연예뉴스 본문의 id는 articeBody elif "sports" in response.url: title = soup_sub.select_one("h4.title") content = soup_sub.select_one("#newsEndContents") # 본문 내용 안의 불필요한 div와 p 삭제 divs = content.select("div") # select의 결과는 리스트 형태니까 for문을 쓸 수 있다. for div in divs: div.decompose() # div를 없애라는 명령어! paragraphs = content.select("p") for paragraph in paragraphs: paragraph.decompose() else: # 연예 기사가 아니라면 기존에 작성한 뉴스의 id를 사용해라! title = soup_sub.select_one(".media_end_head_title") content = soup_sub.select_one("#newsct_article") # 네이버뉴스의 본문을 모두 포함하는 것은 id ct 이다. # 그냥 print(content.text)만 입력해도 결과가 나오지만, 좀 정리해보자 print("==================링크==================\n", url) # \n은 한줄 띄운다는 뜻이다. print("==================제목==================\n", title.text.strip()) # 문자열 양쪽의 공백은 strip()로 없앨 수 있다. print("==================본문==================\n", content.text.strip()) # 출력결과를 저장하자. # 그런데, 출력결과는 기사1은 A1행, 기사2는 A2행 등 뒤의 숫자가 자꾸 변해야 한다 # 따라서, 크롤링을 시작하기 전에, 행 번호를 변수로 처리해주자. ws[f"A{row}"] = url ws[f"B{row}"] = title.text.strip() ws[f"C{row}"] = content.text.strip() # 자동 줄바꿈 기능(엑셀에서 한줄로만 길게 나타나는게 아니라, 자동으로 줄을 바꿔준다) ws[f"C{row}"].alignment = Alignment(wrap_text=True) row = row + 1 time.sleep(0.3) # 페이지를 추가하기 전에, 마지막 페이지 여부를 확인하자 islastpage = soup.select_one(".btn_next dimmed").attrs["aria-disabled"] if islastpage == "true": print("마지막 페이지 입니다") break page_num = page_num + 1 wb.save(f"{keyword}_result.xlsx")
-
미해결(2025 최신 업데이트)리액트 : 프론트엔드 개발자로 가는 마지막 단계
localhost에 대한 액세스가 거부됨이 뜹니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 성공적으로 다됐는데, 이렇게 나오네요 ㅠㅠ..
-
미해결실전! Querydsl
멀티쓰레드 환경에서 동시성 문제 발생 하지 않나요?!! 라는거에 대해서.
EntityManger 나 JPAQueryFactory 주입 받을때 "멀티쓰레드 환경에서 동시성 문제 발생하지 않나요? 라고 궁금증이 생길수도 있습니다" 이 궁금증 자체가 왜 생기는지가 궁금합니다! 영한님께서 왜 발생하지 않는지에 대해서는 이해가 갔는데 이것이 문젭니다..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
save.jsp에서 계속 에러가 뜹니다.
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sun Jul 24 00:10:05 KST 2022 There was an unexpected error (type=Internal Server Error, status=500). 코드랑 경로도 맞는 것 같은데 new-form.jsp에서 save.jsp로 넘어갈 때마다 에러가 뜹니다. 에러 부분은 다음과 같습니다. username=kim&age=123]2022-07-24 00:28:25.917 ERROR 11516 --- [nio-8080-exec-2] o.a.c.c.C.[.[localhost].[/].[jsp] : Servlet.service() for servlet [jsp] in context with path [] threw exception [Unable to compile class for JSP: An error occurred at line: [14] in the generated java file: [/private/var/folders/1v/v3txby4x02v_9pyk_dr__mxh0000gn/T/tomcat.8080.1956174225538917680/work/Tomcat/localhost/ROOT/org/apache/jsp/jsp/members/save_jsp.java]Only a type can be imported. hello.servlet.domain.member.MemberRepository resolves to a package An error occurred at line: [8] in the jsp file: [/jsp/members/save.jsp]MemberRepository cannot be resolved to a type5: <%6: // request, response 사용 가능7: 8: MemberRepository memberRepository = MemberRepository.getInstance();9: 10: System.out.println("save.jsp");11: String username = request.getParameter("username"); An error occurred at line: [8] in the jsp file: [/jsp/members/save.jsp]MemberRepository cannot be resolved5: <%6: // request, response 사용 가능7: 8: MemberRepository memberRepository = MemberRepository.getInstance();9: 10: System.out.println("save.jsp");11: String username = request.getParameter("username"); Stacktrace:] with root cause org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [14] in the generated java file: [/private/var/folders/1v/v3txby4x02v_9pyk_dr__mxh0000gn/T/tomcat.8080.1956174225538917680/work/Tomcat/localhost/ROOT/org/apache/jsp/jsp/members/save_jsp.java]Only a type can be imported. hello.servlet.domain.member.MemberRepository resolves to a package An error occurred at line: [8] in the jsp file: [/jsp/members/save.jsp]MemberRepository cannot be resolved to a type5: <%6: // request, response 사용 가능7: 8: MemberRepository memberRepository = MemberRepository.getInstance();9: 10: System.out.println("save.jsp");11: String username = request.getParameter("username"); An error occurred at line: [8] in the jsp file: [/jsp/members/save.jsp]MemberRepository cannot be resolved5: <%6: // request, response 사용 가능7: 8: MemberRepository memberRepository = MemberRepository.getInstance();9: 10: System.out.println("save.jsp");11: String username = request.getParameter("username"); 비슷한 질문을 찾은 것 같은데, save_jsp.java를 save.jsp로 바꾸는 방법을 잘 모르겠습니다. 또한 오로지 save.jsp로 파일을 작성했는데도 왜 save_jsp.java가 뜨는지 잘 모르겠습니다.. 왜 에러가 났는지 알려줄 수 있으신가요? 구글 드라이브에 전체 파일을 올렸습니다! https://drive.google.com/drive/folders/1D4U-4cU1wi_A2w2fSVVijXTpSxoTkX__?usp=sharing
-
미해결데이터베이스 중급(Modeling)
기준 테이블이라는 단어를 처음 사용하셨는데요 ㅜㅜ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 지금 저 위의 캡처 이미지에서 '고객'을 기준 테이블 '주문'을 마스터 테이블이라고 말씀하셨습니다. 그런데 여기서 고객이 마스터 테이블이고 주문은 관계형 테이블로 존재하게 되지 않나요..?? 고객은 주문이 없어도 존재할 수 있지만 주문이라는 것은 상품이나 고객으로 다로 존재할 수 없기 때문에 관계형 테이블로 보이는데 제 생각이 틀린 것인지 궁금합니다 그리고 각각 기준 테이블(고객), 마스터 테이블(주문)이라고 설명하신 부분이 잘못 설명하신 게 아니라면 그 이유가 궁금합니다 감사합니다.
-
미해결예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
nltk모듈 MLE의 score메서드 계산 질문드립니다.
안녕하세요. 강의 듣고 실습하면서 nltk의 MLE.score 메서드가 어떻게 점수를 구체적으로 어떻게 계산하는지 궁금해서 질문드립니다. 단어가 등장한 개수를 기반으로 계산하는 것 같은데, nltk document도 찾아보고 구글링도 해봤는데 잘 못찾겠어서 질문드립니다. 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Kafka Connector 오류
안녕하세요. 실습중에 오류가 발생하여 문의 드립니다. Kafka Connector 생성이후에 상태를 확인하면 아래와 같은 오류가 발생하고 있습니다. 1. 등록화면 2. Postman 오류 3. Terminal 오류 로그
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
파일 업로드시 파라미터값 질문 드려요~
파일 업로드시 <input type="hidden" id="memID" name="memID" value="${dto.memID}"> 값을 셋팅하고 컨드롤로에서 HttpServletRequest req 선언하고 String memID = req .getParameter("memID"); 이렇게 하면 값이 안넘어 오는데 어떤이유일까요.... 다른 컨트롤러(회원정보수정)에서는 값을 잘 받아 오는데 파일업로드시 값이 안들어 가더라고요..
-
미해결배달앱 클론코딩 [with React Native]
버전 관련해서 질문이 있습니다.!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 만약 현재 앱 버전이 1.0.2 이라고 가정했을시 코드푸쉬 빌드 타켓을 1.0으로 적용하고 앱버전을 1.0.3 으로 올리고 따로 버전관리를 위해 플레이스토어 , 앱스토어에도 배포를 해주시는건지 궁금합니다. 아니면 코드푸쉬 하실때마다 마지막 번호만 코드상에서 빌드버전만 올리시고, 추후에 1.1.0 버전 배포를할때만 스토어에 배포를 해주신건지 궁금합니다 !
-
미해결스프링 핵심 원리 - 기본편
빈 등록 안 된 상태에서 @Autowired사용
강의 4:13초에 실행된 결과 값이 이해가 가지 않습니다. 저는 오류가 발생해야 된다고 생각합니다. 그 이유는 @Autowired가 생략된 것으로 @Autowired로 인해 의존 관계가 주입이 되어야 하는데 new AnnotationConfigApplicationContext(); 인자 속에 DiscountService.class만 존재합니다. 그러면 DiscountService생성자의 매개변수 타입이 빈 등록이 안 되어 있어 주입해 줄 타입의 빈이 존재하지 않아 오류가 발생해야 한다고 생각하는데 오류가 왜 안 나는 것인가요? 감사합니다.
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
ajax csrf 토큰 설정 문의 드립니다.
if(!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(s.type)){ x.setRequestHeader("X-CSRFToken", csrf_token); } 영상중 위 코드 중에서 if문 로직을 이해 못해서 질문 드려요 질문1. if(!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(s.type)) if문중 s.type 을 출력해보니 "post"로 console에 나옵니다 제가 생각하기에/^(GET|HEAD|OPTIONS|TRACE)$/i.test(s.type) 이건 false고앞에 !를 붙여서false가 true로 변하게 되는것 같습니다 >> 제가 생각 하는게 맞는지 궁금합니다. 질문2. 질문1의 제 생각이 맞다면 s.type이 post면 if문이 작동하고s.type이 get이면, csrf 토큰 설정이 안되는것이라고 생각 해도 되나요? get방식은 왜, 토큰 설정을 하지 않을까요? 질문3. 14분 22초 영상 말씀을 빌리자면 "세팅타입이GET이나 HEAD나 OPTIONS나 TRACE중 하나면, x객체에 csrf토큰을 추가"한다고 말씀해 주셨습니다. 혹시 "GET이나 HEAD나 OPTIONS나 TRACE중 하나가 아니면, x 객체에 csrf토큰을 추가 하는게 맞는게 아닌지 궁금합니다" 질문4. if문에서끝부문 .test(s.type)는 .test 앞에 있는 객체나 값들이 s.type 이 맞는지 확인하여맞으면 true틀리면 false를 주는 메소드라고 생각해도 되는지 궁금합니다. 항상 좋은 강의 늘 감사드립니다
-
미해결비전공 기획자 및 관리자를 위한 IT 필수 지식
강의 자료 요청드립니다.
안녕하세요. 강사님 강의자료 요청드립니다. 재밌고 이해가 너무 쉽게 설명을 잘해주셔서 감사합니다!! yong9964@naver.com
-
미해결Slack 클론 코딩[실시간 채팅 with React]
activeClassName selected 효과관련 질문입니다!!
v6부터 activeClassName이 사라졌다고 해서 NavLink 에 selected 효과를 채널과 디엠 둘다 똑같이 적었습니다 근데 DM리스트에는 selected효과가 제대로 먹히고 채널리스트에는 두번째 채널만 클릭할때 효과가 들어가는데 원인이 무엇인지 모르겠습니다 ㅠㅠ 에러도 안뜨고 주소는 위아래 제대로 생성되고 있습니다,,