월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
매핑이 잘 안되는거 같아요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.영학님이 주신 걸로 하면 버전이 안맞아서 커뮤니티 글에 있는 17버전을 새로 만들어서 영학님이 주신 form에 내용을 main하고 resources를 바꿔서 실행 하는데 서버도 열리고 잘 되는데 이상하게 이런 현상이 떠서 질문을 드립니다이렇게 뜨고 상품관리 를 누루면이렇게 뜨는데 위에 basic을 form으로 바꾸면 잘 뜨고 다른 기능도 잘 됩니다.그런데 할때 마다 계속 바꿔야 하니 문제를 찾아 보고 있는데 resources에 index.html도 확인 했는데 basic이 쓰인 곳도 없고 FormController 부분에도 basic을 반환 하는 부분도 없는데 프로그램 코드안 에서도 basic을 반환 하는 부분이 어디에도 없는데 뭐 때문에 그런지 잘 모르겠습니다. 재가 미숙해서 잘 못 찾는것도 있지만.. 배운다는 생각으로 충고 주시면 잘 배우겠습니다
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
RequestMapping 이후 GetMapping
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이렇게 RequestMapping으로 /template으로 시작하는 url을 mapping하고, /fragment로 오는 get을 template()에서 처리합니다. 그런데 이런 컨트롤러 클래스 내부의 메소드를 public으로 하는 이유가 있을까요? 예외없이 private으로 해야하는 것 아닌가요? 다른곳에서 TemplateController 인스턴스를 만들어서 template() 함수를 쓰려고 해도, templateController가 @Controller니까 의미 없지 않나요? 즉,spring 차원에서 public을 막고 private으로만 메소드를 만들게 할 수 도 있는데, 그렇게 않한 이유가 알고 싶습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 메시지 소스 사용 = 오류 발생건입니다.
실행하면 아래와 같은 메세지가 뜹니다.실행 자체가 안되는거 같은데요?spring.messages.basename=messages 설정 여부와 상관없이 오류가 납니다.@SpringBootTest public class MessageSourceTest { @Autowired MessageSource ms; @Test void helloMessage() { String result = ms.getMessage("hello", null, null); assertThat(result).isEqualTo("안녕"); } } Execution failed for task ':test'.> There were failing tests. See the report at: file:///C:/CodingStudy/스프링/message/build/reports/tests/test/index.html* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타임 리프 객체 접근
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]user.username 이 어떻게 가능한가요? private 이어서 user.getUsername() 해야하는 것 아닌가요? 아니면, 서버 사이드에서 user.username 을 user.getUsername으로 바꿔주나요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Exception.getMessage()" because "ex" is null
안녕하세요 API 예외 처리 - '시작' 강의 후반부에 members/ex에 원래대로면 json 객체가 포스트맨에 출력되어야 하는데 서버가 에러와 함께 중단되는 현상이 발생합니다. https://drive.google.com/file/d/17UCDKzluOgLwtSn82gMD2zaTYZ4JzxHi/view?usp=sharing
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
response.sendRedirect()와 return으로 redirect를 써주는 것의 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]response객체를 받는 경우에 sendRedirect를 사용하는 건가요?아니면 doFilter()가 반환타입이 void기 때문에 이렇게 해주는건가요??둘을 사용하는 경우의 차이를 자세히 알고 싶습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Bean Validation 사용 시 메시지 코드에 대한 파라미터 지정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@NotBlank , @NotNull와 같은 Bean Validation 관련 어노테이션을 통해 검증할 경우 동적으로 파라메터를 지정해서 메시지를 처리할 수는 없는 것인가요?예를 들어 Bean Validation으로 메시지를 지정할 땐 @NotBlank("값은 필수여야합니다.")와 같이 기본 메시지를 지정하던가 혹은 error.properties와 같은 메시지 코드 관리하는 properties 파일에서 NotBlank=값은 필수여야합니다. 와 같이 메시지 코드를 통하여 메시지를 지정할 수 있는데 이때 {0} , {1}을 넣음으로써 동적으로 파라메터를 지정해서 바인딩하는 방법을 모르겠어서 여쭤봅니다 !
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자바 17로 프로젝트 생성 후 실행은 잘 되는데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 자료에 제공되는 소스 코드는 자바 11 버전이라 잘 안 될 거 같아서https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2&unitId=83272&category=questionDetail&tab=community&q=1171198 이 방법대로 해서 실행은 정상적으로 됩니다. 폴더는 강의에서와 마찬가지로 form 폴더입니다.그런데 아래 사진처럼 item-serviceform [item-service] form이 아니라 item-service 이런 식으로 표시되는데, 앞으로 강의대로 진행하다가 나중에 문제 생길 여지는 따로 없을까요?맨 위의 item-service는 Project Structure에서 form으로 바꾸면 변하긴 하던데 아래에 있는 form [item-service]는 어떻게 바꾸는지 모르겠네요.. Refactor - Rename으로 해도 똑같습니다. settings.gradle을 수정했더니 갑자기 실행이 안 되길래 무서워서 그냥 원래대로 바꿨고요.. 그냥 안 바꾸고 해도 강의 따라 하는 데 지장 없을까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
메시지(국제화), 검증 모두 타임리프를 사용할 때만 적용하는건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]메시지 및 국제화, 검증 모두 타임리프를 사용해서 편리하게 꺼내고 적용하는데, 뷰나 리액트를 연결할 때도 사용하는 방식인지 궁금합니다. 게시판에 비슷한 질문을 보기는 했는데 답변이 뭔가 명확하지 않아서 다시 질문드립니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
URL 입력 시점과 LogInterceptor
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영상처럼 URL을 따라쳐보는 중에 의문점이 생겨서 문의드립니다URL에 localhost:8080 뒤 내용을 수정하고 ENTER를 누르지 않았는데도 Console에는 LogInterceptor가 수정한 주소의 로그를 찍고 있습니다로그를 찍는 기준이 ENTER를 누르는 순간이 아니라, 수정하면 즉각적으로 찍는건가요?작동원리를 정확히 알고 싶습니다현재 크롬으로 하고 있습니다(보시면 localhost:8080/items -> localhost:8080으로 수정하고 아직 ENTER를 누르지 않았는데 LogInterceptor는 localhost:8080으로 진입하였을 때의 로그를 찍고 있습니다)
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
errors.properties intelliJ 인식 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]왜 제 errors.properties는 아이콘 모양이 바뀌지 않고 인식을 안하는 걸까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 에러 미전달 케이스
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용]기존 섹션에서 추가한 인터셉터가 있는 경우 sendError에서 지정한 에러 코드가 아닌 정상 값을 응답 값을 전달받은 이유가 궁금합니다. 에러를 포함한 응답 값이 없는 경우 톰캣에서 무조건 200 값을 반환하는 것인가요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
강의 26분 부터 진행이 안도고 500 에러 발생합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://drive.google.com/file/d/1CQgi9utYN6GNS3pn4k1cXk5t7xuJYQXN/view?usp=sharing26분 다수의 이미지 파일 올리는 부분은 다시 확인해보니 UploadFiile클래스에 오타가 있어서 안되었던것 같습니다. 그런데 오타 수정 후 다시 실행하여 제출을 누르니 텍스트 파일 하이퍼 링크가 표시가 안되는데 왜 그런건지 확인해 주실 수 있나요?그리고 강의 19분 부분 ItemController 클래스에 newItem() 까지만 진행된 부분 실행하니 500에러가 발생하는데 콘솔에 멀티파트로 데이터 나오는 부분이 출력이 안되고2024-04-16T14:10:23.335+09:00 WARN 22132 --- [upload] [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' is not supported]해당 오류가 뜨고 있습니다. 왜 그런건지 알려주세요
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일업로드,다운로드 궁금한게 있습니다.
mvc2편 마지막 강의에서아래 컨드롤러를 추가했다고 화면에 이미지 파일이 나타나는 이유를 정확히 모르겠습니다./images/{filename} 디렉토리가 호출된 적이 없잔아요? @ResponseBody @GetMapping("/images/{filename}") public Resource downloadImage(@PathVariable String filename) throws MalformedURLException { return new UrlResource("file:" + fileStore.getFullPath(filename)); }
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 세션에 대한 고찰
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 현재 스프링mvc와 jpa를 활용해서 게시판 프로젝트를 만들고있습니다.로그인 처리는 세션으로 구현했습니다.한 유저가 로그인을 해서 게시글을 작성했을때,그 게시글은 작성한 해당 유저만이 수정 및 삭제를 할수있게 구현을 하는 중입니다. @GetMapping("/{boardId}/edit") public String editForm(@PathVariable("boardId") Long boardId, Model model, HttpServletRequest request, HttpServletResponse response) throws IOException { Optional<Board> findBoardOptional = boardRepository.findByIdJoinFetchMember(boardId); if (findBoardOptional.isEmpty()) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return null; } MemberSessionDto memberSessionDto = getMemberSessionDto(request); Board findBoard = findBoardOptional.get(); if (!memberSessionDto.getId().equals(findBoard.getMember().getId())) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return null; } model.addAttribute("board", findBoard); return "boards/editForm"; } 현재 이런식으로 해당 게시글의 번호(boardId)로 해당 게시글이 있는지 먼저 검증을 한 후, 세션에 담아둔 유저의 정보를 가져와 해당 게시글을 작성한 유저의 id와 세션의 유저 정보의 id를 비교를 해서 다 검증이 끝나면은 로직이 정상 수행이 되게 만들었는데 막상 이렇게 만드니 수정 페이지이동, 수정, 삭제 에서도 검증하는 로직이 계속 중복됩니다.@PostMapping("/{boardId}/delete") public String deleteBoard(@PathVariable("boardId") Long boardId, HttpServletRequest request, HttpServletResponse response) throws IOException { Optional<Board> findBoardOptional = boardRepository.findByIdJoinFetchMember(boardId); if (findBoardOptional.isEmpty()) { response.sendError(HttpServletResponse.SC_NOT_FOUND); return null; } MemberSessionDto memberSessionDto = getMemberSessionDto(request); Board findBoard = findBoardOptional.get(); if (!memberSessionDto.getId().equals(findBoard.getMember().getId())) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return null; } boardRepository.deleteById(boardId); return "redirect:/boards"; }이렇게 똑같이 중복이 됩니다. 이렇게 구현을 하는게 맞는건지, 혹은 더 추천하는 방법이 잇는지, 실무에서는 어떻게 검증을 하는지 여쭈어보고싶습니다.
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 업로드 다운로드 오류입니다. 빠른 답변바랍니다.
실행 결과과 강의 내용과 다르게 나옵니다.진도 나가야 되니 빠른 답변 바랍니다.https://drive.google.com/file/d/18G2rJDiA_FpbU226rO0Ck0-xmi-6fa-6/view?usp=sharing
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
최종적인 스프링 사용 내용만 정리된 강의는 없을까요?
스프링 입문, 스프링 핵심원리 기본편, 스프링 MVC 1편, 스프링 MV2편을 1번씩 수강했습니다.많은걸 가르쳐 주시니 이해하는데 도움은 많이 됬는데, 결론적으로 알고 있어야 되는게 뭔지 헷갈립니다. 너무 많은걸 배워서 정신도 없고.....다시 한번 더 봐야 할 거 같은데 막막하기도 하고 ㅎ ~~과거 개념이나 기본 개념은 다 빼고, 최종적인 스프링 사용 내용만 정리된 강의는 없을까요?
- 미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
DB 인강 관련 질문
스프링부트 DB 활용을 위해 김영한 강사님의 JPA 관련 강의를 모두 구매하였는데, 먼저 MyBatis를 공부해야 할 사정이 생겼습니다.스프링 DB 2편 - 데이터 접근 활용 기술에 MyBatis 교육이 있어서 구매하려고 하는데 질문이 있습니다.MyBatis 사용을 위해서 스프링 DB 1편, 스프링 DB 2편을 모두 구매해야 하는지?스프링 DB 1편 또는 스프링 DB 2편에서 꼭 수강해야 하는것들은 어떤 것들인지? (들을 필요가 없는걸 정리해 주셔도 됩니다)혹 추천해 주실 다른 강의가 있는지?부탁드립니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
LoginForm클래스가 web영역인 이유가 궁금합니다.
멤버 클래스, 멤버 리포지토리 클래스와 비교하였을 때 멤버 클래스는 도메인 영역에 존재하고 멤버 리포지토리에 의해서 멤버 클래스의 객체가 만들어지는것 같은데로그인기능에서 로그인폼 클래스가 멤버 클래스와 같은 기능인것 같은데 서로 다른 영역에 존재하고 로그인 사용자가 생성될려면 로그인서비스의 loginService.login()기능이 호출되어서 로그인 객체가 생성이 되는것을 알겠는데 멤버클래스와 다르게 web영역에 존재하는 이유가 궁금합니다.
- 해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
검증1 강의 내용 질문
<div> <label for="itemName" th:text="#{label.item.itemName}">상품명</label> <input type="text" id="itemName" th:field="*{itemName}" th:errorclass="field-error" class="form-control" placeholder="이름 을 입력하세요"> <div class="field-error" th:errors="*{itemName}"> 상품명 오류 </div> </div>FieldError()의 생성자에는 message가 항상 들어가있는데, 여기서 저 "상품명 오류"라는 문자는 출력될 일이 있는 건가요? 아니면 단순히 div 태그를 구분하기 위해 적혀있는 건가요?