월 16,940원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
base.html 추가link
base.html 파일에서 <!--추가--> 부분에서알려주셨던 내장 태그<th:block> 태그 대신 일반태그 link 태그를 넣어도 정상작동하는것을 확인했습니다. 둘중 아무거나 사용해도 무방한가요?
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
제가 이해한내용이 맞나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@ModelAttribute의 경우에는 잘못된 타입입력으로인해 바인딩 자체가 안되더라도 BindingResult에 담기고 Controller가 호출되는반면 @RequestBody의 경우에는 바인딩자체가 호출이 안될때에는Controller자체가 호출이 안된다라고 이해하면될까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
form Import
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]java.lang.IllegalArgumentException: Name for argument of type [long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.이렇게 오류 떠서@GetMapping("/{itemId}/edit") public String editForm(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "form/editForm"; }위 부분을@GetMapping("/{itemId}/edit") public String editForm(@PathVariable(name="itemId") Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "form/editForm"; }이렇게 @PathVariable(name="itemId") 속성을 모든 메소드에 적용 했더니 정상 동작합니다.다만 어떤 설정을 해야 기존 코드 기대로 동작하는지 정말 궁금하네요 기존처럼 네임속성 안주고 하려면 따로 설정해야하는게 어떤걸까요?
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리하기 - 세션 동작 방식 파트 질문입니다.
중요한 정보는 모두 서버에 저장해야 한다고 써있는데, 만약 서버가 털리게 된다면 이 정보가 모두 노출될 텐데, 서버가 털리는 것은 어떻게 예방할 수 있나요? 예시 몇 가지만 들어주시면 감사하겠습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
localhost에서 화면이 깨집니다.
수업을 듣고 혼자서 만들어 보는 중입니다 ㅠㅠ https://drive.google.com/file/d/1xmnERIQk89uE6iP8skTuS2jElKDXfPqp/view?usp=sharing드라이브에 올린 제 파일입니다. save.html 파일이 절대경로로 브라우저에서 열면 문제 없이 열리는데 localhost:8080/member/save 로열면 화면이 깨집니다. css 경로도 정확한 거 같은데 왜 이러는걸까요 ㅠㅠ<link href="css/styles.css" rel="stylesheet" /><link href="../templates/css/styles.css" rel="stylesheet" /><link href="./css/styles.css" rel="stylesheet" />다 해봤습니다!! index.html을 제대로 잘 열립니다!! (index파일의 css를 복사해서 약간 수정 후 이름만 다르게 저장한게 save.css입니다)
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
영상처럼 한번에 국제화 보고 수정하는 방법
질문은 아니고 저처럼 다른 분들도 찾을까봐 남깁니다이렇게 보시는 부분이 있는데저도 저렇게 보고싶어서 찾아보니플러그인에서 검색으로 Resource bundle edit 이 플러그인을 설치하면 되더라구요
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
교재 오타 있는거 같아요
18 pageeditForm.html - 추가여기에 <input> 여기에 th:field="${regions}" 이 부분이 th:field="*{regions}" 이거 아닌가요? 오류 엄청 나길래 한참 봤는데 이렇게 고치니까 오류 안 나는데 .. 제가 틀린 건가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
defaultException @ReqeustParam 속성 - springboot 버전 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]@GetMapping(“/api/default-handler-ex”) public String defaultException(@RequestParam Integer data) { return “ok”;}위 코드로 테스트해보면Name for argument of type [java.lang.Integer] not specified, and parameter name information not found in class file either.에러가 발생합니다. 구글링해보니 스프링 부트 3.2버전 이상부터는 @RequestParam(name = ) 을 필수로 적용해줘야 한다고 해서 적용해줘 테스트 진행했습니다. 또 구글링해보니 name과 같은 속성을 생략한 코드를 적용하고 싶으면 compile 방식을 intellij에서 gradle로 변경하면 된다하여gradle로 변경해 강의코드로 테스트 잘 되는것 확인했습니다. gradle과 intellij를 비교해보니 build 방식과 기동 시간의차이가 있어 보이는데 이 외에는 상관 없는지 궁금해 여쭤봅니다!!
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BindingResult 메시지 처리에 대해서 질문있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]errors.properties의 {0}, {1} 등에 숫자가 들어간 형태로 출력되는 것 같은데 숫자 출력 포맷이 기본적으로 #,###인가요?따로 어떠한 작업 없이 숫자만 들어간 것 같은데 아래처럼 #,###로 숫자가 출력이 되길래 궁금해서 질문드립니다.만약 그렇다면 숫자 구분자 없이 기본 형태로 숫자를 출력하고 싶으면 어떻게 해야하나요아래는 addItemV3를 만든 후 출력된 결과입니다
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터와 인터셉트 & afterCompletion()에 대해서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1.필터와 인터셉트의 선능차이 관련 로그인 체크해서, 로그인 페이지로 날려버리는 기능을 추가할때필터의 경우는 디스패치서블릿 이전에 실행되고, 차단할 수 있으니까 인터셉터보다는 서버 비용을 조금이라도 더 절감할 수 있는건가요?? 아니면 그냥 무시할정도의 미비한차이니까 인터셉터를 사용하든 상관 없나요? afterCompletion()로 로그처리 afterCompletion의 경우는 핸들러에서 예외가 발생할때에도 실행이 되니까, 모~든 핸들러의 예외를 로그 메세지로 관리하고 싶은 경우에는 "/*"로 필터를 걸고 afterCompletion에 예외관련된 로그 메세지를 출력되게 하면 되나요?실무에서도 이런식으로, 시스템 전체의 예외 메세지를 남기기위해서 사용하나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver 안에서 sendError가 호출된 경우 흐름 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]예를 들어 클라이언트가 잘못된 형식의 값을 입력하면 클라이언트의 잘못이지만 서버 내에서 발생한 오류이기 때문에 500오류가 나고 이를 400번대 오류로 처리하기 위해서 HandlerExceptionResolver 내에서 sendError(400, 오류 메세지)를 호출하여 400번대 오류로 설정한다고 하셨잖아요 그런데 이러면 와스가 sendError가 호출된 것을 보고 다시 재요청을 하지 않나요? HandlerExceptionResolver가 예외를 해결하면서 정상 처리로 만들어 추가 프로세스가 실행되지 않게 한다고 해서 잘 이해가 가지 않습니다. sendError로 오류 코드를 설정하고 모델앤뷰를 반환하면서 오류 페이지 렌더링이 되고 와스는 재요청을 하지 않는게 HandlerExceptionResolver의 올바른 흐름인가요
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ExceptionHandler와 @ResponseStatus 같이 쓰는 경우 API예외처리과정
https://www.inflearn.com/questions/361278/exceptionhandler-%EC%A7%88%EB%AC%B8이 질문에서" @ResponseStatus는 내부적으로 response.sendError(statusCode, resolvedReason); 를 통해 response 내부에 오류가 발생했었음을 상태로 저장하게 됩니다.(이전 강의에서 알려주셨던 내용) "보고 의문이 들어 아래코드를 디버깅을 하고 정리했습니다.ApiResponse를 제가 니즈에 맞게 만든 JSON 형식이라 가정하시면 됩니다. @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(BindException.class) public ApiResponse<Object> bindException(BindException e) { return ApiResponse.of( HttpStatus.BAD_REQUEST, e.getBindingResult().getAllErrors().get(0).getDefaultMessage(), null ); }@ExceptionHandler을 사용하여 API예외처리 진행과정요청의 Accept 헤더가 "*/*", "application/json"인경우(1) 컨트롤러에서 예외발생(2) 이 응답값을 @ExceptionHandler을 사용하여 프로젝트의 니즈에 맞게 변경예로들어 상품에서 일어나는 오류, 회원가입에 일어나는 오류에 맞게 변경return값을 ResponseEntity로 해주거나 클래스에 @RestControllerAdvice를 이용이 부분이 궁금한점인데(Q1) API 오류 처리 이므로 @ResponseStatus에 의해 에러 코드만 변경 되고(500 -> 400) 반환값인 ApiResponse를 DispatchServlet에서 처리하여 클라이언트에게 전달해준다고 생각이 들었습니다. (Q2) 만약 API 오류 처리가 아닌 오류 화면(HTML 오류 처리)이었더라면 (@ExceptionHandler 사용 안하고)-> 컨트롤러에서 예외발생-> @ResponseStatus를 사용하여 에러 코드만 변경되고 error정보가 WAS(HttpServlet)까지 전달-> 기본 에러 페이지인 "/error"로 재요청-> BasicErrorController.errorHtml() 호출-> response.setStatus(getStatus(request).value())(=response.sendError()) 발생-> ModelAndView 리턴을 하는 게 아닌가요? (Q3) @ResponseStatus가 response.sendError()를 발생하는 게 아니라 에러 코드만 변경해주고 이를 바탕으로 ExceptionHandler나 BasicErrorController가 처리해 준다고 생각이 듭니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
화이트 리스트 경우 인증체크 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.requestURI와 whitelist에 있는 값이 매칭이 된다면 인증체크를 하고, 매칭되는 값이 없다면 인증체크를 하지않는 함수인거는 이해했습니다.리턴값 코드 이해가 잘 안되는거같아서 질문 남깁니다.위 아래 코드가 같은건가요 ? 강사님이 알려주신 코드는 이해가 잘 안가서 다시한번 짜봤습니다 ㅠㅠprivate boolean isLoginCheckPath(String requestURI){ if(PatternMatchUtils.simpleMatch(whitelist,requestURI)){ return false; } return true; }private boolean isLoginCheckPath(String requestURI){ return !PatternMatchUtils.simpleMatch(whitelist,requestURI);
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HttpServletResponse와 Model의 차이점이 궁금합니다.
'로그인 처리하기 - 쿠키사용' 부분을 듣고 제가 모르는 부분이 있는 것 같아 질문 남깁니다. 쿠키를 생성하고 쿠키를 보낼 때 response.addCookie(idCookie)를 했는데 Model에도 model.addAttribute(idCookie)가 가능한지가 궁금합니다. 만약 가능하다면 어떤것을 쓰는것이 더 좋을지 만약 불가능하다면 불가능한 이유가 궁금합니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오류 발생 시 Postman에서 항상 JSON형식으로 반환됩니다.
error/500.html 을 만들고@RequiredArgsConstructor @Controller public class ProductController { @GetMapping("/api/response") public String responseStatusEx1() { throw new RuntimeException(); } }위와 같이 연습코드를 작성하면 웹페이지에서는 제가만든 500오류페이지가 나오는데 PostMan에서는{ "timestamp": "2023-12-19T03:41:17.680+00:00", "status": 500, "error": "Internal Server Error", "path": "/api/response-status-ex1" }Accept: text/html이면 잘 나오나 Accept: */* 이면 위와같이 항상 Json형식으로 나옵니다. 우선순위가 Json형식이 높아서 그런건지 알려주시면 감사하겠습니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
섹션 2 - 셀렉트 박스 강의 내용에서 발생된`MethodArgumentNotValidException` 를 고치지 못하고 있습니다...
셀렉트 박스를 만들기 위해 강의에서 추가하는 코드를 저도 추가한 후 동일하게 서버를 띄웠지만,2023-12-19T09:06:49.880+09:00 WARN 11452 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public java.lang.String hello.itemservice.web.form.FormItemController.addItem(hello.itemservice.domain.item.Item,org.springframework.web.servlet.mvc.support.RedirectAttributes): [Field error in object 'item' on field 'deliveryCode': rejected value [FAST]; codes [typeMismatch.item.deliveryCode,typeMismatch.deliveryCode,typeMismatch.hello.itemservice.domain.item.DeliveryCode,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [item.deliveryCode,deliveryCode]; arguments []; default message [deliveryCode]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'hello.itemservice.domain.item.DeliveryCode' for property 'deliveryCode'; Cannot convert value of type 'java.lang.String' to required type 'hello.itemservice.domain.item.DeliveryCode' for property 'deliveryCode': no matching editors or conversion strategy found]] ]라고 에러가 뜹니다. 에러 내용대로 고치려면 DeliveryCode 선언할 때 컨버터를 정의해야 하는 것 같은데, 그렇게 코딩한다면 타임리프 기능에서 벗어나는 방식으로 코딩하는 것 같네요..아래는 제 코드에 추가된 내용들입니다.FormController@ModelAttribute("deliveryCodes") public List<DeliveryCode> deliveryCodes() { List<DeliveryCode> deliveryCodes = new ArrayList<>(); deliveryCodes.add(new DeliveryCode("FAST", "빠른 배송")); deliveryCodes.add(new DeliveryCode("NORMAL", "일반 배송")); deliveryCodes.add(new DeliveryCode("SLOW", "느린 배송")); return deliveryCodes; }addForm.html <!-- SELECT --> <div> <div>배송 방식</div> <select th:field="*{deliveryCode}" class="form-select"> <option value="">==배송 방식 선택==</option> <option th:each="deliveryCode : ${deliveryCodes}" th:value="${deliveryCode.code} " th:text="${deliveryCode.displayName}">FAST</option> </select> </div> <hr class="my-4">추가된 코드 외에 다른 곳에서부터 에러가 발생되는 것일 수도 있어 프로젝트도 공유해볼게요.https://drive.google.com/drive/folders/1CrfrMJEdHRJDvrEAMSyDAOr9xLac7I4a?usp=sharing
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 파일업로드에서 오류뜹니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either. v1과 v2에서는 문제가없는데요 /spring/upload에서 제출하면 500에러뜨면서 illegalArgumentexception뜹니다. 어떻게 해결해야할지 모르겠습니다
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
java: cannot access java.nio.file.Path 오류
안녕하세요.강의 잘 듣고 있습니다.제 개인 프로젝트에서 multipartfile을 활용한 파일 업로드 기능을 구현하고 있는데 빌드 과정에서 아래와 같은 오류가 발생합니다.jdk버전은 11버전입니다. 진짜 하루종일 이것저것 다해봤는데 원인을 모르겠어요..file.transferTo() 부분에서 에러가 발생하는데 미치겠습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자바스크립트 파일을 별도로 만들게되는 경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]자바스크립트 파일을 별도로 만들게 되는 경우에는, 자바스크립트 인라인 사용할 수 있는 방법이 없나요? <script type="text/javascript" th:inline="javascript" th:src="@{/javascript.js}"></script>위의 코드처럼, 넣어봤는데 별도의 파일이라 그런지 동적으로 변환되지 않고 그대로 인식되어버리네용😅 자바스크립트 인라인을 사용하기 위해서는, 항상 html파일에 script 태그를 함께 사용해야만하나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@RequestParam (name= ) 설정을 안했을때
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@GetMapping("/hello-v2") public String helloV2(@RequestParam(name = "data") Integer data) { System.out.println("data = " + data); return "ok"; 영상에서는 (name="data")를 안해도 화면이 잘 출력이되는데 저는 (name="data") 이거를 안넣으면 whitelabel이 뜹니다. 뭔가 설정이 잘못된건가요?