묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ArgumentResolver가 Service레이어 클래스, DB접근에 접근하는 클래스에 의존하도록 설계해도 괜찮나요?
문제 상황을 설명드리겠습니다. page 정보를 받아서 게시글 리스트, 페이지 정보를 View로 전달하는 Controller 코드 입니다. @GetMapping("/posts") public String getPosts(@RequestParam("page") String page, Model model) { // 사용자가 입력한 page문자열과 모든 post의 개수를 매개변수로 받아서 page 정보 생성 // 사용자가 입력한 page값을 검증 후 올바른 Page 정보를 반환한다. // "@#$", "hello" 같은 이상한 page값이 들어오면 모두 1로 변경한다. Page page = Page.validateAndCreate(page, postService.getPostsCount()); // page 정보를 사용하여 해당 page에 속하는 post들을 반환한다. List<Post> posts = postService.getPostList(page); // view로 데이터를 전달한다. model.addAttribute("page", page); model.addAttribute("posts", posts); }처음에는 위 방식으로 코드를 작성했습니다. 그런데 page정보 뿐 아니라, 다른 sorting정보, searching정보 등 여러 매개변수들이 들어오다 보니, Controller 코드가 복잡해진다고 느꼈습니다. 간단한 예시 코드는 아래와 같습니다.@GetMapping("/posts") public String getPosts(@RequestParam("page") String page, @ModelAttribute("sort") Sort sort, @ModelAttribute("search") Search search, .... 등등 , Model model) { // 여러가지 전처리 로직들 Page page = Page.validateAndCreate(page, postService.getPostsCount()); Sort sort = Sort.validateAndCreate(sort, ... ) Search search = Search.validateAndCreate(search, ...) ....등등 // 위에서 생성한 정보들을 바탕으로 DB에 쿼리를 날려 posts 데이터를 받아온다. List<Post> posts = postService.getPostList(page, sort, search, ...등등); // view에 필요한 데이터를 전달한다. model.addAttribute("page", page); model.addAttribute("posts", posts); model.addAttribute("sort", sort); ... 등등 }예시 코드는 문제상황 설명을 위해서 깔끔하게 작성했으나,실제로는 제 부족한 실력 탓에 지저분합니다. 저는 Controller 코드를 지저분하게 만드는 원인으로여러가지 전처리 로직들 (ex. Page.validateAndCreate(...) 코드들)View에 필요한 데이터들을 전달하는 model.addAttribute(...) 코드들 때문이라고 생각했습니다. 위 문제에 대한 해결방안으로 저는 ArgumentResolver를 사용하는 것을 떠올렸습니다.page에 대해서 @PageInfo라는 애노테이션을 정의하고, 이 애노테이션이 달린 매개변수에 대해서 1.여러가지 전처리 로직들을 수행해주고, 2.View에 자동으로 데이터들을 전달해주는, ArgumentResolver를 만들어주었습니다. Page에 대한 ArgumentResolver 코드는 다음과 같습니다. @RequiredArgsConstructor @Component public class PageRequestArgumentResolver implements HandlerMethodArgumentResolver { // 이 부분이 걱정입니다! ArgumentResolver가 특정 Service클래스에 의존해도 될까요? private final QuestionService questionService; @Override public boolean supportsParameter(MethodParameter parameter) { // @PageInfo를 가지고 있는 경우만 적용. boolean hasPageInfoAnnotation = parameter.hasParameterAnnotation(PageInfo.class); // 타겟변수가 Page 타입인 경우만 적용. boolean isPageClass = parameter.getParameterType().equals(Page.class); return hasPageInfoAnnotation && isPageClass; } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { // url에서 page문자열 정보를 추출. String pageString = webRequest.getParameter("page"); // page문자열 정보를 검증 및 생성. Page page = Page.validateAndCreate(pageString, questionService.provideAllQuestionsCount()); // mavContainer에 해당 정보를 넣어서 View로 자동전달. if (mavContainer != null) mavContainer.addAttribute("page", page); // 컨트롤러의 매개변수에 page정보를 바인딩. return page; } } 위 처럼 page정보 뿐 아니라, 다른 자주쓰는 매개변수들에도 ArgumentResolver를 정의하고 적용하면, 아래와 같이 Controller코드가 굉장히 깔끔해진다고 느꼈습니다.@GetMapping("/posts") public String getPosts(@PageInfo Page page, @SortInfo Sort sort, @SearchInfo Search search, ... 등등, Model model) { // 여러가지 전처리 로직들은 ArgumentResolver가 해주기 때문에 코드가 사라집니다. // 비즈니스 로직을 수행합니다. List<Post> posts = postService.getPostList(page, sort, search, ...등등); // View에 필요한 데이터도 ArgumentResolver의 mavContainer를 통해서 자동 전달됩니다. // 컨트롤러에서 관심이 있는 posts 정보만 전달합니다. model.addAttribute("posts", posts); } 그런데 이게 정말 좋은 코드인지 판단이 잘 서질 않습니다. 그리고 ArgumentResolver가 다른 Service 클래스에 의존을 해도 되는지가 의문입니다. AI에게 물어보니, 순환참조 문제가 발생할 수 있기 때문에 웬만해서는 하지 말라고하는데...
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ResponseStatusException 질문 (강의 13분 54초)
[질문 내용]ResponseStatusException에 세개의 파라미터가 담기는데, 세번째 파라미터가 무엇인지 정확히 이해가 가지 않습니다. 실제로 /api/response-status-ex2가 호출 되었을 때, IlleagalArgumentException이 발생한다면,그 대신에 HttpStatus.NOT_FOUND(404)를 내보내주고, "error.bad"를 메시지로 내보내준다는 뜻이 맞나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 서버가 로컬에 뜬다는 건 자바 JVM 안에서 뜬다고 보면 될까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 인텔리제이로 화살표를 눌러서 스프링 애플리케이션 서버를 실행한다는 것은, 자바 JVM 내부에서 스프링 서버가 뜨는거라고 생각하면 되려나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DB 서버에 “소켓”으로 접근한다는 게 어떤 의미일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.순수 JDBC 강의까지 듣고 질문이 생겨 올립니다~DB커넥션을 얻어 애플리케이션이 DB 서버에 "소켓"으로 연결된다고 하는데, 이 의미가 "네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신" 을 할 수 있게 소켓이라는 통(?)이 생겨서 연결된다고 보면 되려나요? 그리고, application.properties에 url에 jdbc:h2:tcp://localhost/~/test이렇게 적으면 소켓 연결이라고 하셨는데 이 url에 대한 더 자세한 이해를 하고 싶은데 이 url이 정확히 어떤 의미일까요? tcp는 OSI 7계층에서 어렴풋이 들어온 용어 같습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Pattern 사용시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.@Pattern을 @NotBlank와 쓰면 에러 메세지가 같이 나오고 @NotNull와 같이 쓰면 순서가 @Pattern의 에러먼저 적용 됩니다. 순서를 설정하고 하나만 나오게 하려면 validator를 따로 만들어야만 가능한가요? 아니면 스프링에서 따로 제공하는 기능이 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오류
A problem occurred configuring root project 'hello-spring'.> Could not resolve all artifacts for configuration 'classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.4.1. Required by: root project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.4.1 > Dependency requires at least JVM runtime version 17. This build uses a Java 8 JVM.* Try:> Run this build using a Java 17 or newer JVM.> 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.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.11.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.인텔리제이에서 open 폴더로 hellospring 열었는데 해당 오류가 뜨네요 이거 뭔가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]servlet hello 부분오류가 해결이 되지 않아 문의 남깁니다 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2025-01-09 11:09:37.846 ERROR 9180 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet package hello.servlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @ServletComponentScan // 서블릿 자동 등록 @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } } package hello.servlet.basic; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(name="helloServelet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JRE 버전 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]안녕하세요, 강의 너무 잘 보고 있는 취업 준비생입니다 !인텔리제이를 사용하며 강의를 따라가는 중인데, 윈도우 cmd에서 실행 시 하단 사진처럼 뜨더라고요찾아보니 jre의 버전 문제라고 하는데, UnsupportedClassVersionError 라는 오류라고 하더라고요컴파일된 클래스 파일이 현재 사용중인 jre 버전보다 더 최신 버전으로 컴파일되었다고 하는데, 이것을 해결할 방법이 있을까요 ? 혹은 해결하지 않고 이 버전을 유지하며 이번 강의 내용은 머리로만 이해하는 것이 좋을지 궁금합니다.해결에 도움이 될 수 있을까 하여 구체적인 오류를 남깁니다 !Exception in thread "main" java.lang.UnsupportedClassVersionError: com/example/demo/DemoApplication has been compiled by a more recent version of the Java Runtime (class file version 67.0), this version of the Java Runtime only recognizes class file versions up to 66.0at java.base/java.lang.ClassLoader.defineClass1(Native Method)at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1023)at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:107)at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)at java.base/java.lang.Class.forName0(Native Method)at java.base/java.lang.Class.forName(Class.java:529)at java.base/java.lang.Class.forName(Class.java:508)at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:99)at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 현재 이렇게 실행하니 8080 서버는 들어가지는 것 같은데, hello 라는 부분 클릭 시 넘어가질 않네요 .. 추가로, 실행한 파일을 종료할 때 ls -arlth 라는 것을 입력하시던데, 이 명령어가 종료 명령어가 맞을까요 ..?거북이 마음으로 하나씩 의문들을 해결해나가겠습니다 좋은 강의 제공해주셔서 항상 감사드립니다 !!
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
QItem 생성 방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]QItem이 @Entity로 설정된 클래스 정보를 가져와서 동적으로 생성되는 것으로 이해했습니다.QItem이 생성되는 시점이 애플리케이션 실행 시점인 것 같은데,그렇다면 혹시, 새로운 엔티티를 만들었다면 해당 엔티티로 동적 코드를 작성하기 위해선 필히 애플리케이션을 한번 실행해주고 해야하는건가요??QItem을 생성하기 위한 이유로만 애플리케이션을 실행해야하는 그런 동작이 뭐랄까 좀 부자연스러운(?) 느낌이 드는데 혹시 다른 방법이 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
ViewResolver 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]강사님과 똑같이 코드를 짯는데 저는 실행이 돼지 않습니다.ViewResolver setup!이라고 문구가 발생하는데 어떤 부분을 확인해야할까요강사님과 같은 JAVA 및 HTML 파일 작성실행했으나 500 ERROR 발생파일의 경로 및 소스코드 확인했으나 이상 없음
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
클래스 내의 public 메서드 재사용
1
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
addAttribute 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]현지 저는 사정상 이클립스로 진행을 하고 있는데요model.addAttribute 부분에서model.addAttribute (attributeName:"data", attributeValue:"hello!!"); 로 하면 오류가 나고model.addAttribute ("data","hello!!");로 수정하면 오류가 나지 않습니다 차이가 뭔지 알 수 있을까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
~v5까지를 이용해서 사이드 프로젝트를 해보려는데 막혔습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]v5 프론트 컨트롤러까지 해서 직접 사이드프로젝트를 해보려고 했는데, 서블릿이 인식이 안 되는 것인지 println이 콘솔창에 안 뜹니다 ㅠ package com.weblibrary.controller; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet(name = "frontController", urlPatterns = "/test/*") public class FrontController extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("FrontController.service"); } } 로컬주소/test/some 이런식으로 접속해보는데, 404가 뜨고 콘솔에는 println이 뜨질 않네요 ㅠㅠ
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
질문드립니다.
이렇게 설정되어있고, class파일도 잘 생성된것을 확인했는데, SEVERE: 경로 [/web]의 컨텍스트 내의 서블릿 [jsp]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [JSP를 위한 클래스를 컴파일할 수 없습니다.: JSP 파일 [/sum.jsp]의 [5] 행에서 오류가 발생했습니다.MyUtil cannot be resolved to a type2: pageEncoding="UTF-8"%>3: <%@page import="kr.web.util.*" %>4: <%5: MyUtil my = new MyUtil();6: int sum = my.hap();7: %>8: <!DOCTYPE html>JSP 파일 [/sum.jsp]의 [5] 행에서 오류가 발생했습니다.MyUtil cannot be resolved to a type2: pageEncoding="UTF-8"%>3: <%@page import="kr.web.util.*" %>4: <%5: MyUtil my = new MyUtil();6: int sum = my.hap();7: %>8: <!DOCTYPE html>Stacktrace:]을(를) 발생시켰습니다.org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 이와같은 오류가 발생합니다. 이유가 무엇일까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
모델 정보를 request에 담아서 jsp로 전송? 하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]뭔가 응답을 해주는건 response라고 배웠는데, members같은 데이터를 request에 담는 이유가 뭘까요?? 원래 사용 방법이 그런건 알지만, 이유가 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 코드로 직접 스프링 빈 등록하기 강의 관련 질문입니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서 의존성 주입의 3가지 방법에 대한 내용이 나왔는데요.그 중에서 "setter 주입" 방법의 경우, 만약 MemberController를 예를 들면,스프링 서버가 뜰 때, MemberController 객체가 생성될 때 생성자가 호출되는 건 이해를 하는데, setter 주입 방식은 객체 생성 시 생성자 뿐만 아니라 setter도 같이 스프링에서 호출하는 걸까요? 그리고 위와같이 setter 주입 시 private으로 변경해도 스프링 서버 run하는데는 문제가 없던데 이유가 있을까요? 강의에서는 public으로 setter를 노출시키는게 setter 주입 방식의 단점이라고 하셔서요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
그래들 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]저는 Gradle - Groovy / 3.4.1 / open JDK 17 / 이클립스-STS4로 강의를 설정하려 하는데 계쏙 오류가 나서 질문드려봅니다.메이븐으로 설정할 시에는 위와 같은 옵션 및 이클립스에서 서버 구동까지 문제없이 잘 되는데 그래들로 하는경우 계속 오류가 나서 프로젝트가 설정되지 않습니다.그래들로 할 경우 인텔리제이로 해야하는건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트 생성해서 intellij에서 열었는데 오류
[질문 내용]쌤, 이렇게 프로젝트를 생성했는데, 오류가 납니다. ㅠㅠ뭘 해줘야할까요? 프로젝트 지우고 다시 generate해서 압축 풀고 build.gradle로 열어도 또 똑같은 오류가 납니다 ㅠㅠ!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
#ids.prev()에대해 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 12분에서요 #ids.prev('x')에서 x에들어가는건 th:filed를 따라간다고 하셨는데 지금은 th:field="*{regions}" 잖아요? 근데 th:field="${item.regions}" 라면#ids.prev('item.regions')가 맞는건가요? 어떻게되는건가요? 그리고 체크박스보다 label이 앞에나와도 prev인가요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
질문이있습니다.
이와같이 설정하였는데요, server.xml에도 <Context path="/web" docBase="C:\eclipse-jee-2019-09-R-win32-x86_64\WEB\webapp"/> 이와같이 등록을 해주었습니다. 톰캣을 실행한 뒤 localhost:8081/web으로 접속하는 경우, localhost:8081/web/index.html과 동일한 화면이 출력되어 나옵니다. index2.html의 경우는 localhost:8081/web/index2.html 이렇게 정확하게 명시를 해줘야 index2.html화면이 나오던데요. 기본적으로 localhost:8081/web 를 입력한 경우 index.html이 출력되어 나오는 이유와, localhost:8081/web/index.html해당 url이 localhost:8081/web 와 동일한 동직을 수행하는 이유와 동일하게 수행되는 원리가 궁금합니다. 그리고 localhost:8081/web의 경우 왜 index2.html이 아닌 index.html이이 지정되어 나오는지 궁금합니다.