========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이전 강의에서, 코드의 서블렛 의존도를 낮추고자 paramMap 등을 도입하여 프론트 컨트롤러가 아닌 곳에선 HttpServletRequest 등을 매개변수에서 최대한 배제하였던 것으로 기억합니다. 갑자기 다시 HttpServlet 매개변수가 등장하여 서블렛 의존적인 코드로 사용하는 이유가 있나요??
안녕하세요 영상 내에 있는 커뮤니티가 보이지 않아서 그냥 글 남깁니다ㅠ 기출 2023년 2회 코드 해석 문제 11:05초 괄호 안에 보고 있는 것을 넣어 동전 개수 출력 하는 문제인데 출력 값 중 최소량의 코드가 정답이잖아요 m/1000 m%1000/500 m%500/100 m%100/10 이 출력값인데 최소한의 코드니 m/1000 a/500 b/100 c/10 은 안되는걸까요?
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에서만 그렇게 된다고 보면 되나요? 코드에서는 앞에 ||가 있고 뒤에 &&가 있을때, 앞에 ||조건이 참이면 뒤에 &&조건은 실행되지 않는거 같아서요. ||조건이 거짓이어도 ||조건이 먼저 계산되서 질문 남깁니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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라고 판단하면 되는걸까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 열심히 듣고 있는 학생입니다. 선생님이 올려주신 강의 난이도가 리트코드? 프로그래머스 기준 어떻게 될까요? 강의 문제를 다 풀수있다면 리트코드 미디움 정도는 쉽게 풀수있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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는 스프링과 자바를 다 듣고 봐야하나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예! 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] @AfterEach 관련해서 clearStore함수가 import 되지 않는다고 합니다. 강의에서는 작동이 되는데.. 사실 저도 이게 이해가 안가는 부분인데 어떻게 인터프리터에 import를 하지 않았는데 이 함수가 테스트 하는 쪽에서 작동이 될수 있는거죠?? 다른분들도 여기까지하고 질문이 다 마무리 되지 않아서 올려봅니다..ㅠㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 시간초과가 발생 했는데 무조건 빅오n 내에 끝내야 하는 문제 인가요?? 아이디어는 가장 먼저 피로연에서 나가야하는 사람(스케쥴)을 큐(피로연)의 가장 앞에 두고 현재 도착한 사람(가장 최근 도착한 사람)의 도착 시간과 가장 먼저 나가야하는 사람의 출발 시간을 비교해서 큐에 있는 사람을 나가게 할지 남게 할지를 결정하도록 했습니다. 그런데 4번째 문제까지는 정답처리 되고 5번째 문제에서 시간 초과가 발생 하는데 혹시 n의 시간 복잡도로 풀어야 하는 문제인지 궁금해서 문의 드립니다! import java.util.*; public class Main { static public class Schedule { int arrive; int departure; public Schedule(int a, int d) { this.arrive = a; this.departure = d; } @Override public String toString() { return "Schedule{" + "arrive=" + arrive + ", departure=" + departure + '}'; } } public void solution(Schedule[] arr, int n) { Arrays.sort(arr, Comparator.comparing((Schedule s) -> s.arrive).thenComparing((Schedule s) -> s.departure)); Queue<Schedule> pq = new PriorityQueue<>(Comparator.comparingInt(o -> o.departure)); int maxCount = 0; for (int i = 0; i < n; i++) { Schedule arrived = arr[i]; if (! pq.isEmpty()) { Schedule remain = pq.peek(); if (arrived.arrive >= remain.departure) { pq.poll(); } } pq.offer(arrived); maxCount = Math.max(pq.size(), maxCount); } System.out.println(maxCount); } /* 5 5 15 12 13 14 18 15 20 20 30 */ public static void main(String[] args) { Scanner in=new Scanner(System.in); int n = in.nextInt(); Schedule[] input = new Schedule[n]; for (int i = 0; i < n; i++) { input[i] = new Schedule(in.nextInt(), in.nextInt()); } Main main = new Main(); // System.out.println(main.solution(n, m)); main.solution(input, n); } }
원래 질문은 공용체 질문이었는데 쓰다보니까 궁금증이 해소되어 질문 내용은 지웠습니다 ㅎㅎ 여담이지만 일하면서 공부하느라 시간이 너무 없어 코딩에 투자를 하고 있긴 한데 (비전공자와 비슷한 전공자입니다), 전 회차처럼 제너릭 같은 개념이 나오면 그냥 틀려야하나 고민이 되는 것같습니다.. ㅠㅠ 이론에선 주어진 pdf를 되도록 다 암기를 해보려고하나 저에게 남는 시간이 사실상 하루 정도 밖에 남지않아 그냥 제일 많이 나올 것같은 디자인패턴, 응집도, 결합도, OSI 7계층 (+보안공격) 정도만 보려고하는데 거의 하루 남은 이 시점에서 올려주신 기출로 감을 잡는게 나은지 혹은 문법 디테일 부분 + 고난도 코드 영역을 보면서 감을 잡는게 나은지 어느 걸 선택과 집중을 해야할지 고민이 됩니다 ...ㅠㅠ 지금 상황이 너무 여의치 않아서 2회차도 노려보고 있긴하지만 되도록 1회차에 끝냈으면 좋겠네요 .. 그리고 마지막으로 강의 정말 잘 듣고있습니다. 전공 수업 들을 때도 헷갈렸던 부분이 이제서야 해소가 되는 듯하네요 ㅎㅎ