묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
엔티티 조회와 DTO조회
엔티티 조회를 권장하신다고 했는데 엔티티 조회로 처리 안 되는 경우가 있나요? 엔티티로 조회한 결과를 DTO로 변환해서 넘기는게 가장 좋은 방법 아닌가요??
-
해결됨스프링 핵심 원리 - 기본편
call AppConfig.memberRepository가 왜 두번 더 호출되나요?
11:47부터 //call AppConfig.memberService //call AppConfig.memberRepository//call AppConfig.memberRepository//call call AppConfig.orderService//call AppConfig.memberRepository처럼 보인다했는데//call AppConfig.memberRepository//call AppConfig.memberRepository가 //call AppConfig.memberService후 에 두번 호출되는것처럼 보인다는건가요?//call call AppConfig.orderService호출 후 한번 call AppConfig.memberRepository출력된것처럼 보이는거아닌가요??왜 memberService일때는 왜 레포지토리가 두번 호출되는것처럼 보이나여ㅛ?
-
미해결스프링 핵심 원리 - 기본편
AutoAppConfig의 memberRepository() 반환 유형에 따른 충돌 여부
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.AutoAppConfig의 memberRepository() 반환 타입을 아래와 같이 인터페이스로 했을때는 충돌이 발생했습니다. 그런데@Configuration @ComponentScan( basePackages = "hello.core", excludeFilters=@ComponentScan.Filter(type= FilterType.ANNOTATION,classes=Configuration.class) ) public class AutoAppConfig { @Bean(name="memoryMemberRepository") MemberRepository memberRepository(){ return new MemoryMemberRepository(); } }해당 함수의 반환 타입을 아래와 같이 실제 구현체 클래스인 MemoryMemberRepository로 하니까 test 시 충돌이 발생하지 않습니다. 빈이름이 같으면 반환타입을 인터페이스로 하든, 그 구현체로 하든 충돌이 발생해야된다고 생각했는데 왜 실제 구현체로 하면 충돌이 발생하지 않나요?@Configuration @ComponentScan( basePackages = "hello.core", excludeFilters=@ComponentScan.Filter(type= FilterType.ANNOTATION,classes=Configuration.class) ) public class AutoAppConfig { @Bean(name="memoryMemberRepository") MemoryMemberRepository memberRepository(){ return new MemoryMemberRepository(); } }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
open or import
제가 이 강의 듣기 전 java 인강도 듣고 있던 터라 인텔리제이에서 open or import 버튼을 누르지못하는데요 (초기화면으로 돌아가지 못해요) 혹시 인텔리제이를 삭제했다가 다시 깔아야 하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품 정보 삭제 기능
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Hibernate 질문 있습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]17 :13 에서 MemberServiceIntegrationTest 의 회원가입을 실행했을 때 김영한님은 insert into member(id,name) values (null,?) 라고 뜨시는데 저는insert into member (name, id) values (?,default) 라고 뜹니다 member 과 values 둘 다 순서가 바뀐 것 같은데 어디를 봐야 고칠 수 있을까요..?
-
미해결스프링 핵심 원리 - 고급편
필터와 인터셉터에서 스레드 로컬 clear
안녕하세요 강의 끝부분에서 스프링 필터나 인터셉터에서 스레드 로컬 값들 클리어해주는게 베스트인 뉘앙스로 얘기해주셨는데요.(혹은 원칙대로 최소 remove() 호출해주거나요) remove() 호출을 생각할 때, 보관된 값 제거는 스레드 로컬이 적용된 특정 인스턴스 필드값을 알아야 가능해보입니다.e.g. traceIdHolder.remove()필터 및 인터셉터에서는 이 인스턴스 변수를 알 수 없을 것 같은데, 어떻게 스레드 로컬에 보관된 값을 제거할 수 있을까요?머릿속에 잘 그려지지 않아서 질문 드립니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
anyRequest().access(매니저) 질문!
강사님 안녕하세다음과 같은 코드에서.anyRequest().authenticated()는 따로 안해줘도 되는건가요? 음 그러니깐 궁금한것이 원래 하드코딩으로 설정하게되저희가 권한규칙 부여한것외의 엔트리포인트는 모두 인증되어야한다고 설정해줘야하잖아요!1근데 저렇게 매니저를 넣어주게되면 ?저것외의 엔트리포인트는 인증되어야한다는 어디서 처리하게되는지 궁금해요
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ToOne은 왜 한 번만 땡겨오나요?
안녕하세요 강의 설명중에 ToOne은 한번만 땡긴다고 하셨는데 이유가 주문당 멤버랑 배송은 하나만 있으니까 한번만 가지고 온다고 하신걸까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
jwt와 oauth2 활용!
강사님 안녕하세요! 제가 강의를 다듣고 jwt와 oauth2를 활용해서 연습해보려고하는데요! 혹시 jwt와 oauth2를 사용하려면 넣어야하는 그래들 의존성이라든지 기타 조언해주실점 있으면 받고싶습니다!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
해결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 이런 오류가 3_3 부터 생기는데 해결이안됩니다! It appears as if your JDK does not supply a working agent attachment mechanism.Java : 21JVM vendor name : Oracle CorporationJVM vendor version : 21.0.3+7-LTS-152JVM name : Java HotSpot(TM) 64-Bit Server VMJVM version : 21.0.3+7-LTS-152JVM info : mixed mode, sharingOS name : Windows 11OS version : 10.0at app//org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260)at app//org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23)... 18 moreCaused by: java.lang.IllegalArgumentExceptionat java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method)at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:280)at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177)... 19 more
-
미해결스프링 핵심 원리 - 기본편
FilterType.ASSIGNABLE_TYPE 관련 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1번 캡쳐2번 캡쳐Q) 컴포넌트 스캔 강의 초반에 강사님께서 기존에 사용하던AppConfig(1번 캡쳐)에서의 빈 등록과 새롭게 만들 AutoAppConfig (2번 캡쳐)에서의 빈 등록이 중복될까봐 AutoAppConfig에서 2번 캡쳐와 같이 Configuration.class 애노테이션을 붙인 녀석들을 exclude를 시켜주었습니다. 여기까지는 문제가 없이 이해가 가지만,강사님께서 알려주셨던 Assignable_type 을 활용하여기존에 사용하던 AppConfig 클래스를 아래와 같이 exclude 를 하여 돌려보았는데, 이때는 실행이 되지 않고 빈 충돌이 일어납니다. 이유가 무엇인지 궁금합니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
예외를 공통으로 처리하는곳
안녕하세요. 강의를 듣던중에 궁금한점이 있어서 질문드립니다.이번강의에서도 그렇고, 앞서 다른 강의에서도 "복구할수 없는 예외는 예외를 공통으로 처리하는 부분까지 전달되고, 예외를 공통으로 처리하는곳에서 처리한다 " 고 하셨는데, 지금까지 강의에서도 이 부분에서 대해서는 자세한 설명이 없으셔서 넘어가긴했는데 예외를 공통으로 처리하는곳이 구체적으로 어떤부분을 말하는것일까요? 지금까지는 이 부분에 대해서는 학습한적이 없는걸로 생각되는데 제가 놓친부분이 있는것인지 아니면 추후 강의에서 설명을 해주시는 부분인지 질문드립니다..!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
중복_회원_예외 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 뭐가 문제인지 모르겠습니다 ㅠㅠ isEqualto도 빨간색으로 뜨면서 작동이 안되고요 ㅠㅠpackage hello.hello_spring.service; import hello.hello_spring.domain.Member; import hello.hello_spring.repository.MemoryMemberRepository; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService = new MemberService(); MemoryMemberRepository memoryMemberRepository = new MemoryMemberRepository(); @AfterEach public void afterEach() { memoryMemberRepository.cleatStore(); } @Test void 회원가입() { //given Member member = new Member(); member.setName("hello"); //when long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); //ctrl + alt + v assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when Long saveId = memberService.join(member1); //then IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage().isEqualTo("이미 존재하는 회원입니다.")); /* try { memberService.join(member2); fail(); } catch (IllegalStateException e) { assertThat(e.getMessage().equals("이미 존재하는 회원입니다.")); } */ } @Test void findMembers() { } @Test void findOne() { } }Unexpected exception type thrown, expected: <java.lang.IllegalStateException> but was: <java.lang.RuntimeException> Expected :class java.lang.IllegalStateException Actual :class java.lang.RuntimeException <Click to see difference> org.opentest4j.AssertionFailedError: Unexpected exception type thrown, expected: <java.lang.IllegalStateException> but was: <java.lang.RuntimeException> at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:67) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35) at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3115) at hello.hello_spring.service.MemberServiceTest.중복_회원_예외(MemberServiceTest.java:53) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:28) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hello_spring.service.MemberService.validateDuplicateMember(MemberService.java:24) at hello.hello_spring.service.MemberService.join(MemberService.java:16) at hello.hello_spring.service.MemberServiceTest.lambda$중복_회원_예외$0(MemberServiceTest.java:54) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53) ... 6 more Caused by: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:26) ... 11 more java.lang.IllegalAccessException: 이미 존재하는 회원입니다. java.lang.RuntimeException: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:28) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hello_spring.service.MemberService.validateDuplicateMember(MemberService.java:24) at hello.hello_spring.service.MemberService.join(MemberService.java:16) at hello.hello_spring.service.MemberServiceTest.lambda$중복_회원_예외$0(MemberServiceTest.java:54) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53) at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35) at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3115) at hello.hello_spring.service.MemberServiceTest.중복_회원_예외(MemberServiceTest.java:53) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.lang.IllegalAccessException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:26) ... 11 more
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
update() 에서 Item 을 @NotNull로 추론할 수 있는 근거가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. controllerV4에서 edit메서드를 고치는 도중에 itemRepository.update()에서 cmd+p 를 통해 파라미터 정보를 확인해보니 Item이 @NotNull 이라고 나옵니다하지만 ItemRepository에서 update 메서드를 확인해보니 파라미터에 @NotNull 조건이 없는데 어떻게 NotNull 이라고 나오는걸까요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품주문_재고수량초과() 질문
@Test public void 상품주문_재고수량초과() throws Exception { //Given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); //이름, 가격, 재고 int orderCount = 11; //재고보다 많은 수량 //When assertThrows(NotEnoughStockException.class, () -> orderService.order(member.getId(), item.getId(), orderCount)); //Then fail("재고 수량 부족 예외가 발생해야 한다."); }이렇게 작성할 경우, fail()문을 넣으면 테스트오류가 뜨는데 없애는 게 맞나요, 안넣으면 오류가 안떴을 경우를 어떻게 확인하나요??
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
실전강의 질문 (Rest 인증 필터 구현)
인증 필터에 왜 authenticationManager를 굳이 셋해주는지 궁금합니다!!..
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Java 17 다운로드
java 17을 다운받고 인텔리제이를 실행했는데요 group이나 version (보라색 글씨)가 활성화?가 안돼요그리고 java 11과 java 14를 깔았던게 있는데 이것때문에 cmd 에서 java -version 이라고 쳤을 때 14가 계속 뜨는 바람에 11과 14를 모두 지우고 17만 남겨뒀거든요 그런데 인텔리제이에서 제가 같이 듣고있는 자바코드들이 다 오류가 뜹니다. CoreApplication.java 도 실행이 아예 되질 않습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
에노테이션예외 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)y2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)y3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)y[질문 내용] Caused by: org.hibernate.AnnotationException: Entity 'jpabook.jpashop.domain.Category' has no identifier (every '@Entity' class must declare or inherit at least one '@Id' or '@EmbeddedId' property)실행시 에러메세지가 뜨는데 @Id 에노테이션이 있음에도 해결되지않습니다. 소스파일도 첨부합니다https://drive.google.com/file/d/126dOVMwaCPYOSqD4f7XOC0BkCUqtONAK/view?usp=sharing
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
스프링 부트 버전
강의에서 사용하신 3.2.2 는 안 보이고,대신 3.2.9가 가장 낮은 버전이고, 3.3.3으로 진행하려고 하는데 상관없나요?