학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 스프링 입문 강의 섹션2. MVC와 템플릿 엔진 강의 중 @RequestParam의 required 기본값은 true이고, false로 설정하고 싶으면 @RequestParam(value = "name", required=false)와 같이 수정하면 된다고 하셨는데, required값이 false이면 강의의 예제와 무슨 차이인건가요??required값을 false로 설정하고 실행해봐도 여전히 localhost:8080/hello-mvc로 실행하면 오류가 발생하고, localhost:8080/hello-mvc?name=spring!과 같이 실행해야 하던데 required값이 true인 경우와 false인 경우 무슨 차이인지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Get 요청 특성상 URL에 개인정보가 들어가게 되면 보안상에 큰 문제가 없을까요? 실무 환경에서도 유저 ID같은 정보를 전달할때 PathVariable을 사용하는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] WARNING: A Java agent has been loaded dynamically (C:\Users\dlfnx\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.12\be4984cb6fd1ef1d11f218a648889dfda44b8a15\byte-buddy-agent-1.14.12.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended https://drive.google.com/file/d/1DZgTN4_woYB6PZGeJvSiUOLJ5TB8VCq9/view?usp=drive_link 코드 오류 난 것이 있는지 확인해 봤는데 제 눈에는 잘 보이지 않습니다.. 혹시 왜 오류가 난 것인지 알 수 있을까요?
public MemberController(MemberService memberService) { this.memberService = memberService; System.out.println("memberService : "+memberService.getClass()); } 생성자 주입을 통해 의존성 주입을 하였습니다. memberService는 콘솔창을 통해 프록시 객체인 것을 확인하였습니다. 해당 내용과 관련해서 2가지 질문이 있습니다. Q1) 스프링 빈에 올라가는 것은 모두 프록시 객체가 올라가나요 ?? Q2) 의존성 주입시 프록시 객체가 주입되고 MemberService 의 메소드가 호출되는 경우 실제 MemberService 객체가 호출되나요 ?? 감사합니다 ~!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] https://drive.google.com/file/d/1CQgi9utYN6GNS3pn4k1cXk5t7xuJYQXN/view?usp=sharing 26분 다수의 이미지 파일 올리는 부분은 다시 확인해보니 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] 해당 오류가 뜨고 있습니다. 왜 그런건지 알려주세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 디펜던시에도 들어있는거 같고 build.gradle에도 이렇게 되어있습니다. 그런데 이러한 현상때문에 프로젝트를 4번이나 따라만들어봤는데 계속해서 생기는데 어떻게 해야하나요
섹션 2-2. Hello 서블릿 강의 진행중에 /hello 접근 시 WhiteLabel 에러가 발생합니다. 업데이트된 매뉴얼에 따라 현재 Build and Run 항목은 모두 Gradle 으로 설정되어 있으며, 자바 21, 17 버전 모두 같은 문제가 발생하고 있습니다. @ServletComponentScan //서블릿 자동 등록 @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } } @WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); } } 같은 문제 관련하여 질문 글들 확인 및 시도해봤습니다만 해결이 되지 않았습니다. 콘솔창에도 아무것도 출력되지 않네요. 답변주시면 감사하겠습니다!
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 혹시 제가 폴더 명이나 파일 위치가 잘못 된 걸까요..? https://drive.google.com/file/d/150XPoxwV1oDeLVp8b2oAuuNBADwwXIEl/view?usp=drive_link
mvc2편 마지막 강의에서 아래 컨드롤러를 추가했다고 화면에 이미지 파일이 나타나는 이유를 정확히 모르겠습니다. /images/{filename} 디렉토리가 호출된 적이 없잔아요? @ResponseBody @GetMapping("/images/{filename}") public Resource downloadImage(@PathVariable String filename) throws MalformedURLException { return new UrlResource("file:" + fileStore.getFullPath(filename)); }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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"; } 이렇게 똑같이 중복이 됩니다. 이렇게 구현을 하는게 맞는건지, 혹은 더 추천하는 방법이 잇는지, 실무에서는 어떻게 검증을 하는지 여쭈어보고싶습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. "챕터 2- 불변객체 예제"에서 회원의 주소를 변경할때 가변 객체 에서의 MemberMainV1의 코드를 보면, memberB.getAddress().setValue("부산"); 이런식 으로 하셧고, 불변 객체의 에서의 MemberMainV2의 코드를 보면, memberB.setAddress(new ImmutableAddress("부산")); 이런식으로 하셨는데. 이런 코드들이 실무에서 얼마나 자주 사용하는지 궁금 합니다. 공부하면서 이런 코드들은 본적이(저한테는 특이한 코드 여서) 없어서 질문을 남깁니다. 답변 부탁드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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/~/tes t 이런식으로 넣어서 들어가라고 하셨는데 그러면 오류가 납니다.. 저 스크린샷처럼 들어가야 연결이 되는데 application.properties 에 어떤 url을 써야 하나요?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 패키지 위치 및 코드도 알맞게 작성한 듯 한데 Error page가 뜨는 이유가 있을까요? index.html에 보면 빨간줄과 HelloController.java 파일을 보면 'HelloController' is never used 라는 문구가 뜨는데 제가 누락한 게 있다면 알려주세요...
==================================== [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. open-Session-in-view에서 false 설정하라고 하던데 찾아봐도 어디서 설정 해야 하는지 모르겠습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 코드를 수정하지도 않았는데 프로젝트 삭제했다가 다시 설정해야할까요... 코드가 복잡해서 어디부터 수정해야할지 모르겠습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 해당 warning이 왜 발생하는지 알고싶습니다.