묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
Config클래스, @Autowired 혼용에 대해 궁금합니다.
1. Config 클래스를 만들어 @Bean으로 의존관계를 설정했다고 가정할 때, @Autowired를 MemberServiceImpl 같은 코드의 생성자에 붙였어도 @Bean으로 의존관계를 설정한 부분과 @Autowired로 의존관계를 설정한 부분이 다르면 같이 써도 되는 것이 맞나요? 2. 만약 같이써도 된다면 @SpringBootAplication이 @ComponentScan을 가지고 있으므로 Config 의 @Configuration을 보고 Config도 올리고 @Bean 붙인 부분도 스프링 컨테이너에 올리는 것이 맞을까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드리뷰 부탁드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(m, arr){ let answer=0; for(let i=0; i<arr.length; i++){ let sum=0; let j=i; while(sum<=m){ sum += arr[j++]; if(sum == m) answer++; } } return answer; } let a=[1, 6, 1, 3, 1, 1, 1, 2]; console.log(solution(6, a)); </script> </body> </html> 이렇게 짰는데 좋은코드인가요?
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
error: (intermediate value).map is not a function
ImageList.js import React, { useContext } from 'react'; import { ImageContext } from '../context/ImageContext'; const ImageList = () => { const { images, myImages, isPublic, setIsPublic } = useContext(ImageContext); console.log(myImages); const imgList = (isPublic ? images : myImages).map((image) => ( <img alt="" key={image.key} style={{ width: '100%' }} src={`http://localhost:8000/uploads/${image.key}`} /> )); return ( <div> <h3 style={{ display: 'inline-block', marginRight: 10 }}> Image List({isPublic ? '공개' : '개인'} 사진) </h3> <button onClick={() => setIsPublic(!isPublic)}> {(isPublic ? '개인' : '공개') + ' 사진 보기'} </button> {imgList} </div> ); }; export default ImageList; error: (intermediate value).map is not a function ImageContext.js > const [myImages, setMyImages] = useState([]); myImages 가 문제인거 같은데..함수가 아니라니..원인을 알 수가 없네요 ~ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 케이스 실행하면 실패가 뜹니다.
11강에서 사진과 같이 강의와 똑같이 작성하고 run 했을 때 성공 해야하는데 저렇게 빨간줄 에러가 뜨고 에러 문구 창 대로 Member result = (Member) repository.findById(member.getId()).get(); 이렇게 해서 에러가 사라진채로 돌려보면 test가 fail 합니다 . 코드를 똑같이 따라쳤는데 왜 안되는지 모르겠습니다.
-
미해결단 두 장의 문서로 데이터 분석과 시각화 뽀개기
주피터노트북 목록(contents) 만들기
안녕하세요. 선생님 코로나 확진자 실습에서, 선생님 화면 좌측에 contents는 어떻게 만드는건지요? 혹시 참고할만한 사이트 등이 있는지 문의드립니다.
-
미해결SwiftUI - iOS14 퍼펙트 가이드
LazeVGrid 관련 문의드립니다
LazyVGrid 관련 문의드립니다 안녕하세요 실습 과정 중 3개의 이미지의 해상도가 각자 다르면 아래 처럼 출력이 됩니다. 혹시 이것을 동일하게 맞출수 있을까요? 감사합니다
-
미해결파이썬(Python) 기초부터 실무까지 part.1
설치하고 cmd에서 파이선이라고 치니까 마이크로소프트 스토어에 다운로드 창이 나와버립니다
설치하고 cmd에서 파이선이라고 치니까 마이크로소프트 스토어에 다운로드 창이 나와버립니다 윈도우 10입니다 데스크탑
-
미해결[구버전] 웹 애플리케이션 개발을 위한 IntelliJ IDEA 설정 (2020 ver.)
Community 버전에서 Smart Tomcat으로도 실습이 가능한가요?
Smart Tomcat에서는 강의 내용에서처럼 artifact 추가 하는 부분을 찾지 못했습니다. /myweb 까지는 실습이 잘 되는데, /HttpServlet 부터는 404가 발생하네요. Lifecycle > package 명령어로 war 파일 생성해서 직접 webapps 폴더에 위치시키고 Tomcat 띄워봐도 동일한 증상인데 제가 놓치고 있는 부분이 있을까요?
-
미해결파이널 코딩테스트 : 프론트엔드
노션 링크 질문입니다.
안녕하세요. 노션링크 질문입니다. 알려주신 노션링크를 fork 하고싶은데 혹시 가능할까요?
-
미해결따라하며 배우는 MySQL on Docker
proxysql 테스트에 접근 제한 에러가 발생합니다.
* 해당 테스트는 docker-compose 기반에서 수행하였습니다. mysql -h127.0.0.1 -P16033 -uappuser -papppass -N -e "select @@hostname,now()" 2>&1| grep -v "Warning" 상위의 명령어를 입력하면 ERROR 1045 (28000) at line 1: Access denied for user 'appuser'@'proxysql.compose_mybridge' (using password: YES) 이런 메시지가 출력됩니다. proxysql 로그를 보면 proxysql | 2022-01-29 05:06:16 mysql_connection.cpp:1022:handler(): [ERROR] Failed to mysql_real_connect() on 20:db001:3306 , FD (Conn:43 , MyDS:43) , 1045: Access denied for user 'appuser'@'proxysql.mybridge' (using password: YES). 위와 같이 에러가 발생하며, 사실 3개 db 모두 접근을 시도 하지만 에러가 발생됩니다. 각 db container들에서 상호간 -uappuser -papppass 를 사용하면 모두 원격으로 접속이 됩니다. 이러한 경우 어떤 부분을 살펴봐야 할까요? proxysql의 command에서 연결을 확인할 방법이 따로 있을까요? * 혹시나 확인해본 runtime_mysql_server의 테이블 결과에서 각 db의 연결 상태는 online으로 확인하였습니다. 이러한 상황에서 문제를 해결하기 위한 접근을 어떻게 하면 좋을지 조언이 필요합니다.
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
캘리브레이션에서 첫 번째 항목이 High로 안올라가요..ㅜㅜ
안녕하세요. 오늘 강의를 다 듣고 최종 조립전에 cal를 하려고 했는데, 몇 번을 재시도해도 첫번째 항목이 Mid에서 High로 안올라가네요... 어째튼, SwC을 올려서 값을 저장하고 시리얼 플로터로 확인해보면 Roll이 0.7 Pitch가 0.1 로 센서 출력값에는 이상이 없어보이네요... 이대로 사용해도 문제없나요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
quill editor 사용 이미지 업로드 질문 있습니다.
/back/routes/post const router = require('express').Router(); const multer = require('multer'); const fs = require('fs'); const path = require('path'); try { fs.accessSync('uploads'); } catch (error) { console.log('uploads 폴더가 없으므로 생성합니다.'); fs.mkdirSync('uploads'); } const upload = multer({ storage: multer.diskStorage({ destination: function (req, file, done) { done(null, 'uploads/'); }, // 이미지.png filename: function (req, file, cb) { const ext = path.extname(file.originalname); // 확장자 추출(.png) const basename = path.basename(file.originalname, ext); // 이미지 done(null, basename + new Data().getTime() + ext); // 이미지20210124.png }, }), limits: { fileSize: 20 * 1024 * 1024 }, // 파일크기: 20MB }); // 지금은 하드디스크에 저장하지만 AWS 배포 시 storage 옵션만 S3 서비스로 갈아끼울 예정 // POST /post/images router.post('/images', isLoggedIn, upload.array('image'), (req, res, next) => { console.log(req.files); // 업로드가 어떻게 됬는지 정보들이 담겨있음 res.json(req.files.map((v) => v.filename)); // 어디로 업로드 됬는지에 대한 파일명들을 프론트로 전송 }); // 먼저 파일명만 return 해준다. -> v.filename, 추후 배포 시 이미지는 지우지 않는다.(자산이다) 백엔드에서 multer를 이용해 이미지 업로드 시 upload라는 파일을 생성하고, multer를 통해 저장위치와 파일도 추출했습니다. 이후 POST /post/images 라우터에서 프론트의 key 값이 일치해야 파일을 가져오는데 1. 현재 quill editor를 사용, image file을 올리면 사진이 첨부되지 않고 요청에 대한 result를 받아오지 못합니다. (saga) 그런데 SUCCESS 까지는 잘 넘어갑니다. // saga post function uploadImagesAPI(data) { return axios.post(`/post/images`, data); // data: post.id } function* uploadImages(action) { try { const result = yield call(uploadImagesAPI, action.data); console.log('result', result); // yield delay(1000); yield put({ type: UPLOAD_IMAGES_SUCCESS, data: result.data, }); } catch (err) { yield put({ type: UPLOAD_IMAGES_FAILURE, error: err.response.data, }); } } 2. quill editor 사용법과 많은 코드들을 참고하여 작성한 로직입니다. //* quill text editor const QuillNoSSRWrapper = dynamic(import('react-quill'), { ssr: false, loading: () => <p>Loading ...</p>, }); const formats = [ 'header', 'font', 'size', 'bold', 'italic', 'underline', 'strike', 'blockquote', 'list', 'bullet', 'indent', 'link', 'image', 'video', ]; //* AddPost const AddPost = () => { const dispatch = useDispatch(); const { me, addPostError, imagePaths } = useSelector((state) => state.user); console.log('imagePaths', imagePaths); const [title, onChangeTitle] = useInput(''); const [category, setCategory] = useState(); const [content, setContent] = useState(''); const quillRef = useRef(); //* quill text editor const imageHandler = (e) => { console.log('에디터의 이미지 버튼을 클릭하면 이 핸들러가 시작됩니다.'); // true const input = document.createElement('input'); // 1. 이미지를 저장할 input type=file DOM을 만든다. // 속성 써주기 input.setAttribute('type', 'file'); input.setAttribute('accept', 'image/*'); input.click(); // 에디터 이미지버튼을 클릭하면 이 input이 클릭된다. input이 클릭되면 파일 선택창이 나타난다. input.addEventListener('change', async () => { console.log('onChange'); const file = input.files[0]; const imageFormData = new FormData(); // multer에 맞는 형식으로 데이터 만들어준다. [].forEach.call(file, (f) => { imageFormData.append('image', f); // formData는 키-밸류 구조 }); dispatch({ type: UPLOAD_IMAGES_REQUEST, data: imageFormData, }); }); }; //* quill text editor // useMemo를 사용한 이유는 modules가 렌더링마다 변하면 에디터에서 입력이 끊기는 버그가 발생 const modules = useMemo( () => ({ toolbar: { container: [ [{ header: [1, 2, false] }], ['bold', 'italic', 'underline', 'strike', 'blockquote'], [{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }], ['link', 'image'], ['clean'], ], handlers: { image: imageHandler }, }, }), [], ); const onSubmit = useCallback( (e) => { e.preventDefault(); if (!title) { return alert('제목을 입력하세요'); } else if (!category) { return alert('카테고리를 설정하세요'); } else if (!content) { return alert('게시글을 작성하세요'); } const formData = new FormData(); imagePaths.forEach((p) => { formData.append('image', p); }); formData.append({ title: title, category: category, content: content }); // dispatch loadPostRequest dispatch({ type: ADD_POST_REQUEST, data: formData, }); // error 없으면 community 목록으로 이동 if (!addPostError) { Router.push('/community'); } }, [title, category, content], ); <QuillNoSSRWrapper ref={quillRef} modules={modules} formats={formats} theme="snow" placeholder={`${me?.nickname}님의 글을 입력해주세요`} value={content} onChange={setContent} /> 참고: https://github.com/ko7452/e-Library/tree/master/prepare 혹시 제가 quill editor를 잘못 사용하거나 이해를 못하는 듯 한데.. 조언 주실 수 있을까요?
-
미해결파이썬(Python) 기초부터 실무까지 part.1
10강 변수와 계산(실습-2) ex06 질문
10강 변수와 계산(실습-2) ex06 에 질문드립니다. 분을 구하는 함수 (time // 60) % 60 에서 왜 '% 60'을 써서 다시 60으로 나눈 나머지를 구하나요? 함수를 (time // 60)만 써도 몫이 '분'의 값으로 나오지않나요? 이해가 잘 되지 않습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
비교적 최신 버전에서 에러가 발생합니다.
에러 내용을 자세하게 이해하진 못했지만 사용중인 임베디드 톰캣 버전에서 `hasIpAddress` 를 찾지 못하는 것 같습니다.스프링 버전은 2.6.2 사용중이고, starter-security 그대로 사용하고 있습니다. `hasIpAddress` 대신 다른 메서드를 사용하면 가능은 한데 의도한 것과 다른 것 같아서 남깁니다. java.lang.UnsupportedOperationException: public abstract java.lang.String javax.servlet.ServletRequest.getRemoteAddr() is not supported at org.springframework.security.web.FilterInvocation$UnsupportedOperationExceptionInvocationHandler.invoke(FilterInvocation.java:326) ~[spring-security-web-5.6.1.jar:5.6.1] at com.sun.proxy.$Proxy150.getRemoteAddr(Unknown Source) ~[na:na] at javax.servlet.ServletRequestWrapper.getRemoteAddr(ServletRequestWrapper.java:241) ~[tomcat-embed-core-9.0.56.jar:4.0.FR] at org.springframework.security.web.util.matcher.IpAddressMatcher.matches(IpAddressMatcher.java:65) ~[spring-security-web-5.6.1.jar:5.6.1]
-
미해결시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
macOS Monterey 12.1 에서 Vagrant 설치 오류 해결한 방법 적습니다.
Mac OS Monterey 12.1 에서 서버 구축 스크립트가 정상적으로 실행 안되는 문제가 있음 Mac Os Monterey 12.1에서 Virtual Box의 Headless 설정 불가능 Vagrantfile에서 v.gui = true 로 수정 반드시 6.1.30 이상의 VirtualBox를 설치 할 것. v.gui = true 수정 시 Virtual Box의 Verision이 6.1.30 이하라면 Mac이 알수 없는 오류로 재시작 됨. 손쉬운 사용에 VirtualBox 권한을 추가할 것 시스템 환경설정 → 보안 및 개인 정보 보호 → 손쉬운 사용 오른쪽에 VirtualBox를 추가 할 것 https://superuser.com/questions/1683747/vagrant-virtualbox-not-working-after-upgrading-to-monterey https://www.virtualbox.org/ticket/20636 Mac OS Monterey 12.1 VirtualBox 6.1.32 vagrant 2.2.14 이거 실행 시키느라 하루종일 삽질해서 다른분들은 그러지 마시라고 올립니다. 환경이 달라서 안될 수 도 있는데 저는 이렇게 겨우 작동시켰네요. 이제 다시 수업들으러 갑니다.
-
미해결만들면서 배우는 리액트 : 기초
15강에서 props 로 function 을 넘겨주는 코드 문의 드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Form 컴포넌트에 선언되어 있던 handleFormSubmit() 을 App 컴포넌트로 이동 후 Form 컴포넌트로 handleFormSubmit() 를 넘겨 주기 위해서 다음과 같이 코드를 작성하는데요. const Form = ({ handleFormSubmit }) => { return ( <form onSubmit={handleFormSubmit}> <input type="text" name="name" placeholder="영어 대사를 입력해주세요" /> <button type="submit">생성</button> </form> ) } props 로 handleFormSubmit 형태로 넘겨주지 않고 {handleFormSubmit} 형태로 넘겨주는 이유는 무엇인가요? ( {..} 형태는 html tag 시 react 의 표현식을 넘겨줄 때 사용하는 것으로 이해하고 있었습니다 )
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
don flag달지 않고 그냥 if 문을 두번 써도 되네요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. if rank > 100: break if rank > 100: print("100개가 출력되었음") break 로만 써도 되네요.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
product_price = soup.selet_one("span.total-price>strong").text에서 'NoneType' object is not callable
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 검색어는 usb허브였습니다. try except도 해봤는데 모든 상품 가격이 모두 0원으로 나옵니다. 개발자 도구에서 확인했는데 "span.total-price>strong"가 맞습니다. 전체 두개 밖에 없는게 맞구요. 어쩄든 오류가 나는데 해결방안이 보이지 않습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
IntelliJ - html에서 resources/static 경로 링크 관련 문의
안녕하세요. 구글링과 커뮤니티 검색을 계속 했는데 결국 답을 못찾아서 질문 남깁니다. "홈 화면과 레이아웃" 챕터에서 header.html에 보면 css가 link되어 있는데,소스에 있는 대로 "/css/bootstrap.min.css" 하면 프로그램은 정상동작이 잘 됩니다. 하지만, Intellij에서는 "Cannot resolve directory 'css'" warning이 나오고, 이 메시지를 없애기 위해 "/static/css/bootstrap.min.css"로 변경을 하면 당연히 프로그램 실행시 css를 못찾게 됩니다. 프로그램 실행에는 문제가 없지만, IntelliJ를 사용하여 효과적으로 개발하기 위해 해당 내용을 꼭 수정하고 싶어서 문의드립니다. 영한님 강의영상에선 제대로 연결이 되어 있는 것 같아서요. (강의영상 17:45) 환경 : IntelliJ IDEA 2021.3.1 (Ultimate Edition) 화면 캡처
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
c++공부 방법에 관해서...
덕분에 c++강의 잘 듣고 있지만 요즘 고민이 있어서, 한가지 여쭤보고자 합니다. 이전에 '포인터' 때문에 많이 애를 먹었는데, '클래스' 파트로 들어오고나니 더 힘들더군요 ㅜㅜ 이부분이 지루하고 많이들 어렵다고 하지만, 막상 처음 겪게 되니 요즘 공부하면서 멘탈에 금이가기 시작 하더군요... 혹시 이런 어려운 파트들은 어떻게 극복할 수 있는지 팁좀 알려 주실 수 있을까요?