30%
69,300원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable 이 생략되도 문제가 없는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요. 스프링 기초부분 다잡으려고 다시 강의 보고 있습니다. @GetMapping("/{itemId}/edit")public String editForm(@PathVariable Long itemId, Model model) { Item byId = itemRepository.findById(itemId); model.addAttribute("item", byId); return "basic/editForm";}@PostMapping ("/{itemId}/edit")public String update(Item item) { itemRepository.update(item.getId(), item); return "redirect:/basic/items/{itemId}";} Post로 update를 진행할 때, 매개변수에 @PathVariable Long itemId를 선언하지 않아도 문제없이 잘 작동합니다.@PathVariable 의 이름과 파라미터의 이름이 같아서 그런가해서 {itemIdTest} 와 같이 매개변수를 변경하여도 동일하게 정상 작동합니다.궁금증이 생겨 문의드립니다. 감사합니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러와 핸들러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이번 강의 예제에서SpringMemberListControllerV1SpringMemberFormControllerV1SpirngMemberSaveControllerV1위 세 가지 클래스가 Controller이고세 클래스 안에 @RequestMapping이 붙은 메서드가 handler로 이해했습니다. 이전 강의까지는 핸들러와 컨트롤러를 동일하게 생각하고 강의를 들었는데 이번 강의를 듣고 보니 차이가 있는 것 같아 컨트롤러와 핸들러의 차이점이 궁금해서 질문드립니다.
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
request와 response 방식의 차이..
지금까지 이해한 걸로 따지면클라이언트가 서버에 request(요청)하는데 그 요청값을 가져오기 위해 요청 파라미터, HTTP 메시지 바디를 통해 직접 조회하는걸로 이해했고이제 서버가 다시 클라이언트에게 response(응답)을 해주는 과정에 대해 알아가는 과정인거 같습니다. 불러오는 방식이라던지 조회같은 경우가 차이가 없어보여서 뭐가 다른건지 궁금해서 질문드립니다. 왜 응답도 저렇게 데이터를 가져와야하는거지.. 응답은 그냥 200 OK같은거 보내주는거 아닌가.. 하고 정리가 안되어 있는거 같습니다.제가 아직 http에 대해 지식이 부족한걸까요..?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
수업 자료 오타
해당 강의 수업 자료 중 5. 스프링 MVC - 구조 이해.pdf 에서 service 오타가 있네용 😋
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트케이스 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 강의 잘 듣고 있는 학생입니다.빌드 및 실행은 intellij 로는 안되고 gradle로 해야 실행이되고,테스트케이스실행은 gradle이 아닌 intellij로 적용해야 실행이 되는데 이유가 뭔지 궁금합니다.
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
인텔리제이에서 실행이 안돼요
===============================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]인플리제이에서 실행이 안돼요
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HttpServletRequest 동일 인스턴스 질문
View 분리 - V2 강의에서 질문 사항이 있습니다.아래 MyView 객체에서 사용하는 HttpServletRequest request 라는 인자값과MemberSaveController에서 사용하는 HttpServletRequest request가 디버깅에서 확인하면 동일한 인스턴스인것으로 확인됩니다.이는 HttpServletRequest 도 서블릿 객체이고 싱글톤으로 관리되어서 동일한 인스턴스로 공유되는 것일까요?아니라면 해당 소스에서 확인할때 두개의 인스턴스가 동일한 이유가 무엇일까요?@6666번으로 동일한 인스턴스 객체였습니다.public class MyView { private String viewPath; public MyView(String viewPath) { this.viewPath = viewPath; } public void render(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request,response); } }public class MemberSaveControllerV2 implements ControllerV2 { MemberRepository memberRepository = MemberRepository.getInstance(); @Override public MyView process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username,age); memberRepository.save(member); request.setAttribute("member",member); return new MyView("/WEB-INF/views/save-result.jsp"); } }
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
logging.level.org.apache.coyote.http11=debug 설정 적용이 안되는 것 같습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 내용대로 logging.level.org.apache.coyote.http11=debug 설정을 적용하였는데 콘솔에 관련 로그가 출력이 안됩니다. 스프링부트 버전업 이후에 더이상 해당 설정을 지원 안하는걸까요?스프링부트 버전 : 3.2.3패키징 : War자바 버전 : 17의존성 : 강의에 나온대로 추가했습니다빌드 및 실행, 테스트 : 인텔리제이요청 url : http://localhost:8080/hello?username=김아래는 설정 적용 후 로그 출력 사진입니다
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
터미널에서 spring 프로젝트 실행 관련 질문입니다.
tomcat 설치 후 spring 프로젝트를 터미널에서 "mvn tomcat:run" 명령어로 실행하는데,프로그램 자체는 실행되지만 웹에 접속되진 않습니다.intellij에서 tomcat server 환경에서 접속할땐 잘 실행이 되었는데,터미널에서 실행하려니 잘 되지가 않습니다.다음이 spring 웹서버 링크에 접속했을때의 에러인데, 찾아보니 "javax.servlet-api의 버전이 맞지 않아서 발생한다." 라고 하면서 <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency>를 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency>로 바꾸어주라는 내용을 보고 시도해보았지만 잘 되지 않았습니다.'혹시 tomcat를 켜두고 "mvn tomcat:run" 명령어로 서버를 시작해야하나?' 라는 생각을 하고선 이또한 진행해봤지만 이미 8080서버가 열려있다는 문구가 뜨면서 오히려 실행 도중에 멈추더라구요. intellij 외의 환경에서도 빌드가 가능해야할것같은데 고민입니다. Intellij에서 해당 프로젝트를 실행할때 이용한 Tomcat server의 설정을 함께 첨부합니다.
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
eofexception
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 섹션 2 헬로서블릿 강의를 듣던중 로그 출력하는 부분에서 eofexception이 떠서 질문드립니다.이쪽부분(server port 8081로 변경했습니다!)https://drive.google.com/file/d/1lxxwrNhSiYF06bRP4Ue6chq787NVAXuc/view?usp=drive_linkhttps://drive.google.com/file/d/1lxxwrNhSiYF06bRP4Ue6chq787NVAXuc/view?usp=drive_link다른 분들도 비슷한 질문이 많은 것 같아 확인해보았으나 , 잘 적용이 되지 않았습니다. implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' 이 의존성을 추가해도 잘 되지않았습니다. javax->jakarta로 변경
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
public FrontControllerServletV1() {} 생성자 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] public FrontControllerServletV1() 생성자가 실행되면,생성자 내부에서 url 주소와 컨트롤러가 매핑되도록 한다는 것은 알겠습니다. 근데 해당 (기본) 생성자를 실행시키려면,어디선가 new FrontControllerServletV1(); 라는 코드를 적어줘야 하지 않나요? 아래 코드를 실행한 결과, 서버클 껐다 킬 때마다 생성자가 1회 실행되던데,왜 자동으로 1회 실행되는거죠?그 어디에도 new FrontControllerServletV1(); 라는 코드는 없는데 말입니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
properties logger 사용문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] <스프링 3.x.x 버전을 사용하고있습니다.>강의를 잘 따라가고 있었는데 properties 부분에서 막힙니다. 왜 로그가 안뜨는지 궁금합니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
FrontController View/Data Flow 관련 질문입니다.
아래 이미지는 제 식대로, FrontController에 대해서 정리하고 이해 했는데 잘 이해 한 건가요 ?
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable 질문 입니다.
@PathVariable 어노테이션 사용 시 위와 같이 GetMapping의 {userId} 와 변수 명이 같으면name="userId" 옵션을 생략해도 된다고 말씀해주셨는데 옵션을 생략하면 500 에러가 나고,옵션을 작성해주면 성공하는데 이런 경우에는 뭐가 문제인가요?
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp파일의 html 태그에 대해 궁금한 것이 있습니다.
강의록을 보면 이전의 MemberFormServlet 코드에서는 응답 메시지 상단에 <!DOCTYPE HTML>을 명시해주었는데, 왜 이번 jsp에서는 html 태그 위에 <!DOCTYPE HTML>를 명시해주지 않아도 정상적으로 동작하나요?https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode위에서 <!DOCTYPE HTML>는 브라우저한테 어떤 document 타입을 사용하는지를 알려주기 위해 반드시 최상단에 명시해야 한다고 되어 있습니다. 만약 이것을 명시하지 않으면 quirk mode로 동작이 되서 현재 널리 채택된 full-standard mode와 다르게 렌더링될 수 있다고 되어있습니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
WebMvcConfigurer에 대해서 궁금합니다.
@Configuration @RequiredArgsConstructor public class WebMvcConfig implements WebMvcConfigurer { private final AppConfig appConfig; @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) { resolvers.add(new AuthResolver(appConfig)); } }안녕하세요 제가 지금 프로젝트를 하나 하고있는데요이 코드에서resolver.add()를 하면 어떻게 되는건지 궁금합니다.AuthResolver에 대한 의존성을 추가해주는 코드인가요?resolvers.add()의 동작방식이 궁금합니다.그리고 resolver의 정확한 의미가 뭔지 궁금합니다
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션4_Model추가 V3 강의 질문 입니다.
섹션4_Model추가 V3 강의 내용 중FrontControllerServletV3 클레스 에서 해당 render 메서드의 파라미터 mv.getModel()에는 createParamMap 메서드에서 만들어진 paramMap? 즉 key, value로 생성된 모든 request 값이 들어가고, view.render(mv.getModel(), request, response); 메서드 내부에 modelToRequestAttribute 메서드는 위에서 넘겨준 paramMap을 다시 request에 새팅해주는게 맞나요? 어질 어질 하네요.. ㅜㅜ
- 미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
was 장애 시, 기본 에러페이지를 커스텀 가능한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.해당 영상을 보고 나서 개발 하는 중 궁금점이 생겨 질문드립니다.WAS가 죽으면(=서버가 과부하가 되거나 어떤 요인에 의해 다운될 경우) WAS가 표출해주는 에러페이지를 보여주지 못하고 (templates 파일은 내부적으로 was만 접근 가능하기 때문)톰캣에 기본 내장된 에러페이지를 보여준다라고 이해했습니다.이 때, 톰캣이 보여주는 내장된 에러페이지는 에러코드 및 톰캣 버전 등 정보를 가지고 있어 보안상 위험하다고 판단이 되었습니다.이러한 경우 정적 소스를 처리할 수 있는 web server에서 개발자가 커스텀한 에러페이지를 표출할 수 있도록 해야 될 거 같은데, 이게 가능한지 , 어떻게 설정을 해야하는지 궁금합니다.또한 불가능하다면 어떤 다른 방식으로 위의 문제점을 해결하는지 궁금합니다. 감사합니다.
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
test 실행이 안됩니다
에러문구는 이렇게 뜨고build.gradle은 이렇게 되어있습니다 여기 문제인거 같은데 방법을 못찾겠네요
- 해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
forward 흐름을 제가 생각한게 맞는지 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@WebServlet(name = "mvcMemberServlet", urlPatterns = "/servlet-mvc/members/save") public class MvcMemberServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, age); memberRepository.save(member); //Model에 데이터를 보관. request.setAttribute("member", member); String viewPath = "/WEB-INF/views/save-result.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request,response); //-> 요청의 제어권을 save-result.jsp에게 넘김 즉 요청의 흐름이 넘어감 } }그러고 나서 jsp로 흐름이 넘어오고<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 성공 <ul> <%-- 이 부분을 request에 저장된 member 파라미터를 통해 값을 넣고--%> <li>id=${member.id}</li> <li>username=${member.username}</li> <li>age=${member.age}</li> </ul> <a href="/index.html">메인</a> </body> </html> <%--이 부분에서 최종적으로 브라우저에게 응답이 나간다.--%>이렇게 이해했는데 맞을까요 ..?맞다면 처음 클라이언트의 요청을 받은건 서블릿이고 최종 응답을 해준것은 jsp인가요?