inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

값이 없으면 예외를 던지는 것이 더 자연스러운 상황에 대한 질문

미해결

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

베스트 프랙티스 6.무조건 Optional이 좋은 것은 아니다 부분을 설명 하실 때 "값이 없으면 예외를 던지는 것"이 더 자연스러운 상황에 대한 설명 부분에서 궁금한 것이 생겨서 질문드립니다. 예를 들어 특정 ID 기반으로 User 엔티티를 찾는 DBA 코드가 있다고 할 때 반환타입을 Optional<User>가 아닌 User로 했을 때 클라이언트 코드쪽에서는 if (user == null) { throw new NotFoundException("..."); } 아래와 같은 Optional을 사용한 코드보다 위와 같은 이런 코드가 더 낫다는 걸로 받아들이면 될까요?? findUserById(userId) .orElseThrow(() -> new NotFoundException("..."));

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
service 댓글 2 좋아요 0 조회수 151

UsernameOnlyDto 타입 type mismatch 오류

미해결

실전! 스프링 데이터 JPA

========================================= [질문 템플릿] 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)

  • java
  • spring
  • spring-boot
  • jpa
Sj Choi 댓글 1 좋아요 0 조회수 137

Optionl.of에 대한 질문

미해결

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

Optinal은 "값이 없을 수도 있다" 라는 의도를 드러내기 위해 사용하잖아요. 근데 Optional의 정적 생성자 메서드 중에 Optional.of()를 보면, null일 경우 NPE가 발생하는데, 그럼 Optional을 사용하는 의미가 없지 않나요? Optional.ofNullable과 empty는 사용의도라던가 언제 사용하면 되겠다에 대한 인사이트가 확 오는 반면에 Optional.of는 언제 사용하면 좋을지에 대한 감이 안오네요.

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
service 댓글 1 좋아요 1 조회수 124

강의 다 들었는데 마무리 공부 어떻게 해야되요?

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

강의 다 들었는데 마무리 공부 어떻게 해야되요? 강의 들은 거 만 복습 하면되나요? 다른 학습지도 문제 풀어봐야 되나요?

  • python
  • java
  • c
  • 정보처리기사
ncy84 댓글 2 좋아요 0 조회수 174

주소값에 실제로 접근하는데 걸리는 시간??

해결됨

김영한의 실전 자바 - 중급 2편

강의 주제와 직접적인 연관은 없는거지만.. 실제 주소값으로 접근하는데 걸리는 시간은 고려하지 않아도 되는가? 입니다 아무리 배열이 인덱스의 실제 주소값을 한번에 계산해서 찾는 구조라고는 해도 결국 그 주소까지 이동하는건 시간이 걸릴거같은데요 예를들어 그게 10억 번째 인덱스라면 거기까지 순간이동 할수는 없잖아요?? 그래서 인덱스 번호에 비례해서 시간이 더 걸리긴 할거같은데.. 이건 너무 인간의 관점에서 생각하는거고 실제로 컴퓨터는 다르게 동작하는 걸까요?? 제가 생각해도 너무 무식한 질문이긴한데 의문을 해소하고자 질문 드립니다 ㅠㅠ ============================ 수강을 더 진행하다보니 실제 성능 설명 파트에서 메모리 접근에 대한 얘기를 해주셔서 의문이 자연스럽게 해결됐습니다 !

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
정신차려 댓글 1 좋아요 0 조회수 114

10:35 구조체 포인터,구조체 배열 관련

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

1.배열포인터는 첫번째 인덱스 값이 나온다고 하셨었는데 구조체 포인터는 초기값이 뭐가 나오나요? struct Person{ int age = 10; int price = 5; } person1 main(){ struct Person person1; struct Person *ptr = &person1; System.out.printf(“%d”, *ptr); } 2.아래처럼 구조체 명을 명시하지 않은경우엔 구조체 배열, 구조체 포인터를 어떻게 생성하나요? struct { int age = 10; int price = 5; } person1

  • python
  • java
  • c
  • 정보처리기사
010-5225 댓글 2 좋아요 0 조회수 103

저도 람다에 파라미터 힌트를 키고싶어요,,

미해결

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

