월 16,940원
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가 진행되지 않나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
비밀번호가 틀렸을 때 사라지지 않게 하려면 어떻게 수정해야하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]password가 input에 들어가 있어서 사라진다고 하셨는데 틀렸을 때 사라지지 않고 남아있게 하려면 어떻게 해야하나요??
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@RequestParam 사용
안녕하세요여러개의 변수를 사용 할때는 @RequestParam으로 강의에서 알려 주신 것처럼 Map으로 List 형식으로 밖에 안되나요?감사합니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
JDK설치 안되어있으면 어떻게되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 포맷하고 자바 다 지워졌는데 스프링만 실행해도 작동이 잘되더라구요JDK설치 안하고 스프링으로 계속 돌리면 어떤점이 안좋나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ArgumentResolver 질문입니다.
ArgumentResolver는 컨버젼서비스를 통해 파라미터의 타입 변환을 하고메세지컨버터를 통해 Http 메시지 바디의 타입을 변환한다 라고 이해하면 될까요??
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@NotEmpty를 사용하는 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@NotBlank와 @NotEmpty 모두 null값을 허용하지 않는 것으로 알고 있습니다. 하지만 차이점은 공백을 받는 것과 받지 않는다는 것인데 아이디에 공백을 허용하는 @NotEmpty를 사용하는 이유가 궁금합니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
errors.properties
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]errors.properties 가 반드시 이름이 errors이여야 하는 건가요? 혹시 오류메세지를 모아놓은 다른 이름의 properties를 사용하려면 어떻게 해야 할까요?
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Map errors 초기화
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]웹에 상품명을 쓰지 않고 오류를 내어 errors에 넣고 새로고침을 하면 errors 들어 있던 오류는 왜 사라지는 건가요? 객체를 새로 불러와서 그런건가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
layoutMain.html, Deprecated 이슈, 워닝 해결 공유
WARN 2620 --- [nio-8080-exec-2] actStandardFragmentInsertionTagProcessor : [THYMELEAF][http-nio-8080-exec-2][template/layout/layoutMain] Deprecated unwrapped fragment expression "template/layout/base :: common_header(~{::title},~{::link})" found in template template/layout/layoutMain, line 3, col 7. Please use the complete syntax of fragment expressions instead ("~{template/layout/base :: common_header(~{::title},~{::link})}"). The old, unwrapped syntax for fragment expressions will be removed in future versions of Thymeleaf.워닝 해결.오래된 구문:template/layout/base :: common_header(~{::title},~{::link})새 구문:~{template/layout/base :: common_header(~{::title},~{::link})}
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
게시글 포스트 기능 구현에 대한 질문
안녕하세요 수강 중에 질문이 생겼습니다. 현재게시글 포스트 기능을 구현하고 있습니다를멤버, 게시글, 댓글 이렇게 DB를 구성하고 각각 엔티티를 만들어서 구현하고 있습니다. 세션에 멤버 엔티티 자체를 저장해서 가져오는 것이 맞는 건지 궁금합니다. 혹은 멤버 엔티티의 pk만 저장하고 select를 날리는 게 맞는 건가요?댓글을 등록하려면 게시글이 실제 db에 있는지 없는지 조회해야 할 것 같은데, 이러한 게시글 존재 조회 repository로직을 컨트롤러에 놓는게 맞는지 or 서비스(read 트랜잭션이 걸린)에 놓는 것이 맞는지도 궁금합니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
어떨때는 validation을 쓰고, 어떨때는 @exceptionHandler을 써야하나요?
둘 다 원하지 않는 상황이 발생했을 때, 처리할 수 있는 방식인 거 같은데요.제 생각엔 validation(@NotNull 같은...)으로 처리하는 많은 일을 @exceptionHandler을 통해서도 가능하다고 생각하는데요. 그래서 굳이 validation이 필요한 지, 언제 무엇을 사용해야 할지 헷갈려요 예를 들어 웹페이지에서 첨부파일을 받을 때 MultipartFile에서 받을 크기를 넘어서게 되면 SizeLimitExccededException이 발생하잖아요. 여기서 처리 방식이 dto에서 validation을 설정해 주고, bindingResult로 처리해 주는 것과, @exceptionHandler 통해서도 처리를 해줄 수 있다고 보는데요. 주로 어느 상황에는 ~을 쓰고, 어떤 상황에는 ~을 쓰는 게 존재하나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
반환되는 세션안에는 어떤게 있나요?
<질문>이미 있는 test로 로그인한다고 가정해보겠습니다그러면 loginMember의 로그를 찍으면 아래와 같이 되고,loginMember= Member(id=1, loginId=test, name=테스터, password=test!)request.getSession()을 하면HttpSession session = request.getSession();request의 쿠키정보에서 얻어온 JSESSIONID값으로 Session들을 모아둔 Session저장소에서 동일한 sessionId(=JSESSIONID) 값이 있는지 찾습니다.그다음 동일한 sessionId가 있으므로 해당 Session을 반환하는 데 이때 이 세션안에는 어떤게 있는 건가요??제가 생각한건 두개입니다.1. JSESSIONID와 Value가 session에 들어있는경우(session={"JSESSIONID": Value})그러면session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);위 코드에서 초기화를 해주고,세션 파일은 해시(hash)값으로 생성하니까session={"JSESSIONID": Value, "SessionConst.LOGIN_MEMBER": loginMember}이런식으로 HttpSession안에 공존해서 있는 경우그래서 클라이언트에게 응답할 때 이 세션안에 있는 JSESSIONID를 쿠키에 직접 넣어준다2. session 안에 아무것도 없는 경우이 세션은 사용자 test를 구분하기 위한 객체일뿐 session_test(test에 대한 세션)에 아무값이 없다(그냥 빈 객체)그래서 아래코드를 하게되면session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);session={"SessionConst.LOGIN_MEMBER": loginMember} 이 된다.그래서 클라이언트에게 응답할 때 세션저장소에서 이 세션의 JSESSIONID를 찾아서 쿠키에 넣어준다제가 생각한 것 중에 답이 있는 지 궁금합니다.답변주시면 정말 감사하겠습니다.아래글을 참고 했습니다.https://www.inflearn.com/questions/520956/%EC%BB%A4%EB%AE%A4%EB%8B%88%ED%8B%B0-%EB%8B%B5%EB%B3%80-%EA%B8%80-%EB%B3%B4%EB%A9%B4%EC%84%9C-httpsession-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC-%EC%A0%95%EB%A6%AC%ED%96%88%EB%8A%94%EB%8D%B0-%EB%A7%9E%EB%8A%94%EC%A7%80-%ED%99%95%EC%9D%B8%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
bindingResult 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1:50쯤에 bindingResult설명하실 때 addItem의 매개변수로 bindingResult가 있으면 에러가 나도 컨트롤러가 호출되고, bindingResult가 없으면 컨트롤러 호출 없이 바로 에러페이지로 넘어간다고 하셨는데,이전에 만든 ValidationItemControllerV1에서는 bindingResult가 없는데도 addItem()컨트롤러가 호출된 것이 아닌가여? 그러니까 에러처리도 되고, 타임리프를 통해서 유저에게 어떤 에러가 났는지 알려줄 수 있게 된것이 아닌가 하고 헷갈리네용
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 질문입니다.
인터셉터를 듣던중 궁금증이 생겨 질문남깁니다.인터셉터를 사용해서 사용자의 로그인 인증이 가능했습니다.만약, 특정 API를 로그인, 비로그인 사용자가 모두 접속이 가능하고, 로그인 사용자일 시 추가 작업이 발생하는 경우에 인터셉터를 사용하여 해결합니까? 다른 방법이 있다면 어떤 것이 있나요? 예를 들어 특정 숙소의 신청 상태의 관해서, 비 로그인 시 추가 작업 없음, 로그인 사용자 시 사용자 신청 상태를 판별하는 추가 작업 필요.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션을 사용할 수 있다면, URL를 설계할때, /member/{id} 와 같이 PathVariable를 가져갈 필요가 있을까요?
'모든개발자를 위한 HTTP웹 기본지식' 에서 배운 바로는 URL를 설계할때, 회원조회를 위한 url 이라 치면, "/member/{id}" 같이 PathVariable인 회원id 값을 url에 명시해 두었습니다.그런데 이번에 쿠키와 세션을 학습하면서 느낀건데, 애초에 그냥 "/member" 로만 해도, 로그인한 세션값으로 회원 정보를 가져와 해당 회원에 맞는 화면을 응답해도 되지 않을까요?비슷한 또 다른 예시인데,userA가 자신이 주문한 item들을 전체 조회하고자 할때 요청할 url를"/orders/{memberId}" 로 하여 memberId를 통해 회원객체를 조회하고, 조회한 객체의 주문목록을 화면으로 뿌려주는것보다는,"/orders" 로만 url을 잡고 세션값을 통해 현재 요청을 날린 회원 객체를 받아 주문목록을 화면에 뿌려주는것이 조금 더 url을 간결하게 만들 수 있지 않을까.. 라는 생각이 들었습니다. 결론:url을 "/member/{id}" 으로 잡았던 이유가 아직 세션을 학습하기 이전이라 그런것인가요, 아니면 다른 이점이 있기 때문일까요?