묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
multer관련 path오류
현재 multer부분 실습중인데요ㅠ 어째서인지 이미지도 다 멀쩡히 저장되고 모든것이 다 잘 저장이 되는데 문제가 filepath가 file: "1641991261555_239.jpg" filePath: "server\\uploads\\1641991261555_239.jpg" success: true 로 저장이 되서 src부분이 경로가 제대로 안되는것 같더라구요ㅠ multer문제인 것 같은데 혹시 뭐가 문제인지 알수 있을까요...? 참고로 router에 넣지않고 index.js에 작업하고 있습니다 server쪽 코드 const storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'server/uploads') }, filename: function (req, file, cb) { cb(null,`${Date.now()}_${file.originalname}`) } }) const upload = multer({ storage: storage }).single("file") app.post('/api/product/image', (req, res)=>{ //가져온 이미지를 저장을 해주면 된다. upload(req, res, err =>{ if(err) { return res.json({success: false, err}) } return res.json({success:true, filePath:req.file.path, file:req.file.filename}) }) }) react 컴포넌트 부분 코드 function FileUpload() { const [Images, setImages] = useState([]); const dropHandler = (files)=>{ let formData = new FormData(); const config = { header:{'content-type':'multipart/fomr-data'} } formData.append("file", files[0]) axios.post('/api/product/image', formData, config ) .then(response => { if(response.data.success){ console.log(response.data) setImages([...Images, response.filePath]) }else{ alert('파일을 저장하는데 실패했습니다') } }) console.log(Images) }
-
미해결
Python Selenium code 관련 질문드려요
from selenium import webdriver driver = webdriver.Chrome('C:/Users/estee/Desktop/파이썬 작업물/chromedriver.exe') import time # 주소모음 naver_GIBH = "https://map.naver.com/v5/search/%EA%B5%AC%EC%8A%A4%EC%95%84%EC%9D%BC%EB%9E%9C%EB%93%9C%20%EB%B8%8C%EB%A3%A8%ED%95%98%EC%9A%B0%EC%8A%A4/place/505375149?c=14140682.3022615,4508106.9534795,15,0,0,0,dh" naver_GBK = "https://map.naver.com/v5/entry/place/996095686?c=14133872.9335375,4519631.0127127,15,0,0,0,dh" naver_YONGSAN = "https://map.naver.com/v5/entry/place/1905880476?c=14133837.3558283,4513226.0701902,15,0,0,0,dh" naver_adresses = [naver_GIBH, naver_GBK, naver_YONGSAN] # 평점과 리뷰 크롤링 for adress in naver_adresses : driver.get(adress) driver.implicitly_wait(10) driver.switch_to.frame('entryIframe') rating = driver.find_element_by_xpath('//*[@id="app-root"]/div/div/div[2]/div[1]/div/div/div[1]/div/span[1]').text submenu_name = driver.find_element_by_xpath('//*[@id="app-root"]/div/div/div[2]/div[3]/div/div/div/div/a[3]/span').text # 메뉴가 5개 나올 때는, 4번째 탭을 이용하고, 메뉴가 4개 나올 때는 3번째 탭을 이용 if submenu_name != "리뷰" : driver.find_element_by_xpath('//*[@id="app-root"]/div/div/div[2]/div[3]/div/div/div/div/a[4]/span').click() else : driver.find_element_by_xpath('//*[@id="app-root"]/div/div/div[2]/div[3]/div/div/div/div/a[3]/span').click() # 리뷰개수 print( driver.find_element_by_xpath('//*[@id="app-root"]/div/div/div[2]/div[5]/div[4]/div[3]/h2/span').text ) driver.close() 해당 코드는 네이버 지도의 각 매장 별 리뷰 개수를 가지고 오는 코드에요. naver_GIBH , naver_GBK 링크는 리뷰 개수를 불러오는데, 마지막 naver_YONGSAN 링크의 리뷰 개수는 들고오지 못하더라구요. 혹시 이 코드에 관해 봐주실 수 있을까요 ? + 추가 질문인데, 제가 Selenium을 통해서 리뷰개수를 찾아오는 방식은 selenium으로 리뷰 탭을 선택하고 나서, 들고 오는 거에요. 근데 네이버 지도가 인스타그램처럼 스크롤을 내리면 정보를 불러오는 방식으로 설계되어 있더라구요. 혹시 이와 관련해서 Selenium으로 클릭하지 않고, crawling 하는 방법이 따로 있을지도 질문드려요 .
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
mainPosts in reducer 질문 있습니다
// reducer export const initialState = { mainPosts: [], // 메인 게시글들 imagePaths: [], // 이미지 url hasMorePosts: true, // 가져오려는 시도 loadPostsLoading: false, loadPostsDone: false, loadPostsError: null, addPostLoading: false, addPostDone: false, addPostError: null, }; case LOAD_POSTS_SUCCESS: return { ...state, loadPostsLoading: false, loadPostsDone: true, mainPosts: state.mainPosts.concat(action.data), hasMorePosts: state.mainPosts.length < 50 ? true : false, }; function loadPostsAPI(data) { return axios.get(`http://localhost:3000/posts`, data); } // saga function* loadPosts(action) { try { // const result = yield call(loadPostsAPI, action.data); // console.log('result', result); yield delay(1000); yield put({ type: LOAD_POSTS_SUCCESS, data: action.data, }); } catch (err) { yield put({ type: LOAD_POSTS_FAILURE, data: err.response.data, }); } } LoadPostRequest 시 전체 게시글을 불러오는데 생성된 글이 없습니다. 그럼 mainPost: []가 빈 배열이어야 하는데 ...console.log에 찍힌 결과로는 아래와 같이 undefined가 찍혀 나옵니다. LOAD_POSTS_REQUEST_MainPosts: [undefined] 떄문에 배열에 값이 들어있는 것으로 인식되어 이렇게 에러가 나옵니다. loadPosts 시 데이터가 없을 땐 빈배열로 하고싶은데 도무지 파악이 되질 않습니다. 일부러 immer를 도입하지 않고 불변성을 지키려하는데 혹시 제가 불변성 관련하여 잘 못하고 있는것인지 조언 부탁드립니다.. PS. 게시글을 추가 시 ... mainPosts: dummyPost(action.data).concat(state.mainPosts), ADD_POST_REQUEST 부분은 불변성을 잘 지킨 것인지도 궁금합니다. 질문이 서툴러 죄송합니다. 좀 더 학습해서 질문 수준도 올릴수 있도록 하겠습니다... 참고 github 링크: https://github.com/ko7452/e-Library
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
밑에 ::class.java 안된다고 하신분
저도 안돼서 찾아보니 버전이 달라서 생긴 오류입니다. 강사님 소스 그대로 복붙해도 안되더라구요 저같은 경우에는 gradle에서 implementation 'androidx.core:core-ktx:1.7.0' 에서 implementation 'androidx.core:core-ktx:1.3.2' 로 다운그레이드하니깐 잘 됐습니다. ::class.java는 최신버전에서는 아무래도 안 되는 것 같네요. 안되는분들 참고하시면 좋을거같습니다
-
미해결홍정모의 따라하며 배우는 C++
&로 데이터의 주소를 표현할 때
데이터가 들어있는 첫번째 주소를 표현한다고 해주셨는데, 첫번째 bit를 표현하는 건가요 아니면 첫번째 byte를 표현하는 건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 별개의 질문이 있습니다.
안녕하세요. 스프링 입문 다 듣고 기본편을 듣고 있는 수강생입니다. 개인적으로 스프링부트로 프로젝트를 하는도중 mysql 관련해서 궁금한 점이 있어서 글을 남깁니다. 간단하게 말씀드리자면 웹에서 회원가입을 했을 경우 필수 입력사항이 아니면 db에 null 값으로 안들어가고 공백으로 들어가고 있습니다.. 아래 일반적인 테이블인데 공백으로 들어가는 부분이 생깁니다. create table test( num smallint auto_increment primary key, id varchar(200), pw varchar(200), gender varchar(10) ) 다만, 아래 코드처럼 웹사이트가 아닌 쿼리문으로 바로 실행하면 값을 입력하지 않는 컬럼은 null로 들어가고 있습니다. insert into test (id,pw) values ('test','1234'); 웹에서는 입력하지 않은 값이 null이 아닌 공백으로 들어가는지가 궁금합니다.ㅠㅠ
-
미해결[2026 신규] 데이터분석 준전문가(ADsP) 자격증
예상문제풀이 자료 문의
3-2 강의후에 예상문제 풀이 강의가 전개되는데 예상문제풀이 문제가 별도로 인프런에 업로드 되어있는지 문의드립니다. - 제본 강의자료에 없음
-
미해결리눅스 커널 해킹. A부터 Z까지
M1 실리콘에서도 실습이 가능한가요?
이번에 M1 맥을 구입하려하는데 arm기반이다보니 환경호환이 안될 것 같아서 그런데.. 맥 vm으로 실습이 가능한가 싶어서 질문 드립니다.!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
close() clear() 차이점
21:10쯤 select쿼리를 보고싶어서 em.flush()와 em.clear()사용하셨는데 em.close()를 사용하였더니 select쿼리가 안보입니다. 제가 알기로는 em.close()는 영속성 컨텍스트가 종료되는 것이고 em.clear()는 영속성 컨텍스트 초기화로 알고있는데 이 둘의 차이점을 자세히 알고싶습니다. 결국 둘다 준영속 상태로 만드는것 아닌가요?
-
미해결스프링 핵심 원리 - 기본편
왜 스프링에 의존적이면 안되나요?
클래스간 의존적이면 OCP DIP 등 원칙에 위배 된다고해서 추상화에 의존적으로 설계하라가 객체지향의 원칙인건 이해가되는데, 스프링프레임워크안에서 스프링을 쓰는입장인데 왜 스프링에 의존적이면 안되나요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
어플리케이션 로직이 필요한 검증의 분리
안녕하세요. 항상 강의 너무 잘 듣고 있습니다! 개인 프로젝트로 질문/답변 게시판 웹사이트 구현을 진행하고 있습니다. 대부분의 로직에 질문/답변 요청의 작성자임을 확인하는 로직이 필요한데 해당 검증 로직은 필연적으로 어플리케이션(DB단 까지)로직이 필요합니다. 제 생각에 검증기validator 클래스를 도입하는 것 보다 Filter나 인터셉터를 활용하는 방식이 좋아보이는데 맞을까요?? 현재 코드는 아래와 같습니다. 게시글의 수정페이지에 대한 Get매핑과 수정하는 PostMapping입니다. Post - 게시글, Account - 계정(작성자) @GetMapping("qna/edit/{postId}")public String PostEditForm(@PathVariable Long postId, Model model){ //사용자 검증 if(!isValidEditRequest(postId)){ return "denied"; } Post post = postService.findById(postId); model.addAttribute("post",post); return "qna/edit";}@PostMapping("qna/edit/{postId}")public String PostEdit(@PathVariable Long postId, PostDto postDto){ //사용자 검증 if(!isValidEditRequest(postId)){ return "denied"; } //수정 postService.edit(postId,postDto); //수정 후 수정된 게시글로 이동 return "redirect:/qna/show/"+postId;}private boolean isValidEditRequest(Long postId) { return postService.isWrittenBy(postId, getAccount().getId());} 질문은 아래와 같습니다. 1. Validator, Filter, Interceptor가 service를 참조해도 괜찮을까요? 2. 해당 로직을 처리하는 정형화된 방식이 Spring Security에 있을까요?? 감사합니다!
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
Python 프로젝트에 적용하기에 가장 적합한 형태의 모델은 어떤 형식인가요?
Open CV를 활용한 파이썬 PC 프로그램을 만들고자 하는데요 기존에는 classification 만 하려는 목적으로 .h5 형태의 모델을 사용했었는데 Object Detection 바꾸게 되었습니다 처음엔 YOLO 전이학습이 가장 쉽게 모델을 추출할수 있는것 같아서 YOLOV5 전이학습을 통해 나온 .pt 모델을 사용하려고 했는데 이방법을 어려울것 같다고 하셔서요 혹시 어떤 형태의 Object Detection 모델이 GPU기반 프로그램에서 Open CV 와 활용했을때 가장 효율이 좋고 쉽게 사용할수 있을까요? 또 전이학습을 통해 .pt 파일이 아닌 .weights 와 .cfg 를 추출하는 방법이 있을까요? 답변부탁 드리겠습니다 교수님..... 감사합니다!
-
해결됨윤재성의 만들면서 배우는 Spring MVC 5
url에 대한 질문이 있습니다
강의를 진행하실때 board/main.jsp에서 글쓰기 버튼 url을 적으실때 <a herf="${root }board/write" class="btn btn-primary">글쓰기</a> 로 진행하셨습니다 근데 공부하면서 생각해보니깐 위와 같이 적지않고 그냥 현재 페이지가 board/main이므로 상대경로인 <a herf="write" class="btn btn-primary">글쓰기</a> 와 같이 적어도 되는데 이건 개발자의 개발 스타일인가요? 아니면 혹시나 url이 꼬일 수 있으니 절대경로로 url 지정해주는건가요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
ES6 중복 제거 코드 (참고)
const a = [...new Set(array)]
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요 gradlew build하는 과정
안녕하세요!! 강의 보고 배우고 있는 학생입니다!! gradlew.bat build 입력을 하면 gradlew.bat: command not found라는 문구가 뜨는데 왜 그런 걸까용,.,?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
산술 shift와 최상위 비트 관련
산술 shift에서 최상위 비트는 그대로 유지가 된다고 알고 있는데 0x 1001 0100(-108)과 0x 0100 0100(68)에서 각각 left shift 1을 하면 0x 0010 1000(40)과, 0x 1000 1000(-120)으로 최상위비트가 변경이 되는데 왜 이러는 것인지 궁금합니다... 최상위 비트 유지는 right shift에 한해서만 되는 것인가요? p.s. 사칙연산 강의 관련한 내용이지만 add [num], byte 1에서 resb로 이미 설정을 했음에도 resb는 데이터를 할당할 때 내린 명령이라 1에 byte를 붙여야 된다고 말씀하셨는데 resb로 설정된 것은 num인데 1과 resb 사이에 어떤 연관이 있는 것인지 궁금합니다
-
미해결함수형 프로그래밍과 JavaScript ES6+
강의내용 질문드립니다!
강의내용 15:36초부분에서 질문드립니다.. 강의 94번쨰 코드라인에서 에러가발생했음에도 불구하고 왜 then으로 처리되는건가요?? 만약 then으로 빠질 수 밖에 없는상황이라면 아래와같이 catch문을 작성해줬을떄 catch문으로 빠질 수 있는 상황이 어떤 부분에서 에러가 발생했을때 처리해 줄 수 있나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ContextSwitching 강의를 듣다가 궁금한 것이 생겼습니다.
식당을 예로 들어서 말씀해주셔서 저도 식당에 비유해서 질문 드리자면 여러 직원(쓰레드?)이 있을 때 영혼이 하나의 직원에서 다른 직원 쪽으로 바꿔 빙의할 때 중간에 식당 관리자(커널)이 개입하는 걸로 이해했습니다. 그렇다면 관리자가 빙의시킬 직원을 고를 때 어떤 직원부터 빙의시킬 지 선택하는 기준이 있을 것 같은데 그런 스케쥴링 하는 알고리즘? 같은 것이 커널에 있는 것인가요? 그렇다면 어떤 형태의 알고리즘을 채택하는 것이고 게임 프로그래밍에 있어서 이러한 스케쥴링을 이해하는 것이 좋을지 궁금해서 질문 드립니다! 항상 강의 재밌게 잘 보고 있습니다! 감사합니다!
-
미해결
인텔리제이로 프로그램 실행이 잘되다가 갑자기 Process finished with exit code 1가 뜨면서 서버가 돌아가지 않습니다.
이전에는 자바 14 버전으로 할때는 잘되다가 갑자기 오늘부터 Process finished with exit code 1 오류가 뜨더라구요 그래서 자바 11버전 설치한 후 JAVAHOME환경 변수 설정도 바꿔준 후 setting에서 Gradle JVM까지 버전 11으로 잘 설정했습니다. 그래도 여전히 같은 오류가 뜨고 서버가 실행되지 않습니다. 어떻게 해야할까요 Run부분을 보면 "C:\Program Files\Java\jdk-14.0.2\bin\java.exe" 계속 14버전이 뜨던데 이부분이 문제인걸까요? 환경변수 바꿔줘도 계속 java가 14버전으로 실행되는것인가요,,,ㅜㅜ
-
해결됨15일간의 빅데이터 파일럿 프로젝트
hue에서 파일 업로드가 정상적으로 되지 않습니다.
좋은 강의 만들어주셔서 감사합니다. 자세한 설명 덕분에 순조롭게 잘 따라가고 있습니다. 현재 hue에서 파일 업로드를 진행하고 있는데요, CarMaster는 정상적으로 올라가지만 buy list는 업로드가 되지 않습니다. . 첫번째 상태로 유지되다가" undefined 성공적으로 업로드 되었다"라고 뜨고 실제로는 아무런 변화도 일어나지 않습니다. 에러 로그를 어디서 확인할 수 있는지 궁금합니다. 감사합니다