질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
각각의 if문이 2의 배수 이거나 3의 배수면 참이다와 6의 배수가 아니면 참이다 라는건 이해가 됩니다. 그래서 처음 i가 1일때 처음 if절은 거짓이고 두번째 if절은 참이니깐 count가 +1 되는건가요? 그러고 다시 i가 2일때는 첫번째 두번째 if절이 다 참이어서 count +1이 되는건가요? 그리고 i가 6일 경우에 첫번째 if절이 참이고 두번째 if절은 거짓인데 이런 경우는 어떻게 되는건가요?
class Dog 에서 클래스 내부에 생성자가 없는데 main에서 Dog myDog = new Dog(); 라고 객체를 선언했는데, 이 문장에서 제가 강의로 이해한 바로는 초록색 도그 부분이 클래스이름으로 타입이 되고, new뒤에 있는 도그가 생성자 메서드 인줄 알았는데 잘못이해 한것일까요? 클래스내에 생성자가 없어도 인스턴스? 객체를 생성할 수 있나요? 아니면 생성자가 없기때문에 객체가 아니라 인스턴스 인것인가요?
Q1. 클래스 A에서 a라는 정적변수가 있고, 클래스 B에서 a라는 정적변수가 있다면 각각의 a는 다른 것으로 보는 게 맞나요? 클래스 A의 인스턴스 a1과 a2가 있고, 클래스 B의 인스턴스 b1이 있을 때 a1.a와 b1.a는 다른 것이고, a1.a와 a2.a는 같은 정적변수를 참조한다는 것으로 이해하면 될까요? Q2. 보여주신 예제들은 모두 정적변수 또는 정적메서드가 존재하는 클래스 내에 main 함수가 있는데 이것도 혹시 이유가 있을까요?
안녕하세요. 1. 저번에 다른분이 올린 질문 내용을 보니까 강의에 있는 내용도 추가해서 이론 요약 pdf 업데이트 해주신다고 했는데 이번 주말에 올라오나요? 2. 사실 이론은 강의를 봐도 '아하 그렇구나' 이정도인데 이정도만 이해하고 요약본에 있는 내용만 암기하면 될까요? 3. 강의를 다 듣고 나서는 2020년~2023년까지 기출문제를 반복해서 보는게 좋을까요? 아니면 강의 내용을 다시 보는게 좋을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 문제1번을 풀었는데 좀 달라서요..답은 나오는데 역시 틀렸다고 보는게 맞겠죠?
안녕하세요. 제네릭 하한 바운드(super) 관련해서 질문 드립니다. 상한 바운드(extends) 같은 경우에는 현재 실무에서도 유용하게 사용하고 있는데요. 다만 하한 바운드는 실무에서 한번도 사용해본 적이 없습니다. 하한 바운드는 결국 Object까지 거슬러 올라갈 수 있기 때문에 이점이 없다고 생각하고, 보통은 상한 바운드로 해결이 되었기 때문인데요. 혹시 하한 바운드에 대한 활용 사례를 간단히 설명해주실 수 있으실까 해서 질문 드립니다!
안녕하세요 강의 듣다가 문득 궁금한점이 생겨서 질문드립니다. ArticlePageResponse 클래스에 List<ArticleResponse> articles; 를 구성으로 하여 클래스를 생성해주셨는데 ArtlcieResponse를 상속하여 만들어진 ArticlePageResponse를 활용하여도 상관 없을까요?? 자바, 스프링을 동시에 공부하고 있다보니.. 주니어의 허접한 질문에 답변해주시면 감사드리겠습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] Thread 의 yield 함수에 대해서 질문드립니다 . 양보를 할지 말지 에 대한 hint만 주는것이고 스케쥴링이 알아서 양보 여부에 대해 정한다고 하셨는데 만약에 양보를 하게되면 que의 제일 뒤로 가게 되는건가요? 만약에 que에 10개의 일이 쌓여있으면 양보를 하게되면 10개가 다 끝나고 실행 되는 건지 아니면 1~~n개가 실행되고 그다음에 실행 되는 건지는 모르는 건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 항상 좋은 강의 감사드립니다. BlockingQueue는 스레드가 동시에 접근하였을때 동시성 제어를 위한 자료 구조인데 세마포어 개념도 동시에 스레드가 접근 하였을때 가능한 스레드 수를 제어하는 개념인 것을 공부하였습니다. 어떤 상황에서 BlockingQueue 를 쓰고 어떤 상황에서 세마포어를 쓰는게 더 좋을까요? 락을 획득하였을떄 Queue 는 FIFO 구조이므로 순서를 보장해주고 싶을 떄 BlockingQueue 를 쓰는게 좋나요? 세마포어는 스레드가 직접 자원을 획득하기 전까지 기다리니까 동기이고 비동기는 큐에 넣고 다른 일을 하러 가는 즉 호출한 함수가 처리 결과를 기다리지 않는 비동기여서 동기/ 비동기 차이를 구분하고 싶을때 쓰는게 둘을 구분해서 쓰는게 좋을까요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하십니까 선생님, 영속성 컨텍스트의 변경 감지에서 질문있습니다. 강의 내용 중 엔티티 클래스에는 가급적 Setter를 사용하지 말라고 하셨는데(특히 실무에서) 변경 감지라는 게 엔티티를 조회하여 영속성 컨텍스트에 저장을 해야 이 영속성 컨텍스트의 스냅샷을 통해 엔티티 필드의 값에 변경이 일어났을 때 update를 시키는 것이고 결국 엔티티의 필드를 수정 해야 하는데 그럼 필드를 수정하기 위해선 또 결국 Setter를 사용할 수밖에 없는 것 아닌가요???
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 안녕하세요, 강의 수강 중 질문이 생겨 여쭤보게 되었습니다. 스레드의 생명 주기 - 코드 강의 파트에서 Thread.sleep(1000);를 입력하여 메인 스레드를 잠시 멈추는데, 메인 스레드의 이름이 Thread라서 Thread.sleep을 하는 것일까요 ? 아니면, sleep 메서드가 static이어서 이렇게 사용되는지 궁금합니다.
베스트 프랙티스 6.무조건 Optional이 좋은 것은 아니다 부분을 설명 하실 때 "값이 없으면 예외를 던지는 것"이 더 자연스러운 상황에 대한 설명 부분에서 궁금한 것이 생겨서 질문드립니다. 예를 들어 특정 ID 기반으로 User 엔티티를 찾는 DBA 코드가 있다고 할 때 반환타입을 Optional<User>가 아닌 User로 했을 때 클라이언트 코드쪽에서는 if (user == null) { throw new NotFoundException("..."); } 아래와 같은 Optional을 사용한 코드보다 위와 같은 이런 코드가 더 낫다는 걸로 받아들이면 될까요?? findUserById(userId) .orElseThrow(() -> new NotFoundException("..."));
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. UsernameOnly 인터페이스 타입과 지네릭스 타입으로 결과는 문제 없이 동작하지만 UsernameOnlyDto 타입으로 결과 값을 받으려고 findProjectionsByUsername를 호출하면 type mismatch 오류가 생깁니다. Specified result type [study.datajpa.dto.UsernameOnlyDto] did not match Query selection type [study.datajpa.entity.Member] - multiple selections: use Tuple or array List<UsernameOnlyDto> result = memberRepository.findProjectionsByUsername("m1"); package study.datajpa.dto; public class UsernameOnlyDto { private final String username; public UsernameOnlyDto(String username) { this.username = username; } public String getUsername() { return username; } } // List<UsernameOnly> findProjectionsByUsername(@Param("username") String username); List<UsernameOnlyDto> findProjectionsByUsername(@Param("username") String username); <T> List<T> findProjectionsByUsername(@Param("username") String username, Class<T> type); org.springframework.orm.jpa.JpaSystemException: Specified result type [study.datajpa.dto.UsernameOnlyDto] did not match Query selection type [study.datajpa.entity.Member] - multiple selections: use Tuple or array at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:341) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:560) at org.springframework.dao.support .ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support .DataAccessUtils.translateIfNecessary(DataAccessUtils.java:343) at org.springframework.dao.support .PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.data.jpa.repository.support .CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:136) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) at jdk.proxy2/jdk.proxy2.$Proxy149.findProjectionsByUsername(Unknown Source) at study.datajpa.repository.MemberRepositoryTest.projections(MemberRepositoryTest.java:403) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Suppressed: org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support .AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:804) at org.springframework.transaction.support .AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:758) at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:135) at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:272) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:488) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:275) ... 2 more Caused by: org.hibernate.query.QueryTypeMismatchException: Specified result type [study.datajpa.dto.UsernameOnlyDto] did not match Query selection type [study.datajpa.entity.Member] - multiple selections: use Tuple or array at org.hibernate.query.sqm.internal.SqmUtil.throwQueryTypeMismatchException(SqmUtil.java:1272) at org.hibernate.query.sqm.internal.SqmUtil.verifyResultType(SqmUtil.java:1209) at org.hibernate.query.sqm.internal.SqmUtil.verifySelectionType(SqmUtil.java:1159) at org.hibernate.query.sqm.internal.SqmUtil.verifySingularSelectionType(SqmUtil.java:1114) at org.hibernate.query.sqm.internal.SqmUtil.checkQueryReturnType(SqmUtil.java:1088) at org.hibernate.query.sqm.internal.SqmUtil.checkQueryReturnType(SqmUtil.java:1049) at org.hibernate.query.sqm.internal.SqmUtil.validateQueryReturnType(SqmUtil.java:1040) at org.hibernate.query.sqm.tree.select .SqmSelectStatement.validateResultType(SqmSelectStatement.java:153) at org.hibernate.query.sqm.internal.QuerySqmImpl.<init>(QuerySqmImpl.java:240) at org.hibernate.internal.AbstractSharedSessionContract.createCriteriaQuery(AbstractSharedSessionContract.java:1483) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:1443) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:143) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:320) at jdk.proxy2/jdk.proxy2.$Proxy136.createQuery(Unknown Source)