선생님께서 수업에서 보여주신 여러가지 크롤링을 응용해서 네이버 많이 구매하는 쇼핑 카테고리 크롤링 코드를 짜보았습니다. 그런데 해당 순위 100개까지 있는데, 현재 순위 15순위까지만 해서 나옵니다. 16위부터는 소스 자체에서 변화되는 것이 있을수 있는데 저로서는 한계네요 ;;; 리뷰 다음 페이지것까지 가져오기처럼 이것도 방법이 있을 것 같은데 혹시 알려주실 수 있을까요
현재 영한님 강의중 스프링DB 1편만 제외하고 모든 강의를 구입 후 MVC2를 수강중인데요. 이 이후에 JPA 로드맵을 수강하기 전에 스프링 DB를 수강하고 가면 좋다는 말이 있던데 차이가 큰가요 ?? 스프링 DB 2편 나오기 까지 기다리기가 싫어서 큰 문제가 안된다면 Spring DB 시리즈를 건너뛰고 JPA로드맵을 따라갈까 하는데... JPA로드맵과 Spring DB의 차이가 무엇인가요 ?
예를들어 전 강의에서 영한님이 username : kim, age : 20 이런식으로 하고 Hellodata에도 username과 age 라는 변수가 있었는데요 만약 json의 @RequestBody로 들어오는 변수?들이 Hellodata에 선언되어 있지 않다면 어떻게 되나요 ? 예를들어 Hellodata가 변수가 username 하나밖에 없다고 하면 age는 어떻게 되는 것인가요 ?
핸들러라고 보면 되는건가요 ? 이번 강의에서는 @RequestMapping , @GetMapping, @PostMapping 등이 붙은 메쏘드가 모두 핸들러인거고 저런 URI에 따라 처리하는 것이 메쏘드가 아니라 클래스단에 있다면 그 클래스도 핸들러라고 봐도 되는건가요 ?
핸들러는 Request에 들어오는 파라미터?링크? 에 따라 처리하는 모든 클래스?메소드? 들을 핸들러라고 보면 될까요 ? 왜 @RequestMapping, Controller 인터페이스와 같이 우선순위가 나누어지는 것인가요? 같은 파라미터에 대한 핸들러가 많으면 첫번째로 잡는건가요 ?? 그렇다면 같은 파라미터에 대해 여러가지 핸들러가 있다면 우선순위가 높은 핸들러를 선택하게 되는 것인가요 ?? 이때 클래스마다 String, ModelAndView 등등 무엇을 return 할지 모르기 때문에 DispatcherServlet에서 자유롭게 사용할 수 없는 불편함이 있고 이것들을 공통적으로 ModelAndView로 return 하게끔 도와주는게 어댑터인가요 ?? 강의를 보며 직접 타이핑도 했는데 헷갈립니다 ㅠㅠ..
v3까지 잘 작동되다가 v4부터 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 라는 오류가 뜨면서 서버가 안켜집니다 ㅠ 자바11, 인텔리제이 재설치도 해보고 구글링도 다 해봤는데 고쳐지질 않아서 이전 프로젝트 실행해보니 이건 잘됐고 강의자료에 있는 프로젝트도 시도해보니 안되네요.. 어떻게 해야 고칠 수 있을까요 ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 좋은 강의 감사합니다 :) 제가 이해하기로는 테스트를 하기 위해서 ApiExceptionController 에서 파라미터로 받은 것 같은데요. 실무에서는 어떤 방식으로 하는지 궁금해서 질문 올렸습니다.. 예시 코드 있으시면 깃허브나 코드 복사 등 으로 답글 부탁드립니다 @RestController public class ApiExceptionController { @GetMapping ( "/api/{id}" ) public MemberDto getMember ( @PathVariable ( "id" ) String id ) { if ( id . equals ( "ex" ) ) { throw new RuntimeException ( "잘못된 사용자" ) ; } if ( id . equals ( "bad" ) ) { throw new IllegalArgumentException ( "잘못된 입력 값" ) ; } if ( id . equals ( "user-ex" ) ) { throw new UserException ( "사용자 오류" ) ; } } } @ExceptionHandler public ResponseEntity<ErrorResult> userExHandle(UserException e) { log.error("[exceptionHandle] ex", e); ErrorResult errorResult = new ErrorResult("USER-EX", e.getMessage()); return new ResponseEntity<>(errorResult, HttpStatus.BAD_REQUEST);
1명의 유저에게 1개 세션(저장소) & 1개 세션 Key(JSESSIONID) 할당 다수의 세션을 갖는 하나의 세션 저장소(Tomcat이 관리) 다수의 키(SessionConst.LOGIN_MEMBER etc..) & 상응하는 값(loginMember etc..) 을 갖는 하나의 세션 세션 내용이 이해가 잘 안돼서 질문글들을 정독해보고 내린 결론인데 잘 이해했는지 혹시 잘못 이해한게 있는지 확인해주시면 감사하겠습니다 추가로 이게 맞다면 이전에 만든 SessionManager와의 차이가 One Session for Multi User ( SessionManager) vs One Session for One User (HttpSession) 라고 생각했는데 괜찮을까요?
Q1. 처음 new-form 에 들어오게 되면 FrontControllerServleV3에서는 Http 메세지 바디에 있는 파라미터들을 만들어서 paramMap 으로 만들고, 이것들 MemberFormControllerV3에 넘겨줄거고 여기서 "new-form"이라는 String을 가진 ModelView를 리턴받는 mv가 생기고, 이 mv.getViewName 해서 나오는 viewName은 논리이름이기 때문에 viewResolver로 상대 이름으로 바꿔주고, 이것은 MyView에 있는 render로 보내서 new-form 화면이 뜨게 되는 것인가요 ?? Q2. 그 후 MEmberListControllerV3, MemberSaveControllerV3 에서 ModelView에 있는 HashMap으로 구현 된 model에 members와 member를 넣어주는데 넣는 이유가 궁금합니다. 실제로는 memberRepository 에 저장하고, findAll를 하기때문에 사실상 MemberRepository와 ModelView에 있는 Model은 항상 같은 것 아닌가요? 맞다면 왜 굳이 2가지의 객체를 만들어서 사용하는지가 궁금합니다.
안녕하세요. @GetMapping("/hello") public void hello(Model model){ model.addAttribute("data", "hello!"); } 웹 브라우저에서 hello 경로로 접근할 때 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버가 화면을 찾아서 처리한다고 하셨는데 return 반환값이 없는 void로 해도 접근이 가능해서요. hello 경로에 접근하면 스프링 내부에서 resources -> static -> templates 순서대로 hello.html이 있는지 확인하는게 아닌가 싶어서 질문드립니다!
제목과 같이 MessageSource 변수명을 ms로 바꾸면 빨간줄이 나오는데 어떻게 해결해야 하나요? 강의 소스를 열어도 똑같이 빨간줄이 나옵니다.ㅜㅠ @Aotuwired위에 @Qualifier ( "messageSource" ) 를 하면 되기는 하는데 왜 저는 @Qualifier을 해야 되는 걸까요?
ㄱ학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 안 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강사님, 안녕하세요. 강의 정말 잘 듣고 있습니다. 스프링 서버만 구현하여서 데이터가 저장되는데, 이것이 어떻게 가능한지 궁금합니다. 답변 부탁드립니다. 감사합니다.
강의내용중 31:24초 부분에 해당하는 질문입니다. 다른 사이트 이미지를 마우스 우클릭후, '새탭으로 이미지 열기'로 보면 제대로 이미지가 새탭으로 출력이되서 보이는데, 이 프로젝트 코드는 새 탭으로 이미지 열기를 사용하는데 31:20초 /items/1 경로의 이미지처럼 나오지않고 문자형태로 출력이되는지 궁금합니다. 또한 이처럼 31:24초처럼 이미지가 문자형태로 출력되지 않고 다른사이트(구글,네이버)처럼 새탭으로 이미지를 열어도 정상적으로 이미지가 출력되게 하기위해선 어떻게 해야하나요?
세션 과정을 위의 표와 같이 이해했습니다. 영한님께선 세션Id가 털려도 여기에는 중요한 정보가 없다. 즉 털려도 상관없다라는 식으로 말씀하셨는데, 위 표와 같이 제가 이해한게 맞다면 결국 해커가 세션 키만 안다면 해킹을 할 수 있는게 아닌가?라고 생각이 들었습니다. 맞는 방식인지는 모르겠으나 테스트를 해봤습니다 두 개의 창을 띄워 각 다른 아이디로 로그인 했습니다. 표 처럼 B의 세션키를 A에 적용했을 때 B로 바뀌는 모습을 확인할 수 있었습니다. 근데 이게 될 때도 있고 안 될 때도 있습니다.. 정확한 이유를 모르겠네요 물론 해킹을 100% 막을 순 없겠지만 생각보다 쉽게 털리는 것이 아닌지 의문점이 생겼는데, 제가 무엇을 잘못 알고있는걸까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의내용대로 @Transactional 넣고 스프링부트띄워서 테스트를 돌리면 rollback이 바로되는게 아니라 좀 지나서 되는것 같더라구요 회원가입 테스트 돌리고 디비에서 member조회 해보면 인서트가 되어있고 한번더 조회하면 그때 사라지더라구요 그것 때문에 회원가입과 중복회원 따로 돌리면 되긴하는데 전체 테스트를 돌리면 중복회원예외에서 실패가 납니다. 어떻게 해야될까요..?
안녕하세요. forward(request, response) 할때, process(request, response) 할때 괄호안에 (request, response) 보내 줍니다. 이거에 대한 자세한 이유를 모르겠습니다. 그 메서드 안에 매개변수로 HttpServletRequest request, HttpServletResponse response) 를 받기 위해서 이고, 이, request, response 가 웹 브라우저에서의 요청과 응답을 해주기 위해? 자세히 설명을 못하겠어서 이렇게 질문 올립니다.