묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
consumes, produces 속성 질문
consumes 속성은 클라이언트가 요청한 헤더를 제한하는 거고, produces 속성은 클라이언트에게 응답할 만들어진 응답의 헤더를 제한하는 것인가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@Controller @RestController 차이
@Controller는 반환 값이 String이면 뷰 이름이 반환되는 것으로 인식하고 뷰를 찾고 랜더링되고, @RestController는 뷰를 찾아 렌더링하지 않고 메시지 바디에 바로 입력되서 클라이언트에게 보내진다라고 이해했습니다. 그렇다면 @RestController사용하게 되면, 주로 언급하신 Spring MVC 플로우(디스패처 서블릿을 중간에 놓고, 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버 등등)에서 뷰에 관련한 플로우가 생략되는 거라고 보면 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문드립니다
(사진)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
로드맵 선택에 있어서 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]김영한선생님 로드맵이 jpa로드맵이랑 스프링로드맵이 있는걸로 알고있는데 두개의 로드맵을 다 들으면 좋겠지만 빠르게 취준을 하고싶은 욕심 때문에 두개의 로드맵 중 하나만 듣고 취업준비를 하고싶습니다. 어떤 로드맵이 더 취준용으로 좋을지 추천 받고 싶습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThat을 사용할때 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]처음 강사님께서 save 메서드에서는 @Test public void save(){ Member member = new Member(); member.setName("Spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertThat(member).isEqualTo(result); }처럼 assertThat(member) 를 넣고 그 다음 isEqualTo(result)를 넣어 사용하셨는데,이후에 findByName 에서는@Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring2").get(); Assertions.assertThat(result).isEqualTo(member1); }이처럼 result가 먼저 나오고 그 다음 member를 넣어 사용하십니다.혹시 무슨 차이일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
아이디 중복오류
안녕하세요 , 김영한 강사님! 혹시 , 아이디나 닉네임 혹은 비밀번호와 같은 유일성이 보장되어야 하는 필드는 중복 오류를 검사할때 DB 연동까지 필요한 검증인것이죠? 혹시 이런 검증은 DB 강의 부분에서 따로 강의에서 나오는 부분이 있는지 궁금합니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
타입에러-bindingResult
안녕하세요, 아래에 다른분께서 질문하신 내용의 답변을 토대로 다시 궁금증이 생겨 여쭙니다. 타입에러가 아닌 상태에서 바인딩이 된 상태에서 필드오류가 발생한다면 bindingResult 의 fieldError에 오류내용이 담기는것은 이해했습니다.만약 , 타입에러가 난다면 바인딩 이 안되는데, 이부분도validation 과 마찬가지로 스프링이 필드오류보다 먼저 binding result 에 오류값이 담기나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello-spirng-0.0.1-SNAPSHOT.jar가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.java jdk 버전 확인 21gradle 버전은 8.5입니다.빌드 설치 후 jar 실행하면 안되네요.다른 질문에 답변으로 환경변수 설정이 있길래 링크에 적힌 대로 다시 다 확인했는데도 안됩니다. 혹시 다른 방법이 있을까요?https://minstar0410.tistory.com/3
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ControllerV4HandlerAdapter 클래스 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이 코드에서 이 부분을 보면강사님께서 "모델이랑 뷰를 셋팅한다"라는 식으로 말씀하셨습니다.이때, 뷰를 셋팅한다 => 컨트롤러에 맞는 url을 넘겨줘서 웹 페이지를 보여준다 라고 이해를 했습니다.하지만, "모델을 셋팅한다"라는 의미는 무슨 말씀이신지 잘 이해가 안됩니다. 설명 부탁드립니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실행버튼
프로젝트 생성 강의 따라하는 과정에서 main 메서드 실행하려는데 실행버튼이 활성화 되지 않습니다java 17.0.9 , springboot 3.2.1 로 설치했는데저는 setting 화면부터 뭔가 다른 분들과 다르게 나오네요비슷한 질문 찾아봐도 저같은 케이스는 안보여서 질문남깁니다 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jar 실행이 안 돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]gradlew.bat, gradlew build까지는 완료했습니다.그런데 jar 실행만 하면은 아래와 같은 에러가 뜹니다 ㅠㅠ Error: LinkageError occurred while loading main class org.springframework.boot.loader.launch.JarLauncher java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/launch/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp 라이브러리 적용 안되는 현상
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]라이브러리 다운로드 로딩창도 확인하고, 다운로드 받아진 것으로 보이는데 jsp 파일이 생성되지 않습니다.new 로 생성할 때 jsp 가 보이지 않아서 file 로 new-form.jsp 를 입력해서 만들었는데도 jsp가 생성되지 않습니다. (강사님과 아이콘도 다르고 jsp 내부의 태그가 삽입되지 않은 빈 파일이 열립니다.)인텔리제이 무료버전이라 이런걸까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Map이 뭘까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.제가 자바 로드맵을 5%남기고 전부 들었는데, 남아있는 강의에도 Map에 대한 강의는 없었는데, 이후에 추가되는것일까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ControllerV4가 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요."MemberFormControllerV4에서 모델을 생성할 필요가 없다. 왜냐하면 프론트 컨트롤러에서 모델을 다 만들어서 넘겨준다." 라고 강사님께서 말씀하셨습니다. 그 이후에 ,FrontControllerServletV4에서 아래와 같이 작성하면서 model을 넘겨줬습니다.질문 1.이때, paramMap이랑 model이 의미하는게 무엇인가요?질문 2.또한, 강사님께서 말씀하신 모델을 각 컨트롤러에서 만들지 않고 FrontControllerServletV4로 넘겨주는 이유는 무엇인가요? 그리고 여기서는 "ModelView를 따로 만들어 줄 필요는 없고 파라미터에서 username과 age를 받아서 그냥 member에 넣어주면 된다" 라고 말씀하셨습니다. 질문 3"ModelView를 따로 만들어 줄 필요는 없고"가 무슨 의미인지 잘 이해가 안됩니다.Model을 FrontControllerServletV4에서 만들어 넘겨주기 때문에 model을 따로 생성하지 않아도 되고, view를 return해준다라고 이해하면 옳게 이해한 것인가요? 우선 저는 아래와 같이 이해를 했습니다.1.컨트롤러 조회 => 어떤 비지니스 로직을 수행할 것인지에 따라 Controller 선택2.호출(paramMap,model) => 선택된 Controller에게 paramMap(=url)과 model(= DB, 데이터를 저장해두는 저장소 객체)를 넘겨주고, 비지니스 로직을 수행함3.ViewName 반환 => 비지니스 로직을 수행하고, 보여줄 웹 페이지 화면의 url의 논리 주소를 넘겨줌4,5,6번 => viewName에 맵핑이 되는 view를 반환하고, model(데이터)를 이용하여 웹 페이지 화면에 보여줌
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
SpringMemberControllerV3 질문입니다!
public ModelAndView save(HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, age); memberRepository.save(member); ModelAndView mv = new ModelAndView("save-result"); //데이터를 직접 view에 전달하는방식 // mv.getModel().put("member", member); mv.addObject("member", member); return mv; } @GetMapping public String members(Model model) { List<Member> members = memberRepository.findAll(); model.addAttribute("members", members); return "members"; } } 위 2개의 코드는 결국 HandlerAdapter에 역할을 수행하여 반환값을 돌려받는 값의 차이가 있다고 생각합니다. 첫번째코드는 ModelandView로 반환이 되는거고 두번째 코드는 String으로 반환이 된다는점에서 차이가있다고 생각합니다. 여기서 제가 질문인사항이 위 2개의 코드를 호출한 코드가 각각메서드가 다르게 설정이 되어있어야 맞다고 생각합니다. viewname을 직접반환한거와 ModelView를반환한거에서 차이가있다고 생각들어 dispatcherservlet를 찾아봤는데 rendering에 대한 코드는 찾아볼수있었습니다만 저 두코드를 실행시킨 코드는 찾아볼수가 없었는지 아니면 제가 코드를 읽을수있는 능력이부족햇는지 잘모르겠습니다저번섹션부터 코드를 하나하나 분석해보니까 저 두코드를 실행시킨 부분도 궁금해서 제 능력으로는 찾아볼수가없어서 어디부분에 있는지 알려주시면 감사하겠습니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
modelview에 대해서 잘 이해가 안됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.해당 교재에는 이렇게 나와있습니다.이때, modelView 클래스의 역할은1.데이터(멤버)에 접근(데이터 추가,삭제 그리고 수정등)2.View 이름(이동해야하는 url)을 전달이렇게 이해하면 옳게 이해한 것이 맞나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ParamMap과 model 질문
System.out.println("FrontControllerServeltV4.service"); String requestURI = request.getRequestURI(); ControllerV4 controller = controllerV4Map.get(requestURI); if (controller == null) { response.setStatus(HttpServletResponse.SC_NOT_FOUND); return; } Map<String, String> paramMap = createParamMap(request); Map<String, Object> model = new HashMap<>(); // 추가된부분 String viewName = controller.process(paramMap, model); MyView view = viewResolver(viewName); view.render(model, request, response); } private static MyView viewResolver(String viewName) { return new MyView("/WEB-INF/views/" + viewName + ".jsp"); } private static Map<String, String> createParamMap(HttpServletRequest request) { Map<String, String> paramMap = new HashMap<>(); request.getParameterNames().asIterator() .forEachRemaining(paramName ->paramMap.put(paramName, request.getParameter(paramName))); return paramMap; } public class ModelView { private String viewName; private Map<String, Object> model = new HashMap<>(); public ModelView(String viewName) { this.viewName = viewName; } public String getViewName() { return viewName; } public void setViewName(String viewName) { this.viewName = viewName; } public Map<String, Object> getModel() { return model; } public void setModel(Map<String, Object> model) { this.model = model; } } Map<String, Object> model = new HashMap<>(); 가 언제 생성되어있는지 알고싶어서 인프런 AI답변을 봤는데해당 내용에서 ModelView의 model 필드는 ModelView 클래스의 생성자에서 생성되며, Map<String, String> paramMap을 사용하여 요청 파라미터를 매핑하고 컨트롤러에 전달하는 방식에 대해 설명하고 있습니다. 이렇게 답변이 왔습니다. 저기서 호출한적이 없는거같은데 어떻게 매핑이된거죠? 두번째로, 첫번째 코드에서 Map<String, Object> model = new HashMap<>(); 부분이 두번째 코드와 똑같은 코드로작성되어있는데 다른코드맞는거같은데 왜 선언되어있는지 알수있을까요? 첫번째 질문과 두번째 질문이 많이 헷갈리네요.. 왜 같은지알수있을까요? 그리고 선언되어있는이유도요!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
SessionManagerTest @Slf4j 사용하면 안되나요?
너무 기초적인 질문인것 같아서요Test Case 작성시@Slf4j 로그 어노테이션을 이용하여 로그를 출력하고 싶은데error: cannot find symbol log.info("SessionManagerTest1={}", member);이런 오류가 발생하네요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
코틀린 사용자인데 강의 보면서 진행이 가능할까요?
코틀린으로 프로그래밍을 입문했습니다. 자바를 사용할 줄은 모르고 코틀린만 사용이 가능한 상황인데, 코틀린으로 공부가 가능한가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
TEST 오류..?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.초록색 체크표시가 뜬거봐선 정상적으로 작동 된다는 거 같은데 에러메세지가 여러개 뜨네요 별 이상 없는건가요?밑에 에러메세지 남겨놓겠습니다.WARNING: A Java agent has been loaded dynamically (C:\Users\cwg12\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended