묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
기댓값 - 406 Not Acceptable 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요.API 예외 처리 - 시작 강의 8:30 경에서 Postman으로 요청을 보낼때, Accept Header를 application/json 으로 설정하고 보내셨는데, HTML 로 응답이 오면 406 Not Acceptable 오류가 발생해야 할 것으로 기대했는데, 서버 내부에서 처리한 예외 오류가 HTML Page로 그대로 반환된 이유가 궁금하여 질문드리게 되었습니다.감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
view resolve할 때 생성된 View에 대한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]질문 요약:controller에서 viewName을 리턴하고 나서 상황에 대한 궁금증인데요. resolve 후 리턴된 View가 빈인지 빈이면 scope가 어떤지 아니면 단순 개체인지가 궁금합니다. 다음은 제가 문제를 생각하게 된 상황인데요:JSP를 resolve할때 사용하는 InternalResourceViewResolver의 부모인 UrlBasedViewResolver가 있고 resolve한 후 리턴된 View는 스프링 빈이 맞는 것 같은데(UrlBasedViewResolver.applyLifecycleMethods()에서 빈 lifecycle method를 실행하는 것으로 미루어 추측. 실제 applicationContext에 빈 등록하는 코드는 찾지 못했습니다.)그러면 /WEB-INF/file1.jsp /WEB-INF/file2.jsp 두개의 파일이 있고 각각 "file1", "file2"를 리턴하는 controller가 있어서 한 번씩 요청 됐을 때 반환되는 View는 빈인지 빈이면 scope이 어떻게 되는지 궁금합니다.구체적으로:View가 다른이름 싱글턴 빈으로 두개가 생기고 계속 재활용 되는건가요 (가령 file1, file2라는 이름으로 각각 빈이 생기고 BeanNameViewResolver를 써서 재활용 한다든지)아니면 request scoped 빈으로 그때마다 만들어지는건가요아니면 InternalResourceView를 클래스로 갖는 싱글턴 빈 한개만 생기고 resolve 요청 올때마다 setUrl()로 url을 달리해서 넘기는 걸까요(이건 동시성 문제 같은게 있을 것 같습니다)그것도 아니면 반환된 View는 빈이 아닌 단순 개체일까요(빈을 찾아보니 viewResolver나 viewNameTranslator는 있어도 view라고 끝나는 빈이 안 나오긴 했습니다. 스프링 Api doc을 봐도 UrlBasedViewResolver에 보면 createView(), instantiateView(), applyLifecycleMethods() 설명에도 view instance를 반환한다고 만 되어있고 View가 빈이란 언급은 없긴하네요)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName만 오류가 뜨는데 이유를 모르겠습니다..
==============================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른거는 다 잘되는데 findByName만 오류가 뜨는데 이유를 모르겠습니다..
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
'new-form' 404 에러 관련 질문
코드 복사 붙이기도 해보고 재작성도 여러번 했는데서블릿 MVC 회원목록만 계속 오류가 납니다..어떤 점이 문제인지 모르겠습니다..
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
안녕하세요 강의를 듣던중에 카카오 지도 api에서 계속 오류가 발생하여 질문을 드립니다
자바스크립트키는 일치하는거같은데 계속 오류2개가 발생하네요 제아이피주소하고 입력한 아이피주소네요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
configureHandlerExceptionResolvers을쓰면 안되는이유
왜 스프링이 제공하는 ExceptionResolver가 없어지면안되는건가요?없어지면어떻게되는거죠?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
th:onclick 질문
th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})}'|" 을 간결하게 하고 싶어서 th:onclick="|location.href='@{/basic/items/${item.id}}'|"이렇게 해봤는데 400에러가 뜨더라구요 onclick은 간결 표현식이 안되나요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
43강에서 id가 갑자기 사라졌는데요
분명히 성별의 id가 18분 전까지는 있었는데 갑자기 사라져서요 id를 제거해준 이유가 무엇인가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서로 다른 프로젝트의 welcome page
안녕하세요 mvc 2편 코드를 따라하며 프로젝트를 실행시키고 확인하다가,mvc 1편에 특정 부분을 확인하고자 1편에서 썼던 프로젝트를 실행시켰습니다 분명 2편 프로젝트를 실행중지하고, 1편 프로젝트를 실행했는데localhost:8080 을 통해 나온 welcome page가 2편 프로젝트의 index.html 입니다왜 1편 프로젝트의 index.html이 welcome page로 뜨지 않는 것일까요? 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 생성 오류 문의드립니다.
안녕하세요 아래 링크의 문의글과 같은 상황이라 문의드립니다.build 생성 오류 질문드립니다...(윈도우)https://www.inflearn.com/questions/268449/build-%EC%83%9D%EC%84%B1-%EC%98%A4%EB%A5%98-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4-%EC%9C%88%EB%8F%84%EC%9A%B0 인텔리제이에서는 정상적으로 컴파일 되는 상태입니다.인텔리제이를 종료 한 상태에서 CMD를 통해 gradle을 build하면 아래와 같은 오류 메세지가 나오는 상태입니다.댓글에 안내해주신 대로 프로젝트를 새로 생성 후 바로 CMD에서 컴파일을 했는데도 오류 메세지가 동일해서 문의드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링부트 정적파일 관리는 그래들에만 해당되는것이 맞나요?
==============================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스프링 부트에서 정적 파일 관리를 제공하는 것이 그래들, 메이븐 모두에게 해당되는 개념인지 아니면 그래들에만 해당되는 얘기인지 궁금합니다.메이븐 방식일 경우 webapp 하위에 resources와 WEB-INF로 나뉘는데 정적파일이 resources에 저장되는걸로 알고있습니다.스프링프레임워크에서는 뷰리졸버의 prefix가 기본적으로 /WEB-INF/views/ 이렇게 세팅해두고 하는것으로 알고있거든요...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DI 이해도 확인
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 DI를 제대로 이해한 것인지 확인 부탁드려도 될까요?MemberService클래스와 MemberServiceTest클래스의 멤버변수인 MemoryMemberRepository 객체가 다른 객체일 가능성이 있습니다. 각각의 두 클래스에서 굳이 동일한(총 2개) MemoryMemberRepository객체를 만들 필요는 없습니다. 왜냐하면 두 객체가 다른 객체일 가능성도 있고 목적상 다른 객체이어야 할 이유가 전혀 없기 때문입니다. 이러한 문제를 개선하기 위해 DI가 필요합니다. DI를 하는 방법은 다음과 같습니다. MemberService클래스에서 멤버변수에MemoryMemberRepository 객체를 생성하지 않고 참조변수만을 선언합니다. 생성자를 만들어 MemoryMemberRepository 객체를 주입받고 그 객체를 멤버변수 MemoryMemberRepository로서 사용하도록 합니다. MemberServiceTest클래스에서 MemberService 생성자를 사용하여 MemberService 객체를 생성하는데 이 때, 생성자의 인자에 MemoryMemberRepository 객체를 생성해 주입합니다. MemberService클래스에서 생성자를 만들었고 생성자의 인자로 MemoryMemberRepository 객체를 주입받고 그 객체를 멤버변수로 사용하기로 했다는 것을 잊지말아야 합니다. 이것이 핵심입니다. 물론 14분대 강의영상에서는 MemberServiceTest클래스에서 MemberService의 각 메서드들이 테스트되기 전 매번 MemberService 객체가 만들어져야 하므로 beforeEach() 메서드 안에서 구현이 되었을 뿐, DI의 원리는 지금까지 설명한 바와 동일합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
12분대 memberRepository 참조변수 이름 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]MemberService에서 아직 어떤 DB를 사용할지 모르니 참조타입을 MemberRepository로 하고생성자를 MemoryMemberRepository를 한 것은 이해가 갔습니다. 다형성을 위해서 그러신 것이죠.private final MemberRepository memberRepository = new MemoryMemberRepository(); 근데 강의영상 12:00부터의도치 않은 Member객체를 가르킬 수 있으니 MemberServiceTest에서 멤버변수 AfterEach()를 새로 만들어 리포지토리를 지우기 위해 MemoryMemberRepository의 clearStore()를 가져와야 했습니다.그래서 MemberServiceTest 16라인에MemoryMemberRepository memberRepository = new MemoryMemberRepository();이렇게 작성하셨습니다. 근데 제가 생각했을 때 참조타입도 MemoryMemberRepository 이고 생성자도 MemoryMemberRepository인데 어째서 참조변수의 이름은 memberRepository 인건지 궁금합니다. 귀한 시간 내주셔서 제 질문 읽어주셔서 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
request inputStream 로깅 관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]공통처리는 필터보다는 인터셉터를 우선적으로 고려하라고 말씀해 주셨었는데요,모든 요청에 대해 request 의 inputStream 을 이용해 requestBody 로깅을 한다고 했을때 필터와 인터셉트 중 어느것을 사용하는게 더 적절하다고 보시는지 궁금합니다.
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
root-context.xml hikari쪽 문제입니다.
<property name=“jdbcUrl" value="jdbc:mysql://localhost:3306/com?serverTimezone=UTC"/>이 부분의 property name을 발견할 수 없다고빨간 엑스가 떠서요 pom.xml 이나 나머지는 다 pdf 내용대로 진행했는데 이유를 모르겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ExceptionHandler
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]@ExceptionHandler 을 사용해도인터셉터의 postHandle는 실행이 안되는게 맞나요??로그에서는 postHandle을 건너뜁니다@ExceptionHandler을 사용하면 정상 흐름으로 바꿔주는걸로 이해했는데 postHandle을 건너뛰는건 맞는건가요 ??
-
미해결[리액트 1부] 만들고 비교하며 학습하는 리액트 (React)
[순수JS 1] 검색결과 2 reset 버튼 이런식으로 하면 문제되는 점이 있을까요?
안녕하세요 선생님 강의 잘 듣고 많이 배워가고 있는 초보자입니다.저는 searchResultView의 element의 innerHTML을 초기화 해버리는 식으로 풀이를 했었는데요, 혹시 이러면 나중에 문제가 발생할 수 있는 부분이 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
UserHandlerExceptionResolver
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]여기에 질문 내용을 남겨주세요.MyHandlerExceptionResolver 는 에러가 터지면 서블릿 컨테이너까지 가고 또 다시 /error을 요청하고UserHandlerExceptionResolver 이건 그냥 바로 그자리에서 끝내는데그 차이가 response.sendError(...)이 response.SendError 해주냐 안해주냐 차이라고 생각하면 될까요 ?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
왜 findByLoginId는 Optional로 반환하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! MemberRepository 코드 중에 findById는 예전 강의에서 스펙상 Member 객체를 반환하는걸로 권고(?)된다고 들었던 것 같은데, 그렇다면 왜 findByLoginId는 Optional<Member>로 반환하는건가요?Optional이 NullPointerException 발생을 줄이기 위해 래퍼 역할을 한다는 것은 알겠는데, 두 메서드의 반환값 차이가 있는 이유가 무엇인지 궁금합니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
thymeleaf 적용이 안됩니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술상품목록 - 타임리프 진행중에 문제가 생겼습니다.타임리프에 문제가 있는지.. 변수가 안담깁니다.구글링으로 찾아봐서 캐쉬초기화도 해봤고"http://www.thymeleaf.org" 를 http://thymeleaf.org 로 변경도 해봤지만 경고문만 사라지고 해결되지 않았습니다.근데 여기서 이상한건th:onclick="|location.href='@{/basic/items/add}'|" 이 타임리프 문장은 작동이 되는것 같아요저 코드대로 /basic/items/add 경로로 이동이 됩니다.자바코드에 문제가 있나 확인도 해봤지만 문제점을 찾지 못했습니다 확인해야할게 더 있으면 알려주시면 감사하겠습니다...