묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
이미지 파일 오류
안녕하세요. 상품 조회할때 이미지가 브라우저에 띄워져야 하는데 왜 안띄워 지는지 잘 모르겠습니다...소스코드는 선생님이 해주신대로 그대로 쳤는데 제가 보기에는 경로설정 문제인거 같은데 왜 안되는지 잘 모르겠네요. java.io.FileNotFoundException: URL [file:C:/Users/Jo/Desktop/Jo/study/file/${imageFile.getStoreFileName()}] cannot be resolved in the file system for checking its content length at org.springframework.core.io.AbstractFileResolvingResource.contentLength(AbstractFileResolvingResource.java:232) ~[spring-core-5.3.9.jar:5.3.9] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:121) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.http.converter.ResourceHttpMessageConverter.getContentLength(ResourceHttpMessageConverter.java:45) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.http.converter.AbstractHttpMessageConverter.addDefaultHeaders(AbstractHttpMessageConverter.java:260) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:211) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:293) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:183) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:124) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.9.jar:5.3.9] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.9.jar:5.3.9] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.50.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.9.jar:5.3.9] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.9.jar:5.3.9] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.50.jar:9.0.50] at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na] 아래 캡처사진은 제가 해당 경로에 저장한 파일들 입니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
깊은 복사
깊은 복사를 위한 코딩 부분에서... _pet = new Pet() 이라고 하면 안되고 _pet = new Pet(*knight._pet) 이라고 해야하는 이유를 모르겠습니다!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실습도중에 생긴 문제. (쉬운거같은데 뭘까요)
강의를 너무 잘 듣고 있습니다! [질문1] 뭔가 쉬운내용 같은데 잘 안되서요. Team 이랑 Member 모두 generatedvalue없이 만들었습니다. Team의 pk값을 바꾸려고 하는데 안바껴서요. member에서 참조하고 있어서 그런가싶은데 어떻게 바꿀수 있나요.? --------------------------------------------------------------------------------------------------------- [질문2(위 내용과 다른질문)] 양방향 연관관계 실습을 위해 Team과 Member클래스 각각 어노테이션 셋팅 다 했습니다. 그리고 Member클래스를 find()해보면 Team객체가 들어있는것도 확인이 됩니다. 반대로 Team클래스를 find()해보면 List<Member> 객체는 들어있지 않습니다. 이것도 jpa가 넣어줄지 알았는데 아니더라요. 이 내용(위 처럼 jpa가 넣어주지 않는게 맞다면)을 강의중에 설명해주셨을거라고 생각하는데 어디서 해주셨는지 찾아봐도 모르겠어서요. 제가 어디서 놓친걸까요?
-
미해결게임 프로그래머 취업 전략 가이드
개발 방향성..
수학과학같은 학문처럼 선수개념이 존재해서 챕터별로 쭉 진행하는 느낌이 아니라 필요한 개념을 퍼즐 맞추듯 찾아가며 공부해야 하니 어떤방식으로 공부를 진행해야할지 모르겠습니다 언리얼 공식문서를 봐도 공식학습동영상을 봐도 여러유튜브 튜토리얼을 봐도 다 파편적으로 해당기능들 만드는 방법을 단편적으로 설명합니다. 물론 당연히 게임장르가 바뀌더라도 기본적인 기능들이 바뀌지않으니 기본적인 것들을 다 알아야겠지만 실제 제가 게임을 만들고자할때 맵만드는법부터 알아야할지? UI부터 만들어야할지? 등등 여러 강좌나 문서들이 다 파편적인 지식들이라 어떤 방식으로 게임을 개발해나갈지 조금 고민입니다. 강의만 수동적으로 들어서 그냥 따라하는거밖에 안되고 잘 와닫지가 않아 저는 강좌들으면서 실제로 제가 만들 게임에 적용해보고 게임을 완성시키고자하는데 어떻게 진행하는게 좋을까요?
-
해결됨야곰의 iOS 프로그래밍
9번 프로젝트 자료 질문
section9_files 폴더 안에 pdf파일과 code_block 파일 뿐입니다. 에셋 자료가 확인이 안되는 것 같습니다.
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
키워드 별 빈도수 구하기
안녕하세요 선생님 # facilities 리스트에 있는 값으로 for문을 활용해 컬럼을 만듭니다. # 해당단어가 포함되면 df의 새로운 열(해당단어명)에 True로 표시되도록 아니면 False로 값이 표현되도록 합니다. facilities = ["화장실", "주차장", "음수대", "파고라", "정자", "벤치", "의자", "놀이터", "축구장", "야영장", "CCTV"] for f in facilities : df[f] = df_fac["공원보유시설(편익시설)"].str.contains(f) 해당 코드에서 df_fac과 df의 행 개수가 맞지 않는데 어떻게 df에 데이터를 입력할 수 있나요?
-
해결됨Spring Boot JWT Tutorial
signup에 실패했을때 처리방법 질문입니다!
지금 코드에선 이미 가입되어있는 유저가 signup을 하면 RuntimeException을 던지고, 응답으로 500을 받게됩니다. 이미 가입되어 있는 유저라면 status code 400과 "이미 가입되어있는 유저입니다" msg를 반환하고 싶은데, UserService.java의 singup method return 값을 boolean으로 해서 UserController에서 boolean값에 따라 response msg를 처리하는게 나을까요? 다른 좋은 방법이 있는지 궁금합니다! 감사합니다:)
-
미해결뉴욕 프로덕트 디자이너가 알려주는, 입문자를 위한 UX디자인 개론
출시 전 테스트에서 로우파이나 미드파이 단계에서 테스틀할 사용자는 누구인가요?
안녕하세요 로우파이나 미드파이 단계에서 사용자 경험을 테스트한다고 하셨는데 어떤 사용자를 말씀하신건지 궁금합니다 로우파이나 미드파이 단계에서는 완전한 프로덕트를 만든 상태가 아니기 때문에 프로덕트를 직접 사용하는 소비자들이 아닐거 같다는 예상에 다른 사용자가 있는지 궁금해서 물어봅니다..ㅎㅎ
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
고급편집기 에러 : Comma 토큰이 필요합니다
파워쿼리 고급 편집기에서 계속 에러가 뜨는데 원인을 모르겠습니다. 맨 첫줄에 let InfoCountry = (Country)를 작성한 이후 계속 'Comma 토큰이 필요합니다'라는 에러가 발생합니다. 원인이 무엇일까요? 이미지는 아래에 있습니다. (참고로 억지로 쿼리로 불러올 경우 아래 같은 오류 문구가 다시 노출됩니다)
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
(최적의 데이터 조합 찾기_실무) 예제3 질문입니다
안녕하세요? 최적의 데이터 조합 찾기_실무 강의에서 문제 관련 질문이 있습니다. 문제는 예제 3입니다. 1. 문제에는 '모든 임직원이 1주일에 5일을 연속으로 근무하고 2일은 쉰다' 및 '총 근무자수 : 32'라는 정보가 포함되어 있습니다. 위 정보들은 해 찾기 제한 조건에는 포함되지 않아도 괜찮을까요?! 2. 가상 분석에서 제한 조건과 목표값 외에 다른 수치 정보들이 있는데요! (예제 3의 경우 일 ~ 토까지 표시된 0,1 숫자, 총 근무자수, 1인당 급여 (일당) 등) 이 정보들을 엑셀에서 알아서 고려해서 목표값을 찾는다고 이해하면 될까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
안녕하세요 git 질문있습니다.
안녕하세요 강의 시작에 앞서 단계마다 깃허브에 커밋하고싶어서 시도하던 중 막히는 부분이 있어 질문드립니다. 혹시 깃허브에 대한 질문도 가능하신지 모르겠습니다^^; Server폴더 밑으로는 파일을 추가하거나 수정해도 깃허브에서는 변동사항을 감지 못하는거 같은데 이런 문제는 어떻게 해결하면 좋을까요?
-
미해결파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)
파이게임이 실행은 되는데....
파이게임이 실행되긴 하는데 screen width가 자동완성도 안되고 오류가 나요ㅠㅠ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
테스트 파트의 user.test.js 오류가 나는데 도저히 이유를 모르겠습니다.
jest.mock("../models/user"); // require을 통해 가지고 오는 객체들을 jest.mock으로 복사한다. const User = require("../models/user"); const {addFollowing} = require("./user"); describe("addFollowing", ()=>{ const req = { user : {id : 1}, params : {id : 2}, }; const res = { status : jest.fn(()=>res), send : jest.fn(), }; const next = jest.fn(); const console = { error : jest.fn(), }; test("사용자를 찾아 팔로잉을 추가하고 success를 응답해야 함", async()=>{ User.findOne.mockReturnValue(Promise.resolve({ addFollowing(id) { return Promise.resolve(true); } })); await addFollowing(req,res,next); expect(res.send).toBeCalledWith('success'); }); test("사용자를 못 찾으면 res.status(404).send(no user)를 호출해야 함", async ()=>{ User.findOne.mockReturnValue(Promise.resolve(null)); await addFollowing(req.res,next); expect(res.status).toBeCalledWith(404); expect(res.send).toBeCalledWith('no user'); }); test("DB에서 에러가 발생하면 next(error) 호출한다.", async()=>{ const err = "테스트용 에러"; User.findOne.mockReturnValue(Promise.reject(err)); await addFollowing(req,res,next); expect(console.error).toBeCalledWith(err); expect(next).toBeCalledWith(err); }); } 위의 코드는 user.test.js 코드입니다. user.js 코드는 깃헙에 올려주신 코드를 복사했습니다. console.error()를 테스트 하기 위해 가짜객체도 만들었습니다. test("사용자를 못 찾으면 res.status(404).send(no user)를 호출해야 함" 이 부분에서 Promise.resolve(null)을 했는데 테스트가 왜 try{} 부분이 아니라 catch{} 부분으로 가는 걸까요?? catch{} 부분에서 console.error(err) 부분도 처리가 안되고 , next(err) 부분도 테스트가 안됩니다. next(err)에서 next가 함수가 아니라고 타입 에러가 뜨는데 왜일까요? 콘솔창의 출력은 다음과 같습니다. 혹시나 하는 마음에 user.js 코드도 아래에 올리겠습니다. const User = require('../models/user'); exports.addFollowing = async (req, res, next) => { try { const user = await User.findOne({ where: { id: req.user.id } }); if (user) { await user.addFollowing(parseInt(req.params.id, 10)); res.send('success'); } else { res.status(404).send('no user'); } } catch (err) { console.error(err); next(err); } }; ㅎㅎㅎ ㅎㅎㅎ
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
질문이요!
반응형으로 만들땐 display:none 시키고 원래 사이즈에서는 display:flex;를 시키고 싶은데 제이쿼리로 슬라이드 토글을 이용 했더니 element.style로 display:none이 되서 전체 사이즈일때는 메뉴가 안보여요 ㅠㅠ 혹시 보이게 하는 방법이 있을 까요?ㅠㅠ
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
게시글 삭제 후 리렌더링 문제
게시글 삭제 직후 db에서는 바로 삭제가 되는데 브라우저에서 redux devtools로 state를 보면 mainPosts에 반영이 안되어있어요. 새로고침을 해야만 게시글이 사라져요. 어디에 문제가 있는건지 감이 안오네요
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
http://localhost:8080/hello 오류
http://localhost:8080/hello 이 부분 다른 분들도 오류 나는 것 같은데 답변들 다 확인해보아도 답을 못 찾겠습니다 콘솔에는 에러 메세지도 없고 패키지 위치는 선생님과 똑같은거 같은데 해결을 할 수가 없습니다ㅜ 자바 버전이나 인텔리제이 에듀인게 오류 원인일까요?
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
바벨 없이 require 로 다 바꿔도 오류가 떠요
안녕하세요 제가 바벨없이 사용하면서 import- > require 로 다 변환하고 exports 로 다 변환을 했습니다. 하지만 여전히 이렇게 /Users/ssong/0818/blog/node_modules/express/lib/router/index.js:458 throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn)) ^ 오류가뜹니다. 도와주실 수 있을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
라이브러리 배포에 관해서
안녕하세요 제로초님! 제가 antd와 같은 디자인시스템을 만들고 싶어서 연구중인데요. 컴포넌트를 여러개 만들고 배포를 하는데 ejs 와 cjs 로 빌드를 떠서 배포를 하는데 antd의 경우 package.json에 module: ejs/index.js 를 지정해주고 main: lib/index.js 이런식으로 지정을 해두었더라구요. 그래서 생긴 궁금증은 작업중인 프로젝트의 상황에 맞춰 만약 작업중인 프로젝트가 ejs로 동작하면 해당 모듈을 임포트 할때 해당 모듈의 ejs를 참조해서 가져오고 만약 현재 작업중인 프로젝트가 commonJS로 동작하면 필요한 모듈의 cjs를 참조하는건가요? 이처럼 자동으로 감지해서 가져오는지 궁금합니다. 추가로 궁금한것은 제가 ejs로만 배포를 해서 CRA 프로젝트와 CRN 프로젝트 모두에서 임포트시켜서 사용하려니깐 CRA에서는 문제가 없었는데 CRN으로 생성한 프로젝트에서는 Unexpected token 'export' 에러와 Cannot use import statement outside a module 에러가 발생했습니다. 무엇이 원인일까요??
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
선생님 apply 함수에 대해서 질문있습니다!!
선생님 강의 너무너무 잘듣고 있습니다. 항상감사드립니다 꾸벅 ---------------------------------------------------------- 1) 안녕하세요. 질문주신 내용은 apply를 사용해야 하는데 파이썬 함수와 판다스 기능이 섞여서 혼란이 있으셨을거 같아요. 판다스에서는 함수를 시리즈나 데이터프레임에 적용해 줄 때 apply를 사용합니다. 시리즈는 map을 사용할 수도 있습니다. 또 문자열에 쓰는 split을 판다스의 시리즈와 데이터프레임에 적용하려면 string accessor라는 것을 사용해야 합니다. ------------------------------------------ 선생님 저번에 df_first_melt["연도"] = df_first_melt["기간"].apply(parse_year) 이부분을 함수식으로 적용해서 년,월을 구분할려고 했는데 데이터프레임에 함수를 적용시켜줄때 apply 함수를 이용 해야한다고 하셨잖아요? 그런데 타이타닉 문제를 풀다가 함수에 함수식을 적용한 부분이있는것 같아서 질문드립니다 !! 요 부분이 요즘 너무 헷갈려요 ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp, 타임리프 동적 vs 정적
안녕하세요 중요한 부분은 아니지만 면접 등에서 용어를 좀 더 정확히 사용하고 싶어서 질문드립니다. jsp, 타임리프는 동적? 정적? 인 html을 생성. 하는 것에서 헷갈리네요 의미적으로는 정적인데, 기능적으로는 동적인 것 같기도 해서요. 다름이 아니라 pdf 45쪽의 그림에서는 동적으로 html을 생성한다고 되어있고, pdf 49쪽에는 정적인 화면에 사용한다고 되어있어서요!! 항상 친절한 답변 감사드립니다.