묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 관리 예제 - 웹 MVC 개발
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.혹시 제가 폴더 명이나 파일 위치가 잘못 된 걸까요..?https://drive.google.com/file/d/150XPoxwV1oDeLVp8b2oAuuNBADwwXIEl/view?usp=drive_link
-
미해결스프링 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
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
혹시 vs에 중단점 누르고 디버깅하면 풀리는 경우도 있나요?
디버깅 할때 홈페이지 주소 바꿀려고 하면 vs 디버깅이 풀리네여 저만 그런가해서 여쭤봅니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DB관련
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요여기서 import org.springframework.jdbc.datasource.DataSourceUtils; jdbc부분에 빨간줄이 생겨서 다른질문자분들이 올려주신걸 보고 어찌어찌 해결했습니다. 그런데 HelloSpringApplication을 실행할때마다 회원목록이 비어있습니다. 그리고 회원등록을 하고나서 sql문을 날리면 DB에 들어간 회원이 없습니다..어디가 연결이 잘못된건지 잘 모르겠네요.. 그리고 H2 실행할때 다음실행부터는 저 url부분에jdbc:h2:tcp://localhost/~/test 이런식으로 넣어서 들어가라고 하셨는데 그러면 오류가 납니다.. 저 스크린샷처럼 들어가야 연결이 되는데 application.properties에 어떤 url을 써야 하나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Whitelabel Error Page
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.패키지 위치 및 코드도 알맞게 작성한 듯 한데 Error page가 뜨는 이유가 있을까요? index.html에 보면 빨간줄과 HelloController.java 파일을 보면 'HelloController' is never used 라는 문구가 뜨는데 제가 누락한 게 있다면 알려주세요...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
====================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.open-Session-in-view에서 false 설정하라고 하던데 찾아봐도 어디서 설정 해야 하는지 모르겠습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.코드를 수정하지도 않았는데 프로젝트 삭제했다가 다시 설정해야할까요... 코드가 복잡해서 어디부터 수정해야할지 모르겠습니다..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 해당 warning이 왜 발생하는지 알고싶습니다.
-
미해결스프링 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 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam, @ModelAttribute 생략 규칙을 개발자가 생각하면서 개발해야 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 내용이 개발자가 고려할 건 아니고, 그냥 스프링이 내부적으로 동작하는데 있어서 규칙을 지정한 것이라고 이해했는데 맞나요?개발자가 이것을 구분하면서 개발해야 하는지에 대해 생각해보다가, 굳이 그럴 필요는 없는것 같아서요! 그냥 스프링의 내부 동작 방식으로 이해하면 되겠죠ㅎ?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
LoginForm클래스가 web영역인 이유가 궁금합니다.
멤버 클래스, 멤버 리포지토리 클래스와 비교하였을 때 멤버 클래스는 도메인 영역에 존재하고 멤버 리포지토리에 의해서 멤버 클래스의 객체가 만들어지는것 같은데로그인기능에서 로그인폼 클래스가 멤버 클래스와 같은 기능인것 같은데 서로 다른 영역에 존재하고 로그인 사용자가 생성될려면 로그인서비스의 loginService.login()기능이 호출되어서 로그인 객체가 생성이 되는것을 알겠는데 멤버클래스와 다르게 web영역에 존재하는 이유가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.어떻게 해결해야되는지 모르겠어요..
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
throws SQLException 관련 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용]안녕하세요! 강의 8분대에 등장하는public void accountTransfer(String fromId, String toId, int money) throws SQLExcetpion 함수에서 SQLException을 던진다고 나와있는데코드 내부에 try - catch 구문을 보면SQLException을 잡아서 IllegalStateException을 throw 해주고 있습니다. 체크 예외인 SQLException이 발생 시 잡아서 언체크 예외인 IllegalStateException을 던져주는데 메서드에는 왜 throws SQLException으로 작성되어 있는지 모르겠습니다. 설명해주시면 감사드리겠습니다!!
-
해결됨스프링 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 태그를 구분하기 위해 적혀있는 건가요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
spl 최신버전으로 설정방법 영상으로 올려주실 수 있나요?
ppt에 있는거 너무 옛날거라 인터페이스가 다릅니다. 영상으로 spl 최신버전 설치 및 실행 방법 좀 올려주시면 감사하겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
만약에 여러사람과 협업한다고 가정시에
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.저 뿐만이 아닌 다른 여러사람과 협업한다고 가정 시에 각자 자신의 프로젝트 루트가 다를 텐데 application.properties에 선생님과 똑같게 경로를 지정하면 이게 모두에게 적용이 되느건가요?? 아니면 뭔가 다른 방식으로 접근해야 되나요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
api 예외처리 시작 프로그램 오류
postman에서 http://localhost:8080/api/members/ex 를 입력하면 인텔리제이 콘솔에 아래와 같은 오류 메세지가 뜹니다. api 예외처리 - 시작 첫번째 예시 프로그램입니다.(소스는 교유자료 그대로 카피했습니다.)부트 3.2.4. 자바 17 입니다.https://drive.google.com/file/d/1dF6tbyoy58KHPVdXYeiMYbGkPqnD9HVy/view?usp=sharing 2024-04-13T11:04:18.249+09:00 ERROR 12968 --- [exception] [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost] : Exception Processing [ErrorPage[exceptionType=java.lang.RuntimeException, location=/error-page/500]]jakarta.servlet.ServletException: Request processing failed: java.lang.NullPointerException: Cannot invoke "java.lang.Exception.getMessage()" because "ex" is null 디버그를 잡아보면 @RequestMapping(value = "/error-page/500", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Map<String, Object>> errorPage500Api(HttpServletRequest request, HttpServletResponse response) { log.info("API errorPage 500"); Map<String, Object> result = new HashMap<>(); Exception ex = (Exception) request.getAttribute(ERROR_EXCEPTION);여기가지 실행하면 ex에 null 이 나옵니다. 이거 때문에 오류가 나는데 이유가 뭘까요? 그래서 status만 찍게 했더니 500 이 아니라 null이 출력되네요?API errorPage 500ERROR_EXCEPTION: ex=ERROR_EXCEPTION_TYPE: nullERROR_MESSAGE: nullERROR_REQUEST_URI: nullERROR_SERVLET_NAME: nullERROR_STATUS_CODE: null