학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의를 들어보면 loginV3메소드 파라미터에 HttpServletRequest request를 선언하고 HttpSession session = request.getSession(); 을 통해 세션을 생성하는 것을 볼 수 있었습니다. 하지만, 저는 프로젝트를 진행할 때 세션이 사용되는 메서드에 파라미터를 HttpSession session을 사용했습니다. 그래서, HttpSession session = request.getSession(); 이와 같은 코드 없이 세션을 생성하거나 삭제하였습니다. 둘의 차이가 있을까요? 굳이 HttpSession session = request.getSession(); 를 작성할 필요가 있나요? 아래는 저의 코드입니다 .
1. "자동커밋모드에서 수동커밋모드로 변환하는것" 을 트랜잭션을 시작한다라고 표현하는것일까요? 아니면 "수동커밋모드로 작업을 하는것" 을 트랜잭션을 시작한다고 표현하는것일까요? 2. 강의 14분경에, memberRepository.update() 코드에서 "트랜잭션이 없어서 auto commit된다" 라고 말씀하셨습니다. 여기서 "트랜잭션이 없어서 auto commit 된다" 는게 무슨의미인지 잘 모르겠습니다. 2-1. 트랜잭션이 없다는게 트랜잭션을 시작하지 않았다는것일까요? 2-2. 수동커밋모드가 아니라서 트랜잭션이 없고 트랜잭션이 시작하지않은것일까요? 2-3. 트랜잭션이 없으면 무조건 auto commit일까요? 3. 트랜잭션이라는것이 수동커밋모드로 하고나서, 쿼리를 실행하고, commit이나 rollback을 하는 과정을 의미하는게 맞을까요?
강의 10강 7:15 여기에 보시면 컴팩트 컨스트럭터를 사용하는 경우 필드에 값을 넣어줄 수 없다고 말씀해주셨는데 여기서 직접 this.name 으로 넣는건 불가능하지만 public record MemberRecord( String name, @CustomAnnotation int age ) { private static final String DEFAULT_NAME = "Unknown"; private static final int DEFAULT_AGE = 1; public boolean isAdult() { return age > 20; } public MemberRecord { if (name == null || name.isBlank()) { name = DEFAULT_NAME; } if (age < 0) { age = DEFAULT_AGE; } } } this.name 으로 값을 할당하는 것이 아니라 잘못된 값이 들어오면 그걸 변경해서 넣어주는건 되는거 같습니다. 이런 용도로 컴팩트 컨스트럭처를 사용해도 될까요? 아니면 말씀해주신 것처럼 검증 용도로만 사용하는 것을 권장하시나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의를 듣는 도중 오디오가 잘 나오다가 갑자기 안 나오더니 그때부터 모든 강의 소리가 안들리는데 왜그런지 알 수 있을까요?.. 노트북 오디오는 잘 작동합니다.
이해가 어려운 섹션이나 영상 설명은 질문으로 꼭 남겨주세요. 기출문제를 풀다가 막힌 개념이 있나요? 질문으로 회차나 번호, 개념을 예시로 질문해주세요. 답변에 도움이 됩니다. 이론 문제는 통합본 PDF 파일로 제공될 예정입니다. (6월 중 업로드 예정) 합격을 가르는 것은 역시 코드해석문제. 이론을 외울 시간이 없다면 코드에 익숙해지고, 중요 개념을 몇 가지 외워가면 합격할 수 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Request.getparameter에서 매개변수를 “username”이라던지 ”age”이렇게 받잖아요 이렇게 스트링으로 어떻게 파라미터를 전달받는지 궁금해요 http 또는 request에서 username이라는 스트링이ㅜ있으면 스트링으로 변환하는 건가요?아 그리고 grtWriter는 뭐하는 거고 write는 뭔지 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 처음에 인텔리제이를 시작할 때 localhost 8080을 가면 바로 index.html화면이 나오는데 왜 그런 건가요?따로 설정을 해야ㅜ하는 건가요?
안녕하세요 토비님 😄 강의 맛있게 잘 보고 있습니다. 마이너 한 질문인데, 테스트에 Clock 을 이용한 테스트에서 6.50 초 쯔음 아래 와 같은 fixed <- 의 유형 ? 을 정적 팩토리 메서드라고 하셨는데 객체를 반환하기 위해 static 키워드를 사용해야 정적팩토리 메서드가 아닌지 여쭤봅니다 @Bean public Clock clock() { return Clock.fixed(Instant.now(), ZoneId.systemDefault()); }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이렇게 했습니다.
[질문 내용] Drug DrugNutrient Nutrient(Enum) 타입 이렇게 다대다 관계입니다. (DrugNutrient) @Query("select d from Drug d join d.drugNutrientList dn where dn.standardNutrient IN :standardNutrients group by d,dn " + "order by count(dn) desc") List<Drug> findProperDrug(@Param("standardNutrients") List<StandardNutrient> standardNutrients); 저는 이 쿼리를 실행하면 mysql 은 SELECT d.* FROM drug d JOIN drug_nutrient dn ON d.drug_id = dn.drug_id WHERE dn.standard_nutrient IN ('CARBON_HYDRATE','PROTEIN','CALCIUM') GROUP BY d.drug_id, dn.drug_nutrient_id ORDER BY COUNT(dn.drug_id) DESC; 이렇게 쿼리가 나갈 것이라고 예상했습니다. 따라서 그렇기 때문에 당연히 drug_id 가 중복해서 나올 것이라고 예상했습니다. 실제로도 mysql 에서 중복되게 나오고요! 그러나 JPQL 을 통하면 drug_id 1이 중복해서 나오지 않습니다. 제가 쿼리를 잘 못 이해하고 있을까요? group by 에 무언가 있을 것 같긴 한데 놓친 내용이 있을 까요??? 실제 쿼리는 이렇게 나갑니다. select d1_0.drug_id, d1_0.drug_img_path, d1_0.english_name, d1_0.name, d1_0.url, d1_0.vendor from drug d1_0 join drug_nutrient dnl1_0 on d1_0.drug_id=dnl1_0.drug_id where dnl1_0.standard_nutrient in (?, ?, ?) group by d1_0.drug_id, dnl1_0.drug_nutrient_id order by count(dnl1_0.drug_nutrient_id) desc 그리고 여담인데 group by 를 통하면 default batch fetch size 가 적용이 안되나요? 1쪽에서 다쪽을 get 해서 사용했을 때 쿼리가 나가면서 Where 쪽에 In 쿼리가 바바박 나오던 걸로 기억합니다. List<Drug> findMoreSuitableDrugList = drugRepository.findProperDrug(standardNutrients); return findMoreSuitableDrugList.stream().map(drug -> DrugResponseDto.of(drug,drug.getDrugNutrientList().stream().map(drugNutrient -> { return drugNutrient.getStandardNutrient().getName(); }).collect(Collectors.toList()))).collect(Collectors.toList()); 원래 안된다면 성능 1대다 상황에서 성능 최적화는 어떻게 진행하는지 궁금하네요!
29-Jun-2024 16:47:09.258 INFO [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 불허되는 접근: 이 웹 애플리케이션 인스턴스는 이미 중지되었습니다. []을(를) 로드할 수 없습니다. 디버그 목적 및 불허되는 접근을 발생시킨 해당 쓰레드를 종료시키기 위한 시도로서, 다음 스택 트레이스가 생성됩니다. java.lang.IllegalStateException: 불허되는 접근: 이 웹 애플리케이션 인스턴스는 이미 중지되었습니다. []을(를) 로드할 수 없습니다. 디버그 목적 및 불허되는 접근을 발생시킨 해당 쓰레드를 종료시키기 위한 시도로서, 다음 스택 트레이스가 생성됩니다. at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading( WebappClassLoaderBase.java:1328 ) at org.apache.catalina.loader.WebappClassLoaderBase.getResource( WebappClassLoaderBase.java:960 ) at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader( AbandonedConnectionCleanupThread.java:123 ) at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run ( AbandonedConnectionCleanupThread.java:90 ) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1136 ) at java.base/java.util.concurrent.ThreadPoolExecutor$ Worker.run ( ThreadPoolExecutor.java:635 ) at java.base/ java.lang.Thread.run ( Thread.java:833 ) 이런 메시지가 나오면서 404 에러가 뜹니다.
왜 13인가요? H부터 0 이니까 , 랑 띄어쓰기가 포함인가요 포함해도 12이지않나요? 이해가 어려운 섹션이나 영상 설명은 질문으로 꼭 남겨주세요. 기출문제를 풀다가 막힌 개념이 있나요? 질문으로 회차나 번호, 개념을 예시로 질문해주세요. 답변에 도움이 됩니다. 이론 문제는 통합본 PDF 파일로 제공될 예정입니다. (6월 중 업로드 예정) 합격을 가르는 것은 역시 코드해석문제. 이론을 외울 시간이 없다면 코드에 익숙해지고, 중요 개념을 몇 가지 외워가면 합격할 수 있습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요! 이번 강의 내용 중에 자바 언어에서 메서드 앞에 별도의 참조가 없으면 this라는 뜻으로 자기 자신의 인스턴스를 가리킨다 는 this.internal() 이 되는데, 여기서 this 는 자기 자신을 가리키므로, 실제 대상 객체(target)의 인스턴스를 뜻한다. 라고 설명이 되어 있는데 지금 까지 알던 개념은 CallService(부모), CallServiceProxy(자식) 관계가 존재한다면 CallServiceProxy 입장에서는 this는 자기 자신의 주솟값을 가리킨다. super는 부모 즉 CallService의 주솟값을 가리킨다 입니다 여기서 this는 그럼 프록시 자기 자신의 객체 주솟값이 아닌 (부모의 주솟값 == super == trarget ) 를 가리킨다고 이해하면 될까요? 그렇다고 하면 해당 프록시 객체는 자기 자신의 참조 주솟값은 스택 프레임에서 가지지 않는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6y gx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴 얼 링크: https://bit.ly/2Ufe qCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 회원 서비스 개발 강의에서 3분 40초 ~ 4분 30초 사이에서 강사님 말씀 중에 DB에 들어가지 않아도 PK인 ID 값이 애플리케이션에서 보장된다고 말씀해 주셨는데 시퀀스 전략일 경우에는 확실히 가능하다고 생각하지만 IDENTITY 전략을 사용할 경우에도 ID 값이 보장되는지 궁금합니다. 제가 생각하는 것은 IDENTITY 전략은 ID의 생성이 쿼리가 DBMS에 도달해 저장되는 시점에 할당되는 것으로 유일한 값을 보장해주는 것이고, 애플리케이션에서는 그 값을 저장하기 전까지는 알 수 없다는 것으로 알고 있는데 이 로직대로라면 ID 값이 보장될 수 없지 않나라고 생각합니다.
Char*s = & helli.world 라고 안한다 라는말에서 &가 뭔가요. 말씀이 이해가 가질않네요. 강의 열심히 수강중인데 너무 휙휙 넘어가서 이해하기가 상당히 어렵습니다. 어떻게 공부해야하나요?더불어 교재나 교안같은걸 다운받아 복습할수있으면 좋겠어요. 이해가 어려운 섹션이나 영상 설명은 질문으로 꼭 남겨주세요. 기출문제를 풀다가 막힌 개념이 있나요? 질문으로 회차나 번호, 개념을 예시로 질문해주세요. 답변에 도움이 됩니다. 이론 문제는 통합본 PDF 파일로 제공될 예정입니다. (6월 중 업로드 예정) 합격을 가르는 것은 역시 코드해석문제. 이론을 외울 시간이 없다면 코드에 익숙해지고, 중요 개념을 몇 가지 외워가면 합격할 수 있습니다.
안녕하세요, 싱글톤 레지스트리 부분 강의를 들으며 궁금한 점이 있어 질문드립니다. 웹 어플리케이션에서 상태값을 가지지않는 객체를 매번 생성하는 것이 메모리의 부족을 일으켜 성능이 저하된다는 말에 동의합니다. 제가 궁금한 것은 이것이 크게 효과가 있는것인지에 대해 궁금합니다. 그렇게 생각하는 이유는 @Component 어노테이션이 달린 클래스들(비즈니스 로직이 담긴 스프링빈) 은 많은 상황에서 DTO 를 반환하게되는데 해당 DTO 를 인스턴스화해서 반환하는 작업이 계속 수행되면 결국에는 큰 차이가 없지않나[복잡도로 봤을때 객체의 인스턴스를 생성하는 횟수는 같은 O(n) 이 아닐까..?] 하는 생각이 들어 질문하게 되었습니다. DB 커넥션을 맺는 DataSource 같은 빈이 아닌 어플리케이션의 비즈니스로직을 담은 빈을 싱글톤으로 다루는 것이 큰 효과가 있는지에 대해 답변을 부탁드립니다. 좋은강의 감사합니다.