월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
국제화 null 기준
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 질문이기보다는 발견한거 찾아낸거라..혹시 컴퓨터 기본 언어가 영어로 세팅되신 분들이라면해당 테스트는 무조건 실패하는거 같습니다locale 이 null 이 나게 되면그리고 이 getDefault() 를 파고들면initDefault가 나오고 initDefault를 보면 message.properties 로 가는것 없이 바로 props = privilegedGetProperties로 가는데 이 privilegedGetProperties 는 System.getProperties() 를 실행...애초에 locale = null 일때에는 시스템에서 가져와버리게 설계가 된 거 같습니다...java - Spring MessageSource seems to ignore property fallbackToSystemLocale - Stack Overflow해당 stackoverflow 를 보더라도 locale = null 일때spring.messages.fallback-to-system-locale=false쓰이는게 아니라고 되있기도 합니다.. 즉 저 fallback-to -system locale 은 locale = null 을 제외한 상황에서 Locale 에 해당하는 파일을 못 찾을 시.. 가 맞는거 같네요.. 아마 null일 때에는spring.messages.use-code-as-default-message를 변경해야 할 거 같습니다.... 시스템 언어 영어이신 분들스프링 정규 docs : Common Application Properties (spring.io) ctrl + f 로 검색저도 그냥 디버거 따라가다가 찾은거라 개인적인 의견을 말씀을 드리는 거라 누가 대신 확인을 좀 해주셨으면.....
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
웹브라우저를 종료해도 쿠키 삭제가 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 쿠키 사용 강의 듣다가 해결이 되지 않아서 질문 남겨요. 12:10부터 로그인된 상태로 프로그램은 종료하지 않고 웹브라우저만 종료하고 다시 웹브라우저를 키면 쿠키가 삭제되고 로그아웃이 된 화면이 뜹니다. 그런데 똑같이 완전히 웹브라우저를 종료하고 다시 키면 로그인이 되고 쿠키가 그대로 남아있는 상태로 화면이 뜨네요.강의 자료에 있는 코드로 다 바꿔봐도 해결이 안 되네요.로그아웃 기능까지 다 구현이 된 상태입니다. Expires / Max-Age에도 Session으로 표시되어 있습니다. LoginControllerHomeController웹 브라우저를 완전히 종료시켰는데 이런 현상이 생기는건 코드상의 문제인가요?아니면 크롬에서는 다른 방식으로 종료해야하는건가요??감사합니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
prev('regions') 궁금증
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.class Item 아래 List<String> locations라고 해놓은 상태에```<div> <div> 등록 지역</div> <!-- regions is a map locations belong to Item. did it this way to explicitly show difference --> <div class="form-check form-check-inline" th:each="region : ${regions}"> <input type="checkbox" th:field="*{locations}" th:value="${region.key}" class="form-check-input"> <label th:for="${#ids.prev('regions')}" th:text="${region.value}" class="form-check-label">서울</label> </div></div>```로 해두면 위와 같은 이유로 에러가 납니다public final class IdentifierSequences {private final Map<String,Integer> idCounts;를 열어보면가 나오는데 여기서 바이트 환산 기준 [locations] 를 담는데.get(regions) 를 해서 null 이 나오기 때문입니다.여기서 궁금한 거는 저 idcounts가 어떻게 제가 Item 클래스 안에서 List<String> locations 를 했는지 알 수 있는지 입니다저 context 구하는 코드 원리가 너무 탐이 나네요.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
수업 자료에 관한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! 덕분에 강의 너무 잘 듣고 있습니다!다름이 아니라 '서블릿 예외 처리 - 시작' 강의 수강중 12:00쯤에 보이는 수업 자료에서 HTTP Status 404 - Bad Request 부분이 Not Found로 변경되어야 하지 않나요? 제가 다운 받은(약 1달전) 자료도 영상과 동일합니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
rejectValue() , reject()에대한 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]rejectValue(): fieldError 에만 사용하고 reject(): objectError에만 사용하는게 맞나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문
질문
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ExceptionHandler 메소드를 private으로 선언했을 때에는 어떻게 호출이 가능한 건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의를 수강하며 이것저것 시도해보던 중, 컨트롤러 내부의 @ExceptionHandler 메소드를 private으로 선언해도 정상적으로 처리되는걸 확인했습니다. 뭔가 이상하다 싶어서 혹시나 하고 컨트롤러 내의 @RequestMapping 접근제한자도 private으로 바꿔봤는데요, 역시 정상적으로 동작합니다. 무언가 리플렉션이나 프록시같은 기술이 엮여있을 것 같기는 한데 자바라는 언어의 룰을 갈아엎는 느낌이라 좀 혼란스럽네요.질문을 정리하면 이렇습니다. 스프링이 어노테이션을 기반으로 메소드를 등록한 후에 상황에 맞게 호출하는 것인데, 어떻게 private 메소드를 객체 외부에서 호출할 수 있는 것인가요?@ExceptionHandler 어노테이션이 붙은 메소드를 private으로 선언해도 정상적으로 작동하도록 둔 것이 일종의 버그인지, 아니면 Spring 프레임워크에서 의도하는 사용 방식인지 궁금합니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HttpSession에서 쿠키를 Response에 넣어주기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, SessionManager와 HttpSession을 비교하다 의문점이 들어 질문 드립니다.SessionManager를 구현할 땐 Cookie를 생성한 후 이를 response에 넣주도록 했습니다. 그래서 이를 사용할 때 파라미터로 response를 넣어줬구요.public void createSession(Object value, HttpServletResponse response) { // 세션 ID 생성하고 값을 세션에 저장 String sessionId = UUID.randomUUID().toString(); sessionStore.put(sessionId, value); // 쿠키 생성 Cookie mySessionCookie = new Cookie(SESSION_COOKIE_NAME, sessionId); response.addCookie(mySessionCookie); }그런데 서블릿에서 구현한 HttpSession을 사용했을 땐 Session을 생성한 후HttpSession session = request.getSession(true);setAttribute로 값을 넣어준 후 (이 때 쿠키가 생성된다고 이해했습니다.)session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);따로 response에 쿠키를 넣어주지 않았는데도 클라이언트에 쿠키가 저장되는것 같습니다. HttpSession이 이를 가능하게 해주는 걸까요?
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
enumerate에 대한 질문
enumerate로 저장한 필드는 어떻게 string으로 바꾸는 건가요? enum으로 WAIT('대기'), REMOVE('삭제')이 있을때 화면에서는 대기, 삭제 등 한글로 출력하고 싶으면 responseDTO에서 변환해주는 게 맞을까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ControllerAdvice의 예외처리 범위
안녕하세요먼저 강사님께서 보여주신 예외처리 흐름 이미지를 보고 ExceptionHandlerrExceptionResolver 는 handler를 통해 올라온 예외만 처리할 수 있다고 이해하였습니다.(호출 주체가 DispatcherServlet이기 때문)질문은 아래와 같습니다.등록된 ExceptionResolver들이가 handler에서 올라온 예외에 대해서만 처리 가능한지? 아니면 DispatcherServlet내부에서 발생하는 에러 전체에 대해 포괄적으로 처리해주는지 @ControllerAdvice에 선언된 @ExceptionHandler도 ExceptionHandlerrExceptionResolver가 처리하는가?controller에 선언된 @ExceptionHandler에 대한 설명은 해주셨는데, @ControllerAdvice에 선언된 @ExceptionHandler의 처리 흐름은 설명을 안 해주셨네요. @ControllerAdvice의 처리 흐름은 고급편 AOP부분을 이해해야할까요? 1번이 맞다면 결국 DispatcherServlet내에서 발생하지 않은 예외는 @ControllerAdvice에 선언된 @ExceptionHandler가 실행되지 않는가?ex) DispatcherServlet이 호출되기 전인 Spring Security filter단계에서 Service레이어 코드를 호출하고 예외가 발생한 경우-> 이 경우 논리대로라면 예외가 발생하더라도 ExceptionHandler가 호출되지 않을 것 같은데 맞나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
요청 데이터 DTO 관리 방법 질문드립니다.
안녕하세요. 프로젝트 진행 중 궁금한 부분이 생겨 질문 드립니다.클라이언트 요청 데이터를 @RequestBody 등으로 DTO 클래스에 매핑하여 사용할 때 DTO 클래스를 각 요청 유형( 생성, 수정, 삭제, 기타, ... )마다 핏하게 생성하는 게 좋은지, 하나의 DTO 클래스에 입력 받은 후 필요한 것만 뽑아 사용하는 것이 좋은지 질문 드립니다.저는 각 요청 유형마다 핏하게 생성한 후 알맞은 유효성 검사를 적용하는 것이 코드 파악 등 유지보수 관점에서 좋다 생각했습니다. 다만 다른 개발자 분께서 요청마다 DTO를 생성하면 클래스가 너무 많아진다는 의견을 주셔서 고민입니다. 저도 느꼈던 부분이기도 했구요.영한님 혹은 다른 서포터즈 분들은 어떤 방법을 선호하시나요? 좋은 방법이 있다면 추천부탁드립니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
사용자가 유효하지 않은 enum 값 유효성 검사
사용자가 유효하지 않은 enum 값을 넘겨줬을 때에 대해서는 어떻게 유효성 검사를 하나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메세지가 null로 나옵니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.UserException 코드를 처리 중입니다.상태코드, 코드도 정상적으로 나오는데 메세지가 사용자 오류가 아닌 null로 출력됩니다. 혹여 잘못 코딩해서 오류가 난 것은 아닌가 복사 붙이기를 통해 다시 서버를 구동해서 확인해봐도 똑같이 사용자 오류가 아닌 null로 출력됩니다. 어디를 수정해야 할까요??
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
${#temporals.monthName(localDateTime)}
${#temporals.monthName(localDateTime)} = 5월${#temporals.monthNameShort(localDateTime)} = 5월결과 값이 같은데 무슨 차이가 있는건가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
messages.properties 렌더링 오류 발생
hello=안녕 hello.name=안녕 {0} label.item=상품 label.item.id=상품 ID label.item.itemName=상품명 label.item.price=가격 label.item.quantity=수량 page.items=상품 목록 page.item=상품 상세 page.addItem=상품 등록 page.updateItem=상품 수정 button.save=저장 button.cancel=취소위에는 messages.properties의 코드입니다그리고 밑에는 application.peoperties 코드입니다spring.messages.basename=messages,config.i18n.messages 서버를 띄우고 실행한 결과 밑에와 같이 렌더링이 됩니다한글버전만 문제가 있는데 어떤 것 때문에 그런걸까요??messages.properties_en는 정상수행됩니다
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿 예외 처리 - 오류 페이지 작동 원리
예외 처리와 오류 페이지.pdf 파일에서printErrorInfo 함수 내부에 첫번째 log.info 찍을때 er= 이라고 되어있습니다. 강의상으로나 정상적으로 동작하려면 {}로 들어가야할듯합니다..
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
RequestMappingHandlerAdapter 흐름 질문
안녕하세요.영한님 질문 드립니다. RequestMappingHandlerAdapter 동작 방식ArgumentResolver 호출컨트롤러 파라미터가 @RequestBody Object 인 경우에는 HttpMessageConverter 사용컨트롤러 파라미터가 @ModelAttribute, @PathVariable, @RequestParam 인 경우에는 ConversionService 사용 으로 이해하면 될까요? 감사합니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자바 기본적인 두수 바꾸기 메소드 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. public static void swap(int a, int b) {if (a > b) {int t= a; a = b; b = t; }}int x= 1000;int y= 100;swap(x,y);이렇게 코드작성하면x는 100나오고 y는 1000나와야정상아닌가요?? 왜 인텔리제이에서 돌리면 x값과 y값이 그대로일까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
서블릿 필터 에러 처리, 컨트롤러 에러 처리
안녕하세요 영한님영한님의 새로운 도전 응원하며강의 항상 잘 듣고 있습니다.!! 예외 처리 관련해서 강의를 듣고 제가 이해한것이 맞는지 확인차 질문 드립니다.일단 예외는 2가지 상황에서 발생 가능하다고 생각했습니다.서블릿 컨테이너에서 발생한 예외스프링 컨테이너에서 발생한 예외 서블릿 컨테이너에서 발생한 예외서블릿 컨테이너는 스프링 컨테이너가 직접 관리할 수 없기 때문에 @ControllerAdvice와 @ExceptionHandler을 사용하여 예외 처리를 할 수 없습니다. 따라서 필터에서 발생한 예외는 필터에서 처리해야 합니다. 예외 처리 방법예외가 발생하는 필터의 상위 필터에서 예외가 발생하는 필터의 예외를 처리하도록 한다.흐름서블릿 <- 필터1(필터2, 3 예외처리) <- 필터2 <- 필터3(예외 발생) 스프링 컨테이너에서 발생한 예외스프링 컨테이너에서 발생한 예외를 서블릿 컨테이너까지 보낼필요는 없다. 스프링 컨테이너에서 예외를 처리하고 서블릿 컨테이너에는 정상 호출인 것처럼 하면 된다. 예외 처리 방법@ControllerAdvice와 @ExceptionHandler을 사용하여 예외 처리를 한다. 흐름필터 <- 디스패처 서블릿 <- 컨트롤러 <- 인터셉터 <- ExceptionResolver(서비스 레이어 예외 처리) <- 서비스 레이어(예외 발생) 추가로 궁금한것이 있습니다.제가 보기에는 인터셉터에서 예외를 처리할 수 있을것 같습니다.그런데 인터셉터에서 예외를 처리하지 않는 이유는단일 책임 원칙을 지키기 위해서이다.따라서 컨트롤러(핸들러) 내부에서 발생한 예외 처리는 ExceptionResolver에 위임한다.정도로 이해 하면 될까요? 감사합니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
loginForm.html에서 form태그 action 속성에 관해 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 [질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 강사님 지금 loginForm.html에서 form태그 action 속성이 "item.html"로 되어 있는데 "/login"으로 해줘야 loginController에서 login post 요청으로 인식하여 loginService가 진행되지 않나요?