저도 람다 사용할 때 o -> o.getDelivery() 이거 사용할 때 파라미터 힌트로 Order 같은걸 띄우고싶습니다. 옵션에 Inlay Hints 에서 자바쪽도 다 켜보고 했는데 저는.. 왜 안켜질까요 ㅠㅠ

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
ppj2130 댓글 2 좋아요 0 조회수 179

cloudstudying.kr 비밀번호 찾기

미해결

그림으로 배우는 자바, 파트1: 입문!

안녕하세요. 옛날에 만들어놨던 계정 비밀번호가 안됩니다. 자주 쓰는 비밀번호를 다 해봐도 안되서 비밀번호 찾기로 이메일 주소 입력해서 메일을 받아야하는데 오류가 뜹니다. 해결해주실 수 있을까요? 아이디 이메일주소는 #####@naver.com입니다. 혹시나 가입이 안되어있나해서 회원가입으로 이메일주소 아이디로 넣으니까 있다고는 되어있는데 비밀번호 찾기가 안되고 있습니다!

  • java
조아름 댓글 2 좋아요 0 조회수 151

날짜와 시간 문제 2번.

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. package time.test; import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class TestLoopPlus { public static void main(String[] args) { LocalDate startDate = LocalDate.of(2024, 1, 1); for (int i = 0; i < 5; i++) { LocalDate nextDate = startDate.plus(2 * i, ChronoUnit.WEEKS); System.out.println("날짜" + (i + 1) + ": " + nextDate); } } } 반복문 안에서 nextDate로 받는것도 불변 객체 아닌가요? 불변객체이면 새로운 변수로 받아야 하는 게 아닌가해서 반복문 안의 코드가 이해가 잘 안됩니다.

  • java
  • 객체지향
한재 댓글 2 좋아요 0 조회수 111

공부방법 관련 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요. 안녕하세요 선생님. 사정이 있어서 시험 시작 15일 전에 시험 준비를 시작한 비전공자 학생입니다. 코딩 관련된 회차 강의를 다 듣고 올려주신 기출 문제를 최근 문제까지 다 풀어봤을 때 24년 2회차 전 까지는 각 회차마다 한 두문제 막히긴 해도 거의 다 맞추던가 복습을 하면 어느정도 커버가 가능할 정도로 자신감이 있었습니다. 그런데 24년 2회차 부터 생각보다 어려운 문제들이 많아서 코딩 2문제 정도는 손을 못댈 정도로 벅차다고 느끼고 있습니다.(물론 아직 시험까진 11일 정도 남았지만 킬러문제를 맞출 수 있을거란 생각이 안들어서요...) 여기서 들은 생각이 선생님께서 추천 해주신 코드문제를 다 맞추고 이론을 두문제 정도 맞추는 전략이 아닌 코드 킬러문제는 버리고 이론문제를 조금 더 맞추는 전략은 어떨지 여쭤보고 싶어 질문드립니다. 그러하면 이론 공부에 시간을 조금 더 투자해야 하는데 어떻게 하는게 좋을까요???

  • python
  • java
  • c
  • 정보처리기사
서찬 댓글 2 좋아요 0 조회수 188

17:25 %.5lf 관련

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

%.2f는 소숫점 둘째 자리까지 출력하라는 거고 %.5lf는 소숫점 다섯째자리까지 출력하라는 건데 2는 f고 5는 lf여야 하는건가요? 2lf 혹인 5f는 틀린 문법인가요?

  • python
  • java
  • c
  • 정보처리기사
남찬우 댓글 2 좋아요 0 조회수 149

섹션7 강의자료

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

섹션7강의중에 강의자료가 없는 강의가 많은데 이건 강의자료가 없는건가요?

  • python
  • java
  • c
  • 정보처리기사
지성조 댓글 2 좋아요 0 조회수 97

아스키코드 19분 13초 기출문제 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 *(p+3) 과 *p+4 에서 괄호가 있다면 해당 메모리 배열에서 3만큼 움직이라는 뜻이고 괄호가 없다면 아스키코드로 구하라는 뜻으로 이해해도 될가요? ()의 유무가 어떤식으로 달라지는지 설명 부탁드립니다 감사합니다

  • python
  • java
  • c
  • 정보처리기사
지현 댓글 2 좋아요 0 조회수 102

