월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
라이브러리 추가하는 법은 어디서 알 수 있나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. gradle 추가 하실 때 4줄이나 추가 하시더라구요.//JSP 추가 시작 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'jakarta.servlet:jakarta.servlet-api' implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //JSP 추가 끝 이렇게 추가해야 한다는 건 어디서 알 수 있나요? jakarta홈페이지를 봐도 영 알 수 가 없어서...MVNRepository에서 찾아도 한 줄 만 추가하는 거 밖에는 안 보이더라구요.
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
[HTTP 요청 데이터 - API 메시지 바디 - JSON] 강의 진행 중, logging.level.org.apache.coyote.http11=debug 를 입력하면 EOFException 발생 합니다
안녕하세요. 현재 섹션 2 - HTTP 요청 데이터 - API 메시지 바디 - JSON 강의를 듣고있습니다. postman을 실행하여{"username":"hello","age":20} 를 보낼 때,properties의 logging.level.org.apache.coyote.http11=debug의 여부에 따라 EOFException이 뜨거나 안뜨는 현상이 발생합니다! 그 이유와 해결방법이 궁금해서 질문 드립니다 !!! properties 에 logging.level.org.apache.coyote.http11=debug 를 입력하지 않았을 경우에는 아래처럼 정상 실행됩니다. 하지만 logging.level.org.apache.coyote.http11=debug 를 입력한 상태로, postman을 실행하면 오류가 뜹니다. 이유가 뭘까요 ?? ㅠㅠ 해결방법도 궁금합니다!
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
URL 링크 표현식 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]CSS의 경우 th:href="@{/css/bootstrap.min.css}"이고다른 경우에는 th:href="@{/basic/items/add}"처럼 되어있습니다. 궁금한 점은 css는 static상위 폴더에 basic은 templates 상위 폴더에 위치하는데 이를 구분하는 것이 url에 명시가 되어있지 않은데 어떻게 구분이 되는 걸까요??
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러에서 뷰템플릿을 반환해서 응답하는 경우에 메소드의 반환값이 void일떄
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.응답 -정적리소스,뷰템플릿 강의에서 궁금한것있습니다.컨트롤러에서 뷰 템플릿을 응답으로 반환하는경우를 학습중인데요.강의에 설명에서는 Void를 반환하는경우에 @Controller를 사용하고 HttpServletResponse,OutputStream(Writer) 같은 HTTP 메시지 바디를 처리하는 파라미터가 없으면 요청 URL을 참고해서 논리 뷰 이름으로 사용한다. 라고 되어 있는데요. 그러면 메서드 매개변수에 위 2개의 파라미터(HttpServletResponse,OutputStream(Writer))가 들어가있을경우에는 정상적으로 반환되어야 하지 않는것이 맞는것인가요? 두개의 파라매터를 메서드 매개변수에 적용하여 실행해봐도 정상적으로 동작하기에 질문드립니다. 아래는 해당 코드 입니다.//너무 불명확해서 추천하지 않는방식 //컨트롤러를 사용하고 httpServlerResponse 나 ,outputStream 같은 HTTP 메시지 바디를 처리하는 //파라메터가 없으면 요청 URL을 참고해서 논리뷰의 이름으로 사용 @RequestMapping("/response/hello") //반환할 정적 리소스의 경로랑 맵핑이 같을경우 return 값이 없어도 된다. public void responseViewV3(Model model, HttpServletResponse response) throws IOException { response.getWriter().write("ok"); model.addAttribute("data","hello!"); }
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HTTP API 다양한 시스템 연동 파트에서 접점이 2개라고 하셨는데
UI 클라이언트 접점이 클라이언트 서버 아키텍처처럼 UI와 클라이언트 이렇게해서 접점이 2개라는 건가요??헷갈려서 질문드립니다!
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller와 @RequestMapping에 대한 이해
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@Controller과 @RequestMapping에 대하여 강의도 몇 번 계속 듣고 혼자서 계속 고민한 결과 이해가 잘 안 되어서 저만의 방식으로 이런 식으로 이해하려는데 이렇게 이해해도 될지 궁금해서 질문드립니다 ! 결국 스프링 MVC는 다형성에 의해서 프레임워크가 구현되어있으므로 다형성 개념을 @Controller과 @RequestMapping에 다음과 같이 도입하고자 합니다. RequestMappingHandlerMapping 클래스가 @Controller가 붙은 클래스 전체를 매핑 정보로 매핑하는데 사용자 요청에 따라 DispatcherServlet의 getHandler()에서 @Controller이 붙은 클래스 객체가 반환되는데 요청 url에 따라 @Controller이 붙은 클래스 객체 내부의 @RequestMapping 메서드 중 하나가 반환되니즉 "@Controller 컨트롤러"를 인터페이스로 인정하고 "@RequestMapping 메서드"를 그 인터페이스를 구현한 구현체로 인정 후 DispatcherServlet에서 getHandler()을 하면 컨트롤러가 반환되어야하지만 다형성에 의해서 컨트롤러에 구현된 메서드가 반환이 되는 것이라고 이해해도 되는지 여쭤보고 싶습니다!
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller에서 호출된 메서드의 매개변수가 다다른데 내부적으로 어떻게 호출하는지.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링 MVC -1편 스프링MVC-컨트롤러 통합 강의를 시청중에 궁금증이 생겨서 질문드립니다. 어노테이션을 이용해서 컨트롤러를 매핑하면 해당 컨트롤러가 스프링빈에 등록되고 Spring mvc의 컨트롤러로 인식되어서 HandlerMapping과 HandlerAdapter를 통해서 처리되는것은 이해하였는데요.이해하기론 컨트롤러에 정의 하는 메소드는 개발자가 정의 하는 부분이고 메소드를 실행하는것은 프레임워크가 처리하는것인데요. 메소드마다 매개변수가 상이한데 프레임워크는 해당 메소드의 매개변수를 어떤식으로 넣어주는것인가요? 예를들어 @RequestMapping("/1")public ModelAndView process1(){//생략} @RequestMapping("/1")public ModelAndView process2(HttpServletRequest request, HttpServletResponse response) {생략 }이런식의 두개의 Mapping 메소드?가 있을경우에 이를 실행하는것은 개발자가 컨트롤하는것이 아닌 프레임워크가 컨트롤하는것인데요. 내부적으로 어떤식으로 판단해서 매개변수가 있는 메소드에 값을 넣어주는지 궁금합니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
FrontControllerServletV5의 mv.getModel()에 대해서 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. MemberFormControllerV3을 사용했을 때는 mv.getModel()이 비어있는 상태가 맞나요??2. view.render(mv.getModel(), request, response);에서 mv.getModel()은 빈 상태로 넘어가는 건가요?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestMapping에 대하여
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1. 스프링 부트를 구동시켜서 톰캣 서버가 띄워지면 HandlerMapping 인터페이스가 애플리케이션 내에 존재하는 핸들러 매핑을 시도하는데 우선적으로 HandlerMapping 인터페이스의 구현체인 RequestMappingHandlerMapping 클래스가 @RequestMapping 어노테이션이 지정된 핸들러를 매핑해서 사용자가 해당 어노테이션으로 지정된 핸들러 중 하나를 요청할 경우 해당 핸들러가 반환되고해당 핸들러에 대한 어댑터를 연결하고 호출하는데 필요한 구현체가 RequestMappingHandlerAdapter 로 이해했는데 맞을까요? 1번의 내용이 맞다면 @RequestMapping을 컨트롤러에 지정할 경우 해당 컨트롤러가 매핑 정보로 활용이 되는데 한 컨트롤러 내에 여러 메서드에 @RequestMapping을 지정할 경우 그 메서드들이 전부 컨트롤러가 되는 것인가요? 그렇다면 메서드들을 정의하고 있는 클래스도 컨트롤러인데 어떤 차이가 있는 건지 궁금합니다 ! 그리고 추가로 컨트롤러는 클래스로 알고있는데 어떻게 메서드 레벨에 @RequestMapping을 지정할 수 있는지도 궁금합니다..
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
메시지 컨버터 질문
만약 요청이 String 타입이고, 응답도 String 타입을 원한다면, 내부적으로 메시지 컨버터가 할일이 없는건가요?이 경우에도 메시지 컨버터가 작동되는지 궁금합니다.(결과적으로 메시지 컨버터 작동 x, 뷰 리졸버 작동 x)
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller, @RequestMapping 질문
@Controller @RequestMapping("basic/items") @RequiredArgsConstructor public class BasicItemController { private ItemRepository itemRepository; @GetMapping public String items(){ return "basic/items"; } }강의를 다 수강하고 혼자서 처음부터 만들어보고자 개발하고 있는데 오류가 발생해서 질문드립니다.여기서 @RequestMapping 대신에 @Controller("basic/items")를 넣어주니 localhost:8080으로 접속시 기존에 웰컴 페이지인 index.html로 접속하지 않고 바로 items.html을 화면에 보여주는 오류가 발생합니다. 뭐가 문제일까요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC - 웹 페이지 만들기에서 상품 상세강의 중에 질문
코드는 차이점은 포트를 8081로 바꾼 점 밖에 없는 데에서 id와 상품명을 눌러서 이동할 때 ERROR 15300 --- [nio-8081-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.] with root cause오류가 났습니다 해결은 여기 설정을 다시 gradle로 바꾸니까 해결은 됬는데 어째서 문제가 생겼던건가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
리다이렉트를 하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 상품 내용 수정 폼에서 저장을 해줄 때 리다이렉트를 하는 이유가 무엇인지 궁금합니다. 전에 했던 방식으로 뷰를 반환하면 안되는 것인가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ModelAttribute 어노테이션에 대한 질문이요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@ModelAttribute 어노테이션을 쓸 때, 해당 객체를 부르는 클래스 타입 위에 @Data 어노테이션을 사용하셨어요.근데 @Data 어노테이션 안에 @RequiredArgsContstructor라는 어노테이션이 있는데제가 보니까 @RequiredArgsContstructor는 멤버 변수의 접근제어자가 private이며 final이 붙은 애들에 대한 생성자를 자동으로 만들어준다. 라고 하거든요 근데 HelloData 클래스 안의 멤버 변수 (필드값)은 private이길래 @RequiredArgsContstructor 대신 @AllArgContstructor 어노테이션과 @Getter, @Setter 어노테이션만 사용해서 @ModelAttribute 어노테이션을 통해 요청하는 값에 대해 바인딩을 하려고 했는데, 바인딩이 안되는 오류가 발생해서 왜 이런 오류가 발생하는지 잘 모르겠습니다. 꼭 @RequiredArgsConstructor를 써야하는 이유에 대해서도 궁금하고, @AllArgConstructor는 왜 안되는지 궁금합니다.
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트코드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의 듣기 전에 혼자서 update 테스트 코드를 짜봤는데 오류가 나더라고요. 어느 부분이 잘못된건지 알 수 있을까요?void updateItem(){ //given Item item1=new Item("itemA",10000,10); itemRepository.save(item1); //when Item item2=new Item("itemB",20000,12); itemRepository.update(item1.getId(),item2); //then Item updateItem=itemRepository.findById(item2.getId()); assertThat(updateItem.getItemName()).isEqualTo("itemB"); assertThat(updateItem.getPrice()).isEqualTo(20000); assertThat(updateItem.getQuantity()).isEqualTo(12); }
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
DispatcherServlet의 서블릿 등록 방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]선생님께서 DispatcherServlet은 스프링 부트 실행 후 톰캣 서버가 띄워지면서 자동으로 DispatcherServlet이 서블릿으로 등록된다고 말씀해주셨는데, 자동으로 서블릿으로 등록하려면 @ServletComponentScan 어노테이션이 필요한 것 아닌가요? 그런데 스프링 부트 애플리케이션 처음 생성한 후 최상위 Application 클래스의 어노테이션은 @SpringBootApplication만 존재하고 @ServletComponentScan은 제가 임의로 만들어줘서 생성된 것인데 어떻게 스프링 부트의 톰캣 서버가 DispatcherServlet을 자동으로 서블릿으로 등록해주는지 궁금합니다
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
제가 이해한것이 맞는지 궁금합니다
안년하세요웹 서비스 구조에사웹 서버 웹컨테이너 와스와자바에서는 웹서비스 구조가 제가 그린것이 맞는지 긍금합니다 2. 그러면 was와 jvm 순서가 어떻게되나요? Jvm은 코드를 실행하은것이므로Was -> jvm인가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ModelView 객체 여러개 생성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]MemberSaveControllerV3와 MemberListControllerV3에서 process 메서드가 실행될 때마다 새로운 ModelView객체를 생성하는데, 해당 컨트롤러로 들어오는 url은 같으므로 이를 싱글톤으로 만들면 메모리 관점에서 더 좋은것 아닌가요? 이를 따로 고려하시지 않은건지 아니면 다른 이유가 있는지 궁금합니다!
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ModelAttribute에 대해서 궁금한점이 있습니다.
@GetMapping("/nonModelAttribute") public void getList(Page page) { } @GetMapping("/modelAttribute") public void getList(Model model,@ModelAttribute Page page) { }@Slf4j @Component public class PageArgumentResolver implements HandlerMethodArgumentResolver{ @Override public boolean supportsParameter(MethodParameter parameter) { // TODO Auto-generated method stub return parameter.getParameterType().equals(Page.class); } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { return null; } } 강의에서 위 두개가 같다고 하셨는데 위의 /nonModelAttribute의 요청의 경우 Page 객체의 경우에는 Argument에서 객체를 만들지않으면 아예 null이 들어오기때문에 ArgumentResolver를 통해서 객체가 생성이 된다는것을 알수있는데 /modelAttribute의 경우에는 해당 부분에서 객체를 생성하지않아도 객체가 생성이 되던데 두개의 차이점이 있는건가요?? 그리고 만약에 차이가 있다면 ModelAttribute의 객체는 어디서 생성이 되는건가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
405오류
8080/hello로 가면 왜 405오류가 나는건가요?