강의를 보고 궁금한 점이 생겼다가 질문답변 게시판에도 유사 질문은 없는 것같아 gpt에도 물어봤지만 gpt 답변과 조금 다른 것같아 여쭈어봅니다. 11:20초 즈음에 그림에서처럼 8번. 정상 응답 이라고 표현을 하시는데 이것에 대한 기준?같은게 궁금합니다. 아래 코드는 강의의 try catch 코드입니다. try { if (ex instanceof IllegalArgumentException) { log.info("IllegalArgumentException resolver to 400"); response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage()); return new ModelAndView(); } } catch (IOException e) { log.error("resolver ex", e); } 먼저 예외가 발생하고 ExceptionResolver 가 넘어온 예외 해결을 시도하는데요. 코드에서 sendError() 로 에러 응답의 상태 코드를 변경하고 메시지를 설정한 후 빈 ModeAndView 를 반환합니다. 이때 찾아본 결과 sendError() 가 있으면 응답은 내부에 완료 표시(커밋)처리를 하기 때문에 reponse에 뷰를 작성?할 수 없어 ModelAndView가 빈 값이던 뷰 값을 주던 상관 없이 뷰 렌더링이 되지 않는다고 하더군요. 이부분 때문에 강의 ModelAndView 지정 부분에서 헷갈렸습니다. 이건 sendError가 없을 경우를 설명하신 것맞나요? 아무튼 본론으로 돌아와서 현재 코드와 과정처럼 최초 발생한 예외를 ExceptionResolver 에서 처리하고 DispatcherServlet 로 넘어간 후 뷰 렌더링을 처리하지 못하고 WAS에 넘기는데요. 이때 비록 뷰 렌더링은 하지 못했지만 ExceptionResolver 에서 상태 코드 등을 설정 후하고 ModelAndView를 반환하면서 에러를 처리하였으므로 WAS에 넘겨도 이것을 정상응답이라고 하나요? 아니면 제가 gpt에서 얻은 답변에서는 ExceptionResolver 가 예외를 처리했더라도 뷰 렌더링을 하지 못하고 WAS에 넘겼으므로 정상 응답으로 보지는 않는다고 하던데.. 정상응답의 기준이 어떻게 되나요? 좀 쓸데 없는 질문 같긴한데 ExceptionResolver 에서 ModeAndView 값 지정에 따른 반환에 대해 궁금해서 찾다가 궁금한점이 여기까지 파생되어 질문드립니다..
getInputStream() 과 getParameterNames() 를 함께 사용 시, 순서 상 뒤에 있는 메서드에서는 출력이 안되는 상황을 발견했습니다 저의 추측으로는 두 메서드 모두 스트림으로부터 데이터를 싹 가져와서 그런 거 같습니다 테스트 해보니 getParameterValues() 메서드 역시 마찬가지고요 질문1) 우선 상기 추측이 맞나요? 이번에는 getInputStream() 과 getParameter() 를 테스트 해봤습니다 역시나 같은 결과였지만 한 가지 의문이 있습니다 username 과 age 두 가지 데이터에 대해 서버로 보냈을 때 서버 측에서는 getParameter(username) 만 해도 age 에 관해서는 getInputStream() 에서 출력되지 않음을 확인했습니다 질문2) getParameter() 를 최초 실행하게되면 스트림에 있는 데이터를 싹 가져와 특정 컬렉션(Map 일까요?)에 담고 이후부터는 컬렉션에서 바로 찾는 식인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제가 부트캠프에서 프로젝트를 진행할 때 테스트 코드를 짜긴 했었는데 거의 지식 없이 짰던지라 controller랑 service만 단위 테스트로 짰고 통합 테스트는 안 했습니다. 단위 테스트는 class 단위 어노테이션에 SpringBootTest를 안 쓰는게 맞는건가요? 제가 그렇게 했었거든요. @SpringBootTest는 통합 테스트일 때만 쓰는 건지, 어떤 경우에 쓰는 어노테이션인 지 궁금합니다.
예제에서는 equals 함수를 새로 만들어서 person1과 person2를 비교하는 상황이라 true가 나오는 것으로 이해했습니다. 그럼 equals 함수를 따로 만들지 않은 상태에서 person1과 person2를 equals로 비교하면 그 경우에는 true가 나오나요 false가 나오나요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/ 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/ 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/ [질문 내용] 여기에 질문 내용을 남겨주세요. 질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/ 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/ 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/ 프로젝트 생성의 13:24의 실행이 되지 않습니다. Cause: class java.util.concurrent.ExecutionException cannot be cast to class java.lang.RuntimeException (java.util.concurrent.ExecutionException and java.lang.RuntimeException are in module java.base of loader 'bootstrap') java.lang.IllegalArgumentException: Could not create problems-report directory '/build/reports/problems' * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org . Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 55ms 1 actionable task: 1 executed 두가지의 오류가 뜨는데 어떻게 해결해야할까요?
for문에서 i가 14가 되는 순간 널문자를 만나서 for문을 빠져나오게 되는데 메인함수에서 i를 따로 초기화한 값이 없기 때문에 i에 14가 유지되어서 myCar.mode[i] = '\0'; 이 식에 14가 들어가게 되는건가요? for문을 빠져나오는 순간 i는 따로 초기화가 되는 것이 아닌가요?
전에 배웠던 쓰레드 내용과 함께 질문드립니다 사용자로부터 요청이 오면 쓰레드 풀로부터 쓰레드를 할당을 받고 이 쓰레드가 HttpServlet 클래스에 있는 public void service 를 실행하고 그 안에서 수업 시간에 직접 재정의한 protected void service 가 실행된다고 이해하면 될까요? 제일 궁금한 점은 Http 요청이 올 때 서블릿 코드를 수행하는 쓰레드가 처음으로 실행하는 메서드가 무엇인지 입니다