6분 29초 코드 예제 질문

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 6분 29초에 구조체를 여러개 넣는 배열에서 질문이 있습니다 메인함수 7번째 라인 즉, cars[0]/model[i] = '\0' //문자열 종료 문자 가 코드에서 어떤 역할을 하는 지 여쭤봅니다 그 위 2줄에 for문을 돌면서 널문자를 만날 때 까지 돌면서 이름을 가져오는데 7번째 라인은 어떤 의미인지 궁금합니다 감사합니다

  • python
  • java
  • c
  • 정보처리기사
지현 댓글 2 좋아요 0 조회수 76

빌드 중단 시 오류 발생

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] build를 Gradle로 할 시 아래 사진과 같은 오류가 납니다 intellij로 하면 아래와 같은 오류가 안 나구요 혹시 해결 방안이 있을까요? 오류 원인은 무엇일까요? 참고로 오류 발생은 빌드 중단 시 납니다

  • spring
  • mvc
duddlsrhdqn 댓글 1 좋아요 0 조회수 93

서블릿 localhost8080

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 안녕하세요, 강의 수강 중 질문이 생겨 여쭤보게 되었습니다. 강의를 들으며 라이브 코딩 중 제 노트북에서 localhost 8080/hello를 입력 시 연결이 안되더라고요.. 이것 저것 해결하려 노력을 하였는데도 여전히 해결하지 못하였는데, 원인이 혹시 무엇인지 알 수 있을까요 ? 유료 버전 사용 중이고, openjdk 24, war을 선택하였습니다. 좋은 강의 제공해주셔서 항상 감사드립니다!

  • spring
  • mvc
wonderwall09in 댓글 2 좋아요 0 조회수 145

서블릿과 서블릿컨테이너 그리고 WAS

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

[질문 내용] HttpServletRequest 역할 HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. pdf보면 위 내용처럼 HTTP 요청 메시지를 파싱하고 그 결과를 Request 객체를 만드는게 서블릿이라고 적혀있는데 WAS와 서블릿을 구분해서 공부를 하던 도중 개념이 헷갈려서 https://jakarta.ee/specifications/servlet/5.0/apidocs/jakarta/servlet/http/httpservletrequest 공식문서를 찾아봤는데 The servlet container creates an HttpServletRequest object and passes it as an argument to the servlet's service methods ( doGet , doPost , etc). 요청 객체와 파싱은 서블릿 컨테이너가 한다고 나와있습니다. 찾아보니까 서블릿과 서블릿 컨테이너는 같은 의미는 아닌거 같고 그럼 여기서 말하는 서블릿 컨테이너는 WAS 같은건가요? 아니면 서블릿 = 서블릿 컨테이너 라고 개념을 익혀도 괜찮은건가요?

  • spring
  • mvc
홍기현 댓글 1 좋아요 0 조회수 76

반복문과 range

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

11분 30초 답이 13579 아닌가요? 1 3 5 7 9 라고 나와있어요 for i in range(1, 10,2): print(i, end=" ")

  • python
  • java
  • c
  • 정보처리기사
정재호 댓글 1 좋아요 0 조회수 119

트랜잭션 전파 활용 - UnexpectRollbackException 관련 질문

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

트랜잭션 전파 활용까지 강의를 수강하고나니 이전 질문 해당 질문에서 질문했던 1번 경우에 대해서는 제 생각이 맞는 것 같다는 결론이 나왔습니다. 그리고 활용 강의까지 들으면서 느낀건데 애초에 UnexpectRollbackException 예외는 실제 정상 운영중인 서비스에서는 발생하면 안되는 예외고 테스트 과정같은 개발 환경에서 개발자가 캐치해서 이 예외가 발생하지 않게끔 코드를 수정하기위한 일종의 알림같은 예외라고 생각이 되었습니다. 그래서 굳이 exceptionhandler로 UnexpectRollbackException 예외를 처리하는것은 뭔가 옳지 않은 방법이지 않을까 하는 생각이 들었습니다. 제 생각이 맞나요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
한현진 댓글 2 좋아요 0 조회수 132

14분대 질문있습니다.

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

A b = new B();였다면 생성자 of A ADCD가 되는 건가요? 질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.

  • python
  • java
  • c
  • 정보처리기사
이은비 댓글 2 좋아요 0 조회수 101

인기 태그

인프런 TOP Writers

주간 인기글