학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 해당 교재에는 이렇게 나와있습니다. 이때, modelView 클래스의 역할은 1.데이터(멤버)에 접근(데이터 추가,삭제 그리고 수정등) 2.View 이름(이동해야하는 url)을 전달 이렇게 이해하면 옳게 이해한 것이 맞나요?
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<>(); 부분이 두번째 코드와 똑같은 코드로작성되어있는데 다른코드맞는거같은데 왜 선언되어있는지 알수있을까요? 첫번째 질문과 두번째 질문이 많이 헷갈리네요.. 왜 같은지알수있을까요? 그리고 선언되어있는이유도요!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 프로젝트 환경설정을 마치고 프로젝트를 돌려봤습니다. 똑같이 따라하면서요. 그런데 사진과 같이 create문까지 잘 나오는데 h2에 테이블이 안보여요 문제가 뭘까요? ㅠㅠ 주의 사항도 다 보면서 버전업 시켰는데도 안되네요.. 하루종일 구글링하고 찾아봐도 모르겠어요 도와주시면 감사하겠습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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 warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
안녕하세요! MVC의 본질에 대한 강의를 듣다가 문득 궁금증이 생겨서 글을 남깁니다. 강의자님께서 유저의 멘탈모델과 컴퓨터 모델을 일치시키는 것이 MVC의 본질이라고 하셨습니다. 또한, 유저의 멘탈모델이라는 것이 사용자가 애플리케이션을 사용하면서 "내부적으로 이렇게 되있을 것이다." 라고 생각하는 것이라고 설명해주셨습니다. 첫 번째 궁금증은 유저의 멘탈모델과 컴퓨터 모델을 일치시킨다는 것은 곧 '유저가 애플리케이션의 인터페이스만 봐도 어떤 일이 발생할지, 어떻게 동작될지 대충 예상이 될 정도로 애플리케이션을 유저 친화적으로 만든다'라고 해석해도 될까요? 두 번째 궁금증은 만약, 위의 저의 해석이 맞다면, "프레젠테이션 계층과 유저의 멘탈모델, 즉 내부 구현 계층이 분리되면 유저 친화적인 애플리케이션을 개발할 수 있다."로 귀결될 수 있는데, 사실 프레젠테이션 계층과 모델 계층의 분리는 어디까지나 개발자를 위한 분리인 줄 알았는데, 사용자를 위한 분리였다는 의미로 해석되어 상당히 혼란스럽니다... 좋은 강의 제공해주셔서 감사합니다! 좋은 답변 기대할께요~
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] savedMember 에는 id, username, age 가 세개 모두 입력된 객체가 findMember 에는 username 과 age 만 가지고 있는 Member 타입 객체가 생성되는 것이 아닌가요? .get() 메서드 설명 읽어보면 value 를 반환한다고 되어있고. save() 메서드에서는 시퀀스로 id 값까지 채워넣은 객체를 반환하고 있는걸로 보여서욤 저 @21fd... 는 객체 주소인거지요? 가져오는 데이터가 id, username, age / username, age 이렇게 다르지만 같은 주소값에 저장되어있다 라는걸 확인하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] spring Bean에 aop를 등록하면 순환 종속성 문제가 발생하는데 Bean에서 제거하면 문제 없이 잘 돌아갑니다. 혹시 강의내용과 다른데 무슨 문제인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. SpringConfig 내용을 강의와 똑같이 바꿨는데 memberRepository에 빨간 밑줄이 생기면서 오류가 발생해요... 아래는 SpringDataJpaMemberRepository 코드인데, 해당 인터페이스가 사용되고 있지 않다고 나오네요.. 몇 시간 째 찾아봤는데 도무지 모르겠습니다.. ㅠㅠㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 영상을 시청하고 따라해보던 중에 윈도우 pc의 터미널로 build를 진행하였으나, "No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.1 was found." 이 발생하였습니다. 혹시 도움을 주실 수 있으실까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 배열 - 문제와 풀이3을 switch-case문으로 하던 와중에 종료 버튼이 break문으로 종료가 안되어서 검색해서 와일문을 false로 바꾸면 종료된다는 말을 듣고 boolean proudctFile = true; while(proudctFile){ /* 나머지 내용 생략 */ case 3 : System.out.println("프로그램을 종료합니다."); proudctFile = false; } 이런식으로 만들었습니다. 나중에 다른 강의를 보니 while(true){ /* 나머지 내용 생략 */ case 3: System.out.println("시스템을 종료합니다."); return; } return문을 써서 바로 종료하던데 어떤게 더 좋은 프로그램인지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의를 따라가다보니 저는 로그에 모든 url경로가 다 나오는데 선생님 강의에서는 localhost:8080 은 제외한 이후 경로만 나옵니다. 제가 혹시 어느 부분을 놓친건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 강의에서 다운캐스팅에 관해 이야기를 해주셨습니다. 부모 클래스인 Parent 타입의 변수에 Parent 인스턴스를 생성해서 참조값을 해당 참조변수에 넣고 Child 타입의 참조변수에 다운캐스팅을 하고 나서 해당 child 메서드를 호출하려고 했을 떄 오류가 발생했습니다. 여기서 영한님이 말씀해주신대로 생각해보면 Parent 인스턴스를 생성했을 때, 해당 메모리 안에 Parent 타입의 클래스 정보만을 저장했을테고 자식에 대한 정보가 해당 메모리 주소값 안에 없다. 따라서 다운캐스팅을 해도 자식클래스 메서드를 호출하지 못한다 -> 라고 생각하면 되는 건가요? 그렇지만 다시 생각해보면 메서드는 메서드 영역 내에서 가져다가 호출하는 방식인데, 그렇게 된다면 자식 클래스의 메서드 또한 메서드 영역내에서 불러오면 되니까 호출이 가능한 게 아닐까요..? 궁금하네요
https://drive.google.com/file/d/1z-zuoAUetdDnRiEBscuhmhDL95TM65C-/view?usp=sharing 제 공유파일입니다. 수업듣고 혼자서 만들어 보는데 도무지 모르겠습니다. localhost:8080/member/save에서 아무것도 안 누르고 회원가입 눌렀는데 왜 에러메세지 안 뜨고 에러페이지가 뜰까요 ㅠㅠ 컨트롤러에 if(!StringUtils.hasText(memberDTO.getMemberId())) {//springutils spring꺼 임포트 해야함 bindingResult.addError(new FieldError("memberDTO","memberId","아이디는 공백이 안 됩니다.")); } 이 부분도 추가 하고 다 했는데 ㅠ