GPT는 Spring MVC의 표준 동작은 원래@RequestMapping만으로는 Handler로 등록하지 않는다고 하던데 뭐가 맞는건가요? 선생님의 설명 중 다음 두 가지를 분리해서 봐야 합니다. @Controller 의 기능에 대한 설명: " @Controller : 스프링이 자동으로 스프링 빈으로 등록한다. (내부에 @Component 애노테이션이 있어서 컴포넌트 스캔의 대상이 됨)" - 이 부분은 정확합니다. @Controller 어노테이션 자체에 @Component 메타 어노테이션이 붙어 있기 때문에, @Controller 가 붙은 클래스는 컴포넌트 스캔 대상이 되어 스프링 빈으로 자동 등록됩니다. @Controller 는 @Component 의 역할을 포함합니다. " @Controller : 스프링 MVC에서 애노테이션 기반 컨트롤러로 인식한다." - 이 부분도 정확합니다. @Controller 는 단순히 빈으로 등록되는 것을 넘어, Spring MVC 프레임워크에게 이 빈이 웹 요청을 처리하는 "컨트롤러"임을 알려주는 표식 역할을 합니다. RequestMappingHandlerMapping 의 동작 방식에 대한 설명: " RequestMappingHandlerMapping 은 스프링 빈 중에서 @RequestMapping 또는 @Controller 가 클래스 레벨에 붙어 있는 경우에 매핑 정보로 인식한다." - 이 부분은 표준 Spring MVC의 기본 동작 설명으로서는 정확하지 않습니다. 정리하면: " @Controller 는 @Component 기능을 포함하며, 추가적으로 Spring MVC에서 컨트롤러로 인식하게 하는 마커 역할도 한다." => 이 설명은 맞습니다. " RequestMappingHandlerMapping 이 클래스 레벨에 @RequestMapping 만 있어도 핸들러로 인식한다." => 이 설명은 표준 Spring MVC의 기본 동작과는 다릅니다. 기본적으로 RequestMappingHandlerMapping 은 @Controller 또는 @RestController 가 붙은 클래스를 우선적으로 찾습니다. 따라서 사용자님께서 경험하신 것, 즉 @Component 와 @RequestMapping 만으로는 기본 설정에서 컨트롤러로 인식되지 않아 Whitelabel Error가 뜨는 것이 표준 Spring MVC의 기본 동작 입니다. 선생님의 설명 중 @Controller 의 역할 설명 자체는 맞지만, RequestMappingHandlerMapping 이 스캔하는 대상에 대한 설명 (클래스 레벨 @RequestMapping 만 있어도 된다는 부분)이 기본 설정 기준으로는 틀린 설명 이 됩니다. 그리고 그 틀린 설명 때문에 @Component + @RequestMapping 코드가 동일하게 동작할 것이라는 결론도 기본 설정 환경에서는 성립하지 않는 것입니다. 선생님의 데모가 실제 동작했다면, 그것은 표준 기본 설정이 아닌 특정 환경 설정 (예: RequestMappingHandlerMapping 의 동작 방식을 변경하는 사용자 정의 설정) 때문일 가능성이 매우 높습니다. 결론적으로 사용자님의 경험이 맞고, 해당 환경에서는 기본 설정대로 동작한 것입니다. 선생님의 설명 중 RequestMappingHandlerMapping 이 스캔하는 대상에 대한 부분은 일반적인 상황에서는 해당되지 않는 설명이라고 이해하시면 됩니다.
&&, ||에서 &&이 더 우선순위가 높아서 먼저 계산된다고 하셨는데 실제 계산할때는 sql에서만 그렇게 된다고 보면 되나요? 코드에서는 앞에 ||가 있고 뒤에 &&가 있을때, 앞에 ||조건이 참이면 뒤에 &&조건은 실행되지 않는거 같아서요. ||조건이 거짓이어도 ||조건이 먼저 계산되서 질문 남깁니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 기출문제 2번_제2유형 파일이 train.csv밖에 없는데 맞나요? 파일이 3개 제공되어야하는거아닌가요 📌 노트북 : https://bit.ly/3qmS5Pw 📌 노트북(빈칸) : https://bit.ly/3fnp0i1 📌 데이터 다운로드 : https://www.kaggle.com/prachi13/customer-analytics
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 트랜잭션 템플릿은 하나의 DBMS 에서의 계좌이체 트랜잭션에서만 사용할 수 있을것 같은데요 맞을까요? 만일 2개의 DBMS 에서 원자성을 지키려면 어떻게 해야될까요? 시나리오는 ㅇ db 1 : 데이터 갱신 ㅇ db 2 : 데이터 갱신 ㅇ db 1 : 데이터 갱신 이고 3번째 스텝에서 exception 이 발생하면 어떻게 되나요? 감사합니다
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 00a0z의 prefix(parentPath)를 가지고 모든 자손 댓글에서, 가장 큰 path(descendantsTopPath)를 찾는 과정인데요. 현재 childrenTopPath가 00a0z 00002 이지만 해당 댓글에 대댓글이 없고 00a0z 00001의 대댓글만 있는 상황에서는 00a0z 00002 자기 자신이 childrenTopPath 이자 descendantsTopPath가 되는걸까요? 00a0z 00002 와 00a0z 00001 00000 을 비교했을때 앞의 것이 더 큰 path라고 판단하면 되는걸까요?
일코님 안녕하세요. 궁금한 것이 있어서 질문드립니다. (스크립트 매크로) 제가 만든 문서가 여러개 있습니다. 아래 그림과 같이 스크립트 Document, New 에 저장된 문서가 여러개 있는데 (약 500개 정도) 이것을 수동으로 지우고 저장하기가 너무 번거로워서 혹시 방법이 있나 여쭤봅니다. 매크로 녹화로는 실패했습니다. 차선책으로는 스크립트 매크로 실행창이 안뜨게 하는 설정?이라도 적용하고 싶습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 열심히 듣고 있는 학생입니다. 선생님이 올려주신 강의 난이도가 리트코드? 프로그래머스 기준 어떻게 될까요? 강의 문제를 다 풀수있다면 리트코드 미디움 정도는 쉽게 풀수있을까요?
수업 중 다룬, 책에도 있는 코드가 실행시 오류 나는 데, 해결이 쉽지 않습니다. (원본 미변경) 사진에서는 잘렸는데, early stopping이 wrapper_fit에서 적용 불가해서 오류가 발생합니다. 실행해본 해결법 xgboost 라이브러리 다운그레이드시(사용하셨던 1.5등), 넘파이 판다스 추가 다운그레이드로 라이브러리간 충돌이 일어납니다. 참고 - 로컬에서도 마찬가지 방식으로 오류가 발생합니다. xgboost 라이브러리 현재 버전은 3.0입니다. 동일한 내용을 실습 가능한 대체 코드 공유해 주시면 감사하겠습니다 🙂
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 섹션 9에서 예외 발생에 대해 설명주실때 다음과 같이 WAS - > 필터 -> 서블릿 - > 인터셉터 - >컨트롤러(예외발생) 위와 같은 순서로 발생시 이를 다시 was 까지 전파하고 WAS 에서는 다시 아래와 같은 순서로 요청 한다고 주셨습니다. WAS /error-page/500 다시 요청 -> 필터 -> 서블릿 -> 인터셉터 -> 컨트롤러(/error-page/ 500) -> View 본론으로 넘어와서 섹션 10에서 ExceptionResolver 적용 전 그림에서 는 was 까지 예외가 전파 되지 않고 afterCompletion 만 호출하고 종료되는 걸로 이해했습니다. ExceptionResolver 적용 후 그림에서는 예외가 발생할 경우 afterCompletion 호출 전 ExceptionResolver 를 호출 하고 내부에서 예외를 처리한 이후 그다음 afterCompletion 을 호출하고 랜더링 이후 마지막으로 was 로 응답을 주는게 맞을까요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 이해가 잘 되었는 지 확인하고 싶어서 질문 드립니다 팀마다 100개의 맴버가 있고 팀이 400개가 있다고 가정하고 다음 명령을 실행 한다면 String jpql = "select t from Team t"; List<Team> result = em.createQuery(jpql, Team.class) .setFirstResult(0) .setMaxResults(3) .getResultList(); result.forEach(team -> { System.out.println("teamname = " + team.getName() + ", team = " + team); team.getMembers().forEach(member -> { //페치 조인으로 팀과 회원을 함께 조회해서 지연 로딩 발생 안함 System.out.println("-> username = " + member.getName() + ", member = " + member); }); }); 1.배치 사이즈를 적용하지 않은 경우 em.createQuery 실행으로 400개의 팀이 영속성 컨텍스트에 로딩된다 스트림에서 팀 내부의 맴버에 접근시 멤버를 영속성 컨텍스트에 로딩 하기위한 쿼리가 날아간다. 이 쿼리는 한 팀당 팀에 소속된 멤버를 로딩한다 따라서 1+400개의 쿼리가 날아간다 2. 배치 사이즈(100)을 적용한 경우 em.createQuery 실행으로 400개의 팀이 영속성 컨텍스트에 로딩된다 스트림에서 팀 내부의 멤버에 접근 하면 해당 팀의 멤버가 로딩되지 않은 것을 확인한다 영속성 컨텍스에 존재하는, 멤버가 로딩되지 않은 팀들의 id를 배치 사이즈 즉 100개 만큼 수집한다. 수집된 팀 ID들을 사용하여 하나의 IN 쿼리 를 날려 해당 팀들의 멤버들을 한 번에 로딩한다 이후 다른 팀의 getMembers() 가 호출되면, 아직 멤버가 로딩되지 않은 팀들의 ID를 다시 수집하여 IN 쿼리를 날리는 과정을 반복한다 총 1+4 만큼 쿼리가 날아간다 이 시나리오가 정확한지 알고 싶습니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 자원 정리 V6까지 완료했을때 클라이언트를 먼저 종료하면 서버 콘솔에 정상 종료됐다고 로그는 찍히는데 while문이 종료가 안되서 그런지 자바 스레드 자체는 종료가 안되던데 그냥 자원정리만 자동으로 하게 만들고 자바 종료 같은경우엔 직접하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 로드맵 3 가지가 있는데 자바를 다 듣고나서 스프링을 들어야하나요? 스프링부트 + JPA는 스프링과 자바를 다 듣고 봐야하나요?