묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
12장 동기화 강의
코드는 스레드 객체 에서 java.lang만 빼고 똑같은데 결과가 왜 10이 넘는 숫자가 나오나요? java.lang에 영향인가요
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
12장 Runnable 강의
스레드 객체 만들때 강의에서와 달리java.lang이 있어야 오류가 안 나던데 왜 이런 건가요
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
미리보기가 보이지 않습니다
//app.js app.use('/', express.static(path.join(__dirname, 'uploads'))); //PostForm.js import { Button, Form, Input } from 'antd'; import React, { useCallback, useEffect, useRef } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import styled from 'styled-components'; import useInput from '../hooks/useInput'; import { ADD_POST_REQUEST, REMOVE_IMAGE, UPLOAD_IMAGES_REQUEST, addPost, } from '../reducers/post'; const FormWrapper = styled(Form)` margin: 10px 0 20px; `; const ButtonStyle = styled(Button)` float: 'right'; `; const PostForm = () => { const { imagePaths, addPostLoading, addPostDone } = useSelector( (state) => state.post ); const dispatch = useDispatch(); const imageInput = useRef(); const [text, onChangeText, setText] = useInput(''); useEffect(() => { if (addPostDone) { setText(''); } }, [addPostDone]); const onSubmitForm = useCallback(() => { if (!text || !text.trim()) { return alert('게시글을 작성하세요.'); } const formData = new FormData(); imagePaths.forEach((p) => { formData.append('image', p); }); formData.append('content', text); return dispatch({ type: ADD_POST_REQUEST, data: formData, }); }, [text, imagePaths]); const onClickImageUpload = useCallback(() => { imageInput.current.click(); }, [imageInput.current]); const onChangeImages = useCallback((e) => { console.log('images', e.target.files); //배열모양을 띄는 객체 const imageFormData = new FormData(); [].forEach.call(e.target.files, (f) => { imageFormData.append('image', f); }); dispatch({ type: UPLOAD_IMAGES_REQUEST, data: imageFormData, }); }, []); const onRemoveImage = useCallback( (index) => () => { dispatch({ type: REMOVE_IMAGE, data: index, }); }, [] ); return ( <FormWrapper encType='multipart/form-data' onFinish={onSubmitForm}> <Input.TextArea value={text} onChange={onChangeText} maxLength={140} placeholder='어떤 신기한 일이 있었나요?' /> <div> <input onChange={onChangeImages} type='file' name='image' hidden multiple ref={imageInput} /> <Button onClick={onClickImageUpload}>이미지 업로드</Button> <ButtonStyle type='primary' htmlType='submit'> Twit </ButtonStyle> </div> <div> {imagePaths.map((item, i) => ( <div key={item} style={{ display: 'inline-block' }}> <img src={`http://localhost:3065/${item}`} style={{ width: '200px' }} alt={item} /> <div> <Button onClick={onRemoveImage(i)}>제거</Button> </div> </div> ))} </div> </FormWrapper> ); }; export default PostForm; //post.js const multer = require('multer'); const path = require('path'); const fs = require('fs'); const { Post, Image, Comment, User } = require('../models'); const { isLoggedIn } = require('./middlewares'); const router = express.Router(); try { fs.accessSync('uploads'); } catch (error) { console.log('uploads 폴더가 없으므로 생성합니다.'); fs.mkdirSync('uploads'); } //이미지나 동영상처리는 웬만하면 프론트에서 클라우드로 바로 올리는게 좋다. const upload = multer({ storage: multer.diskStorage({ destination(req, file, done) { done(null, 'uploads'); }, //배포때는 s3로 , 개발에는 드라이브에 filename(req, file, done) { const ext = path.extname(file.originalname); //확장자 추출 const basename = path.basename(file.originalname, ext); done(null, basename + '_' + new Date().getTime() + ext); //이나당151817842.png }, }), limits: { fileSize: 20 * 1024 * 1024 }, //20MB }); router.post('/', isLoggedIn, upload.none(), async (req, res, next) => { // POST /post try { const post = await Post.create({ content: req.body.content, UserId: req.user.id, }); if (req.body.image) { if (Array.isArray(req.body.image)) { const images = await Promise.all( req.body.image.map((image) => Image.create({ src: image })) ); await post.addImages(images); } else { const image = await Image.create({ src: req.body.image }); await post.addImages(image); } } console.log('POST', post); const fullPost = await Post.findOne({ where: post.id, include: [ { model: Image, }, { model: Comment, include: [{ model: User, attributes: ['id', 'nickname'] }], }, { model: User, //작성자 attributes: ['id', 'nickname'], }, { model: User, //좋아요 누른 사람 as: 'Likers', attributes: ['id'], }, ], }); res.status(201).json(fullPost); } catch (error) { console.error(error); next(error); } }); router.post( '/images', isLoggedIn, upload.array('image'), async (req, res, next) => { //POST /post/images try { console.log(req.files); res.json(req.files.map((v) => v.filename)); } catch (error) { console.error(error); next(error); } } ); 안녕하세요 제로초님! 질문이 있습니다.. 파일은 제대로 올라가서 uploads 폴더안에 있는데 화면에서 이미지를 가져오지 못하고있습니다.. 프론트-백 api통신도 잘 되는데, 왜 개발자도구-네트워크에서 이미지를 가져올 수 없는지 이유를 모르겠습니다 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 서비스 개발, 테스트 시 throw new IllegalStateException(); 코드 작성 오류
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]회원 서비스 개발 강의와 그 다음 강의에서 throw new IllegalStateException("이미 존재하는 회원입니다.") 이 코드를 작성하면 저는 try catch 로 감싸라고 오류가 나옵니다. 왜 선생님은 오류가 나지 않으시나요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
예시 코드들의 운영체제를 유닉스나 리눅스로 하는 이유
안녕하세요! 비전공자로 이쪽에 뛰어들어 덕분에 쉽게 공부를 해 가고 있습니다. 책을 읽다가 나오는 깃허브의 실습 예제들이 유닉스 기반 코드들이라 윈도우에서 동작하지 않아 따로 찾아가며 하고 있습니다 혹시 윈도우가 아닌 다른 운영체제로 실습하는 이유가 있을까요? 공부를 할 때는 유닉스나 리눅스 운영체제를 설치하여 실습하는 게 더 좋거나 하는 이유일까요?
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
리틀엔디안 빅엔디안 변환 관련
강사님 추가로 리틀엔디안 > 빅엔디안 변환 과정에서 궁금한 점이 있습니다!오톱시교재 기준 예시로 99페이지를 보면, '섹터당 용량'의 리틀엔디안 00 02는 빅엔디안 200(십진수 512)으로 변환하셨고,'총 섹터수'의 리틀엔디안 00 20 02 00은 빅엔디안 03 20 00(십진수 204,800개)로 변환하신 부분을 확인하였습니다.차이점으로 빅엔디안 기준, 마지막 값이 00이냐 0이냐 차이인데, 이에따라 값도 달라지는 것으로 알고 있습니다.어느 상황에서 00, 0 구분하여 사용하는지가 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.persist 오류
저만 em에 빨간불이 들어오는데 왜 이러는걸까요,,
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
강의 3-6 두수의 합(해시) 질문
강의 듣기전에 이렇게 풀어본 코드인데요.Counter로 미리 key,value를 채워두는 것 자체가 데이터최적화도 안되고 접근방법이 조금 엇나갔다는 건 알겠습니다. 그래서 이미 빈도수를 모두 주었기 때문에 (target-i != i)라는 조건이 추가로 생긴 것 같은데, if문에서 저런식으로 두가지 조건을 묶는 방식은 나쁜건가요? 공부를 시작하지 많이 안됐는데 뭔가 저런식으로 조건이 생기면 기분이 찝찝합니다.from collections import Counter def solution(nums,target): answer = [0]*2 nH = Counter(nums); for i in nums: if (target-i in nH) & (target-i != i): answer = sorted([i,target-i]) return answer return answer
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
애니메이션 빌드 오류 질문드립니다.
애니메이션 솔루션 파일을 컴파일 할 때 아래와 같은 오류가 출력됩니다 이유가 궁금합니다.libfbxsdk-md.lib 는 경로와 추가 종속성 까지 처리가 되어있는데도 파일을 열 수 없다고 출력됩니다. error LNK2038: 'RuntimeLibrary'에 대해 불일치가 검색되었습니다. 'MTd_StaticDebug' 값이 'MDd_DynamicDebug'(Timer.obj에 위치) 값과 일치하지 않습니다. fatal error LNK1104: 'FBX\releaselibfbxsdk-md.lib' 파일을 열 수 없습니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점 오류
import java.io.*; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static int solution(int[] arr, int K) { int max = 0; Queue<Integer> zeroPoint = new LinkedList<>(); int lp = 0, length = 0; for (int rp = 0; rp < arr.length; rp++) { if (arr[rp] == 0) { zeroPoint.offer(rp); // 0이 꽉 찼을 경우 if (zeroPoint.size() > K) { length = rp - lp; max = Math.max(length, max); Integer poll = zeroPoint.poll(); lp = poll + 1; } } } return max; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int K = Integer.parseInt(st.nextToken()); int[] arr = new int[N]; StringTokenizer st2 = new StringTokenizer(br.readLine()); for (int i = 0; i < N; i++) { arr[i] = Integer.parseInt(st2.nextToken()); } System.out.print(solution(arr, K)); } } 6. 최대 길이 연속 부분수열파트에서 이 코드가 정답이라고 나옵니다. 테스트 케이스가 부족해서 모든 문제에서 이런 현상이 발생하는건지, 이 문제에만 오류가 있는건지 궁금합니다. 반례 테스트 케이스 : 14 21 1 0 0 1 1 0 1 1 0 0 1 1 1 기댓값 : 7출력값 : 6
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
람다 에러
stack": [ "Error: ", "Something went wrong installing the \"sharp\" module", "", "Cannot find module '../build/Release/sharp-linux-arm64v8.node'"이렇게 에러가 발생했는데 람다에서 함수 생성시 선택사항에 보면아키텍쳐 선택할때 제로초님은 기본적으로 선택되어있는 x86을 선택하셨고 저는 맥북에어 m2를 사용해서 arm64를 선택했는데 이거 때문에 에러가 난걸까요? 그리고 제로초님이 강의 만드실때는 node 18버전이 최신버전이였는데 지금은 20까지 나와서 20으로 했는데 이것도 문제가 될까요?
-
해결됨디지털포렌식 입문자를 위한 디지털포렌식 전문가 2급 실기 시험대비 강의(Encase/Autopsy)
DD파일 생성 문의
안녕하세요 강사님먼저 유익하고 친절한 강의 감사드립니다.다름이 아니고 오톱시교재 180페이지를 보면, 파일시스템 복구를 위한 DD파일 생성 간, 증거USB를 다시 불러와 생성해야된다고 나와있는데,혼자 진행하기로는 기생성된 E0파일로도 DD파일을 생성하는 걸로 확인, 인지하였습니다.따라서, E0파일에서 DD파일을 생성해도 무관한지 문의드립니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
시각화 그래프가 안보여요
안녕하세요. 매출 분석01 - 일/주/월/분기별 매출액 및 주문건수 시각화 하기강의를 들으면서 코드를 실행하는데 그래프가 이러타할 오류없이 나타나지 않아서 글 작성합니다. 각각 라이브러리의 버전은 아래와 같습니다. 쥬피터 파일 내의 [일별 매출 시각화] 에 대한 코드를 실행하는데, 쿼리가 들어간 데이터 프레임까지는 잘 실행이 되는데, 그래프를 그리는 코드를 실행하면 그래프가 나타나지 않습니다. <스크린샷1 - 데이터 프레임은 잘 나타남> <스크린 샷2 - 그래프 그리는 코드 실행시 그래프가 나타나지 않음> <스크린 샷 3 - 그래프 그리는 코드 실행시 그래프가 나타나지 않음> <스크린 샷4 - 키 에러라고 뜨는데 왜 이렇게 나타나는지 잘 모르겠어요. 코드를 따로 바꾸거나 수정하지 않았습니다. > 터미널이 이상해서 그런가하고 전체적으로 다 끄고 다시 켜서 실행해 봤는데도 나타나지 않아서 질문 드립니다.
-
해결됨장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
IgnoreException 동작이 주석의 설명과 좀 다른것같습니다
IgnoreException으로 주석을 삭제하고 실행시켜볼 때 예외를 호출부로 던지는게 아니라 retry를 실행하지 않고 그냥 바로 fallback method를 실행하는데 혹시 제가 실행한 결과가 이상한걸까요? 공식문서상으로도 자세한 설명이 안보이는데 이러한 동작이 맞을까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기울기 절편
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요 회귀계수를 찾을때 기울기와 절편값이 각각 ‘몸무게’ ‘intercept’인줄 어떻게 아시는건가요?
-
해결됨스프링 시큐리티
메인 화면에서 login클릭해서 이동할때 오류
메인 화면에서 로그인 하지 않은상태에서 이동하면 오류가 나는데, 7:25초경 top.html에서 @{/api/login} 이걸로 수정하면 안되는 것 같습니다. 해당경로는 Post방식으로 요청해야 하는 ajax 인증처리 url인데 해당 영상에서 수정하신 경로는 로그인 화면으로 이동해야 하는 Get방식의 요청입니다. 제 생각이 맞을까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
5회 기출유형(작업형2) 오류 질문
라벨 인코딩을 진행해서 결과를 출력하고, 원핫 인코딩으로 변경해서 진행하려는데, 랜덤포레스트 학습 시 아래와 같은 오류가 나는데, 원인을 모르겠습니다. 타입 변환 오류인데, 라벨 인코딩 할땐 안나고 원핫 인코딩 진행 시 오류가 나네요. 뭐가 문제인건지 확인 부탁드립니다.
-
해결됨[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
postman 질문
현재 postman에서 다른 탭들은 정상적으로 값이 나오는데,GET/restaurant만 401에러가 지속적으로 뜹니다. 왜그런걸까요?이건 바로 다음 탭(/{rid})의 화면입니다.
-
미해결스프링 핵심 원리 - 기본편
의존 관계 화살표와 연관 관계 화살표
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 자료로 복습 중에 질문이 있습니다.소프트웨어 공학 책에 있는 화살표를 아래 그림에 적용해 보면MemberServiceImpl에서 MemberService로 향하는 화살표와 MemoryMemberRepository에서 MemberRepository로 향하는 화살표는 '구현 관계'를 나타낸 듯하고, AppConfig에서 MemberServiceImpl과 MemoryMemberRepository를 향하는 화살표는 '의존 관계'를 나타낸 듯하고, MemberServiceImpl에서 MemberRepository를 향하는 화살표는 '연관 관계'를 나타낸 것처럼 보이는데요 연관 관계 화살표로 표현된 MemberServiceImpl에서 MemberRepository로 향하는 관계는 의존 관계라고 봐도 되나요? MemberServiceImpl이 MemberRepository를 의존하고 있으니깐.. 연관 관계 화살표로 표현된 이유가 궁금합니다. 제가 UML 다이어그램을 제대로 공부하진 않았는데 의존 관계 주입에서의 의존 관계와, UML 다이어그램에서의 의존 관계는 조금 다른 건가요?
-
미해결
연장 부탁드립니다..
일이 바빠서 자꾸 시간내야하는데 못했네요 이번에 시간나서 꼭 도전해볼 예정이라 연장 부탁드리겠습니다.