묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
v1 부터 v5 까지 배웠는데 복습 방법 질문이요
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]지금 배우는 학습이 나중 수업에 이해를 돋기 위해서 배운다고 하시는데복습할 때 어느 정도 까지 공부를 해야하는지 궁금합니다.코드를 보고 이 로직이 어떻게 구동되는지 이해 할 수 있는 정도로 복습을 끝내도 되는지 알고 싶습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
StringUtils.hasText를 쓰는 이유가 궁금합니다 !!
item.getItemName() == null 로 써도 될거 같은데 hasText를 쓴 이유는 뭔가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findAll 메서드의 리턴값
보통은 새로 생성자를 만들어서 리턴값에 return store;이런식으로 사용했었는데따로 생성자를 만들지 않고new ArrayList<>(store.values()) 라고 사용해도 위와 같이 그대로 리턴이 되는건가요?ArrayList의 타입은 따로 설정해주지 않아도 store 자체가 Map 형태를 가지고 있어서 알아서 Long,Member의 형태로 ArrayList가 생성이 되는건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
members.jsp에서 jstl를 사용하려고 하면 500번에러가 .. ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]jsp는 잘 인식하는데, jstl를 사용하기 위해 맨 위에 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 을 추가하면 바로 500번 에러가 납니다. 디펜던시는 잘 추가한거 같은데 ㅠ_ㅠ 왜그럴까요 ?? 에러코드는 두개가 바뀌어가며 나옵니다.org.apache.jsp.WEB_002dINF.views.new_002dform_jspjava.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.new_002dform_jsp이거와 하나는 사진처럼요 ..,implementation 'javax.servlet:jstl' implementation group: 'javax.servlet', name: 'jstl', version: '1.2' implementation "org.apache.tomcat.embed:tomcat-embed-jasper"
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Getter 없이 객체의 값을 출력하는 방법
객체 지향을 공부하다 getter/setter는 은닉성을 위해 지양하는게 좋다라는 글을 봤는데요..toString()을 오버라이딩 하는 것이 맞지 않나 생각했는데 toString()은 출력을 위한 메소드가 아니라 디버깅을 위한 메소드기 때문에 디버깅을 할 때만 사용하는 것이 좋다라는 말들이 있어서요 ..그러면 이럴 경우에는 DTO를 사용하는 것이 최선인가요?또한 getter가 없다면 dto에 어떻게 정보를 담아 View, Controller의 계층을 이동할 수 있는 건가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
V1, V2차이 그리고 @ModelAttribute 기능에 대해서 질문이에용 ㅠㅠ
V1, V2 에서 값을 잘못 입력했을때 addForm으로 넘어가잖아요 V1은 잘못 입력한 데이터가 유지되는데 V2는 왜 유지가 되지 않나요?V1@PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { //검증에 실패하면 다시 입력 폼으로 if (!errors.isEmpty()) { log.info("errors = {} ", errors); model.addAttribute("errors", errors); //model.addAttribute("item", item) <<자동추가되는거아님? return "validation/v1/addForm"; }V2public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증에 실패하면 다시 입력 폼으로 if (bindingResult.hasErrors()) { log.info("errors={} ", bindingResult); //model.addAttribute("item", item)<<자동추가되는거아님? return "validation/v2/addForm"; }V1,V2 모두 @ModelAttribute 애노테이션에 의해서 model.addAttribute("item", item) 이 추가 된 후 item이 addForm으로 넘어가서 둘 다 값이 유지 돼야 된다고 생각 하는데.........제가 어디서 놓치고 있는지 모르겠습니당 ㅠㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DI 의존성 주입 질문
안녕하세요 DI 관련해 질문이 있습니다.```java @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } } private final MemberService memberService; final 키워드를 붙여주는 이유가 궁금합니다.memberSevice 를 변경하지 못하게 하는 이유가 무엇인가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 데이터 JPA 질문
@Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); return new JdbcTemplateMemberRepository(dataSource); return new JpaMemberRepository(em); }안녕하세요 위 코드를 JPA 사용할 때까지 계속 사용했는데 스프링 데이터 JPA 사용할 때는 왜 주석 처리 하는지 궁금합니다. 좋은 강의 해주셔서 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ModelAttribute 에 관해서 궁금한 점이 있습니다!
1.ModelAttribute의 기능 중에서요청파라미터처리model 추가후 view로 데이터전달여기서는 1번 역할만 수행하는 건가요?2번 기능처럼 redirect:/basic/items/{itemId}에 model값을 넘길 수 없나요? 2번 기능은 1번 기능이 작동 한 다음에 쓸 수 있는 기능이죠?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradle 파일을 github에 push해도 상관없나요?
안녕하세요 좋은 강의 감사합니다!공부한 내용을 비공개 레포지토리에 업로드 하려고 합니다.아래 파일들이 .gitignore 파일에 추가안되있는데 이 파일들은 그대로 레포지토리에 업로드해도 괜찮은 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
로컬 페이지 아이콘
로컬 페이지 켰을때 스프링 아이콘이 아니라 일반 아이콘이 뜹니다.질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실무에서 사용하는 테스트케이스 질문입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]안녕하세요. 테스트케이스 작성 중 실무에서는 테스트 케이스를 어떻게 작성하는지 궁금합니다!현재 저는 3년차 C# 개발자인데 이직을 위해 영한님 영상을 보면서 공부중입니다. 사이드 플젝에서 테스트케이스를 작성하려고 하는데Q1.JPA를 사용하는데 실무에서도 테스트 케이스는 서비스만 작성하나요?Q2.컨트롤러도 테스트 케이스를 작성한다면 AssertJ는 어떤식으로 컨트롤러를 테스트 하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
쿠키
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의를 진행하면서 테스트중 계속 회원가입을 하고 쿠키가 넘어가는 현상이 있었습니다. 기존 크롬에 쿠키를 다 지우고 인텔리제이를 끄고 난 후 부터는 정상 작동을 하였는데 혹시 어떤 이유 때문에 그랬는지 알 수 있을까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestResponseBodyMethodProcessor의 역할
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요~요청 매핑 핸들러 어뎁터 구조 16:35 부분 들으면서제가 이해한 게 맞는지 궁금해서 질문 드려요! 요청 메서드에 @RequestBody 또는 @ResponseBody가 있는 경우 RequestResponseBodyMethodProcessor클래스가 호출되며 이 클래스가 ArgumentResolver의 역할을 하기 때문에 강의자료에RequestResponseBodyMethodProcessor (ArgumentResolver)이렇게 써주셨다고 이해했는데요.RequestResponseBodyMethodProcessor클래스가 Response 처리도 하기 때문에 ReturnValueHandler의 역할도 같이 한다고 이해해도 되나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Runtime Error log 관련 질문
log를 보면 Runtime error log가 2번 찍히는데,-> 첫번째 요청에서, errorEx() 컨트롤러에 의해 throw new RuntimeException("예외 발생!");-> 첫번째 요청에서, error 발생 이후 WAS로 역전파 되는 과정에서 filter에 의해} catch (Exception e) { log.info("EXCEPTION!!"); throw e;총 2번 찍힌다고 생각했습니다.그런데 Log의 순서를 보면 컨트롤러 내부의 printErrorInfo가 호출되는 과정에서 runtime error Log가 찍힙니다.이것이 단순히 log가 찍히는 속도의 차이에 의한 것인지,아니면 실제로 다른 곳에서 error가 발생해서 log가 찍힌것인지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
SpringMemberSaveControllerV1의 process() 파라미터
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요! SpringMemberSaveControllerV1의 process()메서드 파라미터에 대한 질문인데요Front Controller를 사용해서 구현할 때서블릿 종속성을 배제하기 위해 Front Controller에서HttpServletRequest의 인스턴스에 담긴 값을 일부러Map에 담아 실제 Cotroller로 옮겨줬다고 이해하고 있는데 @RequestMapping을 사용하면서 다시HttpServletRequest를 사용하는 이유가 궁금합니다. FrontController역할을 하는 Dispatcher가 존재하여 구조는 변하지 않았으나 @RequestMapping을 사용하면 매핑되는 RequestMappingHandlerMapping의 특징으로 URI 요청이 HandlerMapping까지 넘어오기 때문에 일부러 Map에 담아줄 필요없이그대로 HttpServletRequest 인스턴스를 사용하는거라고 생각했는데 맞나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 코드로 직접 스프링 빈 등록하기
스프링 빈 만드는 법@Controller@Configuration + @Bean
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
argument resolver 관련 질문
LoginMemberArgumentResolver의 supportsParameter 메소드에서 다음 코드를 통해 @Login 어노테이션이 붙은 파라미터의 타입을 체크한다고 강의에서 설명해주셨는데요.boolean hasMemberType = Member.class.isAssignableFrom(parameter.getParameterType());위 코드는 파라미터가 Member의 자식 타입인지 조사하하는 건데 그럼 @Login 어노테이션이 Member 자식 타입 파라미터에 붙는 경우 ClassCastException이 발생할 것 같습니다. 따라서 아래와 같이 쓰는 게 맞는 것 같은데 아닌가요?boolean hasMemberType = parameter.getParameterType().isAssignableFrom(Member.class);
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC패턴 적용 동영상 중 똑같이 했는데 에러페이지가 떠서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.MVC패턴 - 적용15분 07초 의 내용인데요.. 똑같이 작성 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 성공 <ul> <li>id= <%=((Member)request.getAttribute("member")).getId()%> </li> <li>username= <%=((Member)request.getAttribute("member")).getUsername()%> </li> <li>age= <%=((Member)request.getAttribute("member")).getAge()%> </li> </ul> <a href="/index.html">메인</a> </body> </html> 에러페이지가 나와요 ?? 몇번을 확인해봐도 15분 07초 내용과 똑같이 작성했는데 그러네요..그런데 ${ } 로 작성해보면 또 아래와같이 재대로 나와요<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 성공 <ul> <li>id= ${member.id} </li> <li>username= ${member.username} </li> <li>age= ${member.age} </li> </ul> <a href="/index.html">메인</a> </body> </html>질문 : 위에 request.getAttribute로 가져올때 분명 강사님은 제대로 실행했는데 전 왜 똑같이 따라했는데 안되고 ${ } 방법으로 했을때만 제대로 실행될가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
form-start과녈ㄴ하여 여쭙습니다.,
안녕하세요.Form start를 처음 시작하는데 있어 어려움이 있어서 여쭙습니다.강의 목차 상에서 소스코드 다운mvc2_source_v20210624\__MACOSX\mvc2\form-start 해당 경로 파일에서build,gradle 파일이 아닌가요여러차례 오픈해보았는데 하기와 같은 화면만 조회되고 프로그램이 실행되지 않아서 여쭙습니다.. ㅠㅠ