월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프로젝트 생성 질문있습니다.
plugins { id 'java' id 'war' id 'org.springframework.boot' version '3.2.5' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }에러사항Web Facets/Artifacts will not be configured properlygroovy.lang.MissingPropertyException: Could not get unknown property 'archiveName' for task ':bootWar' of type org.springframework.boot.gradle.tasks.bundling.BootWar. at org.gradle.internal.metaobject.AbstractDynamicObject.getMissingProperty(AbstractDynamicObject.java:85) at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:62)코드를 치지도 않았고 강의 : 서블릿 프로젝트 생성 이부분만 따라했더니 위와 같은에러가 나옵니다. 어떻게 해결해야 하나요?제가 실행을 누르지 않았고 그래들이 자동으로 실행하면서 위와 같은 메세지가 나왔습니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ServletApplication 실행 안됨
현재 HTTP 요청 데이터 - 개요를 듣고 있습니다.강의 초반부인데 ServletApplication 실행이 아래의 오류는 아닌데 서버가 띄어지지 않고 바로 종료가 됩니다 2024-04-19T15:53:01.823+09:00 INFO 17800 --- [servlet] [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 17.0.10 with PID 17800 (C:\Users\uniti\OneDrive\바탕 화면\Developer\Back End\Spring\core\mvc1\servlet\servlet\out\production\classes started by uniti in C:\Users\uniti\OneDrive\바탕 화면\Developer\Back End\Spring\core\mvc1\servlet\servlet)2024-04-19T15:53:01.830+09:00 INFO 17800 --- [servlet] [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"2024-04-19T15:53:03.289+09:00 WARN 17800 --- [servlet] [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed2024-04-19T15:53:03.309+09:00 INFO 17800 --- [servlet] [ main] .s.b.a.l.ConditionEvaluationReportLogger :Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-04-19T15:53:03.364+09:00 ERROR 17800 --- [servlet] [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failedat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1223) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1161) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:202) ~[spring-context-6.1.6.jar:6.1.6]at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6]at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5]at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na]Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServletat org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:62) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-3.2.5.jar:3.2.5]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1257) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:951) ~[spring-beans-6.1.6.jar:6.1.6]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1217) ~[spring-beans-6.1.6.jar:6.1.6]... 16 common frames omittedCaused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServletat java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]... 22 common frames omitted
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
pdf 파일 수정 부탁드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2. 서블릿 pdf 파일에서 HTTP 요청 메시지 로그로 확인하기 부분에logging.level.org.apache.coyote.http11=debug 라고 되어 있어요근데 스프링 3 버전부터는 debug가 아니라 trace로 해야 적용이 되더라구요 그 부분 추가해주시면 다른 분들한테 도움될 거 같아요!
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc1편 model추가 - v3 오류 좀 확인해 주세요
링크 제한 풀어서 다시 질문 드립니다. v3의 회원가입을 실행하면 아래 오류가 뜹니다.localhost 페이지를 찾을 수 없음다음 웹 주소(http://localhost:8080/front-controller/v3/members/new-form)에 대해 발견된 웹페이지가 없습니다.HTTP ERROR 404 frontcontroller의 service가 두번 실행되는거 같습니다. (디버그 출력내용)requestURI = /front-controller/v3/members/new-formcontroller = hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3@71b85ab7requestURI = /front-controller/v3/members/WEB-INF/views/new-form.jsp링크>>https://drive.google.com/file/d/1Tnp-X-Ua_O6pdnICKzPTyrGKdsY4blNe/view?usp=sharing
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
유연한 핸들러 - v5 프로그램이 죽습니다.
v5를 실행하면 아래 메세지를 남기고 프로그램이 죽어버립니다.링크 https://drive.google.com/file/d/14IcS9ki4CY--fXaF37H7_wonu9z67LJ9/view?usp=sharing
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
servlet members 저장
http://localhost:8080/servlet/members/new-form 에서 전송버튼을 눌렀을 때 http://localhost:8080/servlet/members/save 으로 넘어가지 않고새 창에서 file:///Users/.../Downloads/save 로 다운로드 파일로 새로운 url 에서 열리는데이유가 무엇인가요??
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
mvc1편 model추가 - v3 오류 좀 확인해 주세요
몇가지 강의 내용과 다르게 작성한게 있지만, 오류가 나는 이유를 모르겠습니다. 디버그를 해도 잘 진행되는데........v3의 회원가입을 실행하면 아래 오류가 뜹니다.localhost 페이지를 찾을 수 없음다음 웹 주소(http://localhost:8080/front-controller/v3/members/new-form)에 대해 발견된 웹페이지가 없습니다.HTTP ERROR 404 frontcontroller의 service가 두번 실행되는거 같습니다. (프린트 내용) requestURI = /front-controller/v3/members/new-formcontroller = hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3@71b85ab7 requestURI = /front-controller/v3/members/WEB-INF/views/new-form.jsp 링크https://drive.google.com/file/d/1Tnp-X-Ua_O6pdnICKzPTyrGKdsY4blNe/view?usp=sharing
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
URL API 설계에서 form 페이지 접근 시 add 가 들어가는게 일반적인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]리소스 기준으로 설계하는게 좋다고 http 강의에서 말씀해주셔서요그런데 일반적으로 form 페이지 접근은 url 에 add/edit 등을 사용해야 할 것 같긴 합니다
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션2부터의 PPT 강의자료는 어디서 다운 받나요??
섹션2부터의 PPT 강의자료는 어디서 다운 받나요??
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC 작동순서가 맞는지 확인 부탁드립니다!
@Controller @RequestMapping("/springmvc/v3/members") public class SpringMemberControllerV3 { private MemberRepository memberRepository = MemberRepository.getInstance(); @GetMapping("/new-form") public String newForm() { return "new-form"; } } 핸들러 조회: 클라이언트로부터 /springmvc/v3/members/new-form에 대한 GET 요청이 들어오면, 스프링 MVC는 @RequestMapping("/springmvc/v3/members")과 @GetMapping("/new-form")을 통해 이 요청을 처리할 SpringMemberControllerV3 클래스의 newForm() 메소드를 핸들러로 결정합니다.핸들러를 처리할 수 있는 핸들러 어댑터 조회: 스프링은 결정된 핸들러(컨트롤러의 메소드)를 실행할 수 있는 핸들러 어댑터를 찾습니다. 스프링 MVC에는 여러 종류의 핸들러 어댑터가 있으며, 이 경우에는 RequestMappingHandlerAdapter가 사용됩니다.handle(): 핸들러 어댑터는 핸들러 메소드(newForm())를 호출하는 handle() 메소드를 실행합니다.handler(controller) 호출: newForm() 메소드가 호출되어 실행됩니다. 이 메소드는 뷰의 이름을 문자열로 반환합니다. 여기서는 "new-form"이 반환됩니다.ModelAndView 반환: 이 예제에서는 단순히 뷰 이름을 문자열로 반환합니다. 스프링 MVC는 이 문자열을 바탕으로 ModelAndView 객체를 내부적으로 생성하며, 모델 데이터는 비어 있고, 뷰 이름은 "new-form"입니다.ViewResolver 호출: 반환된 뷰 이름 "new-form"을 기반으로 ViewResolver가 호출됩니다. ViewResolver의 역할은 뷰 이름을 실제 뷰 객체로 변환하는 것입니다. 스프링 MVC에서는 InternalResourceViewResolver 등 다양한 ViewResolver 구현체를 사용할 수 있으며, 이는 보통 applicationContext.xml 혹은 @Configuration 설정 클래스에서 설정됩니다.View 반환: ViewResolver는 요청된 뷰 이름에 해당하는 실제 뷰 객체를 찾아 반환합니다. 예를 들어, JSP를 사용하는 경우, "new-form" 이름은 /WEB-INF/views/new-form.jsp 파일에 해당하는 JstlView 객체로 해석될 수 있습니다.render(model) 호출: 뷰 객체는 ModelAndView에서 제공하는 모델 데이터(이 예제에서는 비어 있음)를 사용하여 뷰를 렌더링합니다. 렌더링 과정에서 최종적으로 클라이언트에게 보낼 HTML이 생성됩니다.HTML 응답: 생성된 HTML이 클라이언트에게 응답으로 전송됩니다. 클라이언트는 이 HTML을 받아 브라우저에서 렌더링합니다. MVC의 대략적인 개념을 위와 같이 이해하면 될까요? (gpt가 정리해준건데 정확한지 모르겠습니다 ㅠ)
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable을 이용한 getMapping 사용시
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Get 요청 특성상 URL에 개인정보가 들어가게 되면 보안상에 큰 문제가 없을까요? 실무 환경에서도 유저 ID같은 정보를 전달할때 PathVariable을 사용하는지 궁금합니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션2-2. Hello 서블릿 진행 중 WhiteLabel 에러 관련 질문입니다.
섹션 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"); } }같은 문제 관련하여 질문 글들 확인 및 시도해봤습니다만 해결이 되지 않았습니다.콘솔창에도 아무것도 출력되지 않네요.답변주시면 감사하겠습니다!
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam, @ModelAttribute 생략 규칙을 개발자가 생각하면서 개발해야 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 내용이 개발자가 고려할 건 아니고, 그냥 스프링이 내부적으로 동작하는데 있어서 규칙을 지정한 것이라고 이해했는데 맞나요?개발자가 이것을 구분하면서 개발해야 하는지에 대해 생각해보다가, 굳이 그럴 필요는 없는것 같아서요! 그냥 스프링의 내부 동작 방식으로 이해하면 되겠죠ㅎ?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프로젝트 소스코드 실행 시 404 에러 발생
안녕하세요 현재 JSP로 회원관리 웹 애플리케이션 만들기를 수강 중인데index.html이나 jsp 파일이 웹에 뜨지 않습니다.올려주신 소스코드 그대로 실행해보아도 404 에러가 발생합니다.소스코드에서 에러가 발생하므로 파일은 올리지 않았습니다.에러 내용은 아래와 같습니다. 2024-04-13 00:36:39.313 DEBUG 8684 --- [nio-8080-exec-5] o.apache.coyote.http11.Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@16a42a0c:org.apache.tomcat.util.net.NioChannel@5509b3ab:java.nio.channels.SocketChannel[connected local=/0:0:0:0:0:0:0:1:8080 remote=/0:0:0:0:0:0:0:1:57012]], Status in: [OPEN_READ], State out: [CLOSED] 2024-04-13 00:36:39.313 DEBUG 8684 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing request java.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1322) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1232) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:791) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:359) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:887) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.43.jar:9.0.43] at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na] 2024-04-13 00:36:39.315 DEBUG 8684 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@59a6df3:org.apache.tomcat.util.net.NioChannel@2648df3d:java.nio.channels.SocketChannel[connected local=/0:0:0:0:0:0:0:1:8080 remote=/0:0:0:0:0:0:0:1:57013]], Status in: [OPEN_READ], State out: [CLOSED] <- urlPatterns로 지정해놓은 url은 실행됩니다
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러에서 리다이렉트를 해주는건 ssr을 이용할때만 고려하면 되는 건가요?
Ssr을 이용할때는 직접 뷰를 이동하는 거니 백엔드 개발자가 리다이렉트도 처리를 해주어야 하는데 csr을 이용하여 json으로 통신할때는 백엔드 개발자는 데이터만 잘 넘겨주는것이 끝이기 떄문에 리다이렉트 관련 내용은 프론트 개발자가 해결하는 부분 인가요?그리고 @ModelAttribute와 파라미터에 사용되는 Model 객체에서 @ModelAttribute 는 Item 클래스의 멤버 변수를 세팅해주는것이기 때문에 csr을 이용하여 웹 개발을 할 때 return item 을 하여 객체가 json으로 변환되어 클라이언트에게 전달되니 @ModelAttribute 는 csr을 이용할때도 사용되는 어노테이션이고 Model객체의 model.addAttribute()는 ssr의 뷰 영역에서 사용될 데이터를 넘겨주는 기능이라서 csr을 이용할때는 사용을 안하나요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링의 Model 를 뷰로 전달하는 원리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링이 제공하는 Model 을 사용할때, 인자로 받아와서 사용하는 것을 보았습니다. 예전에 "스프링 없이 mvc 패턴 구현하기" v4 에서는 모델값을 요청 객체에 담아서 뷰.render(req, res) 이런식으로 넘겨주었는데요, 이것도 유사한 방식으로, 스프링에 의해 모델 객체가 자동으로 요청 객체에 담겨서 뷰로 전달되는걸까요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
[공유]스프링 3버전 부터는 강의내용의 jstl 버전이 정상동작하지 않습니다
mvc -> member 목록 조회시 500 에러나시는분들..jsp 내용은 그냥 지나쳐도 된다하시지만.. 에러나는게 신경쓰여서 찾아보니 gradle 의존성에 넣은 jstl 버전이 낮아서 500에러를 뱉더군요 의존성을 아래와 같이 변경하시고 gradle 재시작, 프로젝트 다시 빌드하시면 정상동작합니다. //JSP implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl:3.0.1' implementation 'jakarta.servlet:jakarta.servlet-api' implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HttpEntity를 특별히 사용해야만 하는 상황이나 사용할떄의 장점이 있나요?
지금 설명으로는 @RequestBody만 사용하는게 보기도 깔끔하고 반환도 스트링 형, 객체형 다 가능해서 유연성이 더 높은것 같은데 특별히 HttpEntity만을 사용하는 이유가 있나요?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실무에서 http에 텍스트를 보내고 받는 경우가 있나요?
바디에 JSON 데이터를 담아서 통신는게 대부분인것 같은데 실무에서 텍스트를 주고 받는 경우가 있나요? 그리고 수업 내용이 점진적으로 버전이 증가하면서 이해를 도와주시는데 최종버전이 실무에서 가장 많이 사용되고 지향하는 방법이라 최종 버전만 이해하여도 큰 문제는 없나요?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Mvc구조에서 뷰를 반환하지 않고 json을 반환하려면 어디서 구조 변경이 일어나나요?
스프링 Mvc구조를 설명해주실때 4번 핸들러 호출 이후 5번 ModelAndView를 반환한다고 되어 있는데 모델과 뷰애서 모델은 ssr에서 사용할 데이터들이 담겨 있는 모델에서 데이터를 꺼내어서 타임리프나 jsp 에서 사용할 수 있도록 데이터가 담긴 박스를 반환해주는 것이고 뷰는(타임리프를 사용한다고 할 때) 어떤 html에 모델을 넘겨줄것인지 결정해주는 부분으로 이해하였습니다. 이 방법은 앱 클라이언트처럼 json형식으로 데이터를 반환해야 하는 클라이언트를 이용할 때는 사용하지 못하는 방법으로 이해가 되는데 (json데이터를 요구하는 클라이언트에게는 뷰를 반환하여도 의미가 없는 데이터 이기 때문에) 어디서 구조를 변경해야 json 데이터를 반환해 줄 수 있는건가요?