묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 고급편
순환참조
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스프링 부트 2.6이상 사용중이라 순환 참조를 기본적으로 금지하는 구조인데spring.main.allow-circular-references=true이 옵션을 넣으면 되긴 합니다.다만, ObjectProvider 를 사용하면 아래와 같이 문서가 작성되어위 옵션을 제거해서 다시 테스트 했는데 circular 예외가 발생하더라구요... 이 부분에서 순환이 안생겨서 옵션이 없어도 되어야 되는데 안되는 느낌이라 제가 잘 못 이해한거지... 답변 부탁드립니다.ㅜㅜ
-
미해결스프링 핵심 원리 - 기본편
AutoAppConfig 빈 객체 관련
[질문 내용]AppConfig에서는@Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); }빈 객체로 return new 된 MemberServiceImpl이담긴다고 설명하셨는데AutoAppConfig에서는 빈 객체로@Component가 붙은 클래스 타입이 담기는게 맞나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 gradlew build 실행 안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]git bash 연동했고 터미널을 열어서 가장 먼저 ./gradlew를 입력하면 위 과정까지 수행이 됩니다. 하지만 그 다음으로 1. gradlew build (command not found), 2. ./gradlew build (Failed이라 뜸)gradlew (command not found)gradlew.bat (command not found)뭘 입력해도 더이상 진행이 안됩니다. 도와주세요 선생님
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
react 소스 부탁드립니다!
강의 너무 잘 보고 있습니다.덕분에 처음 서버 개발할 때 큰 도움 되었습니다. 좋은 강의 감사합니다! 메일 : kei02012@naver.com
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
MemberRegisterRequest 의 검증 방식으로 @Valid 와 초기화 스크립트의 차이가 무엇인가요?
안녕하세요, 토비님! 훌륭한 강의 너무너무 잘 듣고 있습니다. 토비님의 고견 덕에 제 개발 세계관을 정리하는데 도움이 많이 되고 있습니다. 감사합니다. 강의의 데이터 검증 파트에서 질문이 있습니다.MemberRegisterRequest 의 검증 방법으로 jakarta.validation 을 사용하도록 설명해주셨는데요.(1) MemberRegisterRequest 의 생성자 또는 팩토리 매서드에서 값을 검증하는 방식과 validation 어노테이션을 이용하는 방식을 어떻게 구분해서 쓰는지? 와 (2) validation 어노테이션이 활용되는 영역의 범위가 궁금합니다.저는 코틀린 스프링부트로 강의를 따라가고 있어서 코틀린 기준으로 예시를 들면, 보통 저렇게 도메인 레이어에서 비즈니스 로직에 직접 사용되는 데이터를 검증하는 경우에는 코틀린의 init 블록 내에 비즈니스 관련 데이터 검증 로직을 넣어서 해당 클래스 객체의 데이터 정합성이 항상 보장되게 해왔는데요. (게다가 도메인 레이어의 클래스다보니 더욱 타 기술 의존 없이 검증하는 게 좋다고 생각해서 init 블록을 애용해왔습니다.)반대로, Valid 는 외부로부터 입력 받은 데이터들의 아주아주 기본적인 데이터 타입 검증 용도(Nullable, 숫자, 이메일, 공백 여부 등) 정도로만 사용해왔습니다. 애초에 제공해주는 어노테이션의 기능이 비즈니스 의미를 담기엔 턱없이 부족해서, "데이터가 비즈니스 의미상으로는 틀릴 수 있어도, 타입 자체는 맞아" 정도만 보장해주는 용도라고 느꼈습니다.그래서 강의에서 어플리케이션 서비스의 파라미터나 도메인 객체의 상태를 검증하는 용도로 사용하시는 모습이 조금 낯설게 느껴졌습니다.어플리케이션 서비스 파라미터에 들어있는 데이터는 이미 컨트롤러에서 기본 검증은 끝난 데이터들이라고 생각해서요.게다가 Valid 를 어플리케이션 서비스에서도 쓰기 시작하면, 컨트롤러와 서비스에서 중복 검사를 하게 될 것 같습니다.이런 점들에 대해서 어떻게 생각하시고 어떻게 구분하시는지 그 기준이 궁금합니다.Q&A 의 다른 질문들에 대한 토비님의 답변들을 보면서도 많이 배우고 있습니다. 고견 감사합니다! 🙂
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Application.java 실행이 안돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] Application.java 파일 실행버튼이 비활성화 되어 있습니다. 버전은 21을 쓰고 있어요
-
미해결스프링 핵심 원리 - 고급편
this를 단독으로 사용할때랑 파라미터 바인딩 할때 차이
@Before("allMember() && this(obj)") public void thisArgs(JoinPoint joinPoint, MemberService obj) { log.info("[this]{}, obj={}", joinPoint.getSignature(), obj.getClass()); } @Before("allMember() && this(hello.aop.member.MemberService)") public void thisArgs(JoinPoint joinPoint, MemberService obj) { log.info("[this]{}, obj={}", joinPoint.getSignature(), obj.getClass()); } @Before("allMember() && this(MemberService)") public void thisArgs(JoinPoint joinPoint, MemberService obj) { log.info("[this]{}, obj={}", joinPoint.getSignature(), obj.getClass()); }this를 단독으로 사용할 때 에는 이해가 되는데, 파라미터 파인딩에서는 왜 obj만 허용이 되나요?allMember() 조건 이후에 MemberService타입만 받고 싶을 수도 있을거 같은데...즉 allMember()의 this가 반드시 MemberService일거란 보장이 없지 않나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Application.java 실행이 안돼요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링부트에서 프로젝트를 생성하고 Application.java를 실행하려고 하니까 실행버튼이 비활성화 되어있습니다. jdk 버전 23을 사용하고 있는데 왜 안되는건지 모르겠습니다. 해당 화면 사진입니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
4일차 과제 'SQLSyntaxError: Table not found Error' 질문
4일차 과제의 문제 1번을 해결하려고 코드를 작성하고 Table도 생성해서 run 해보았는데, 자꾸 Table not found 에러가 뜨면서500 internal error가 발생합니다. 이 에러 때문에 테이블도 3번 다시 생성하고, show tables 했을 때도 table이 모두 잘 출력됩니다. 대소문자 바꿔서도 다 해봤는데 왜 이런 오류가 뜨는지 모르겠습니다..ㅜㅜ 도와주세요ㅠ
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
만들면서 배우는 클린 아키텍처 관련된 질문
강의에서도 잠깐 언급되지만, 전체적인 강의 내용이 만들면서 배우는 클린 아키텍처의 저자가 주장하는 내용과는 지향하는 바는 같지만 그 구현에 있어서 어느정도 거리가 있다고 느껴지는데요..!"만들면서 배우는 클린 아키텍처" 이 책을 읽으면서도 저자가 주장하는 내용이 좋은 아키텍처라는 생각이 들었었고, 그 지름길에 대해서도 많은 생각이 들었습니다.그러다보니 강의에서 언급해주시는 일부 내용들은 이 지름길을 사용했다는 것으로도 저한테는 느껴지기도 하는데요. 하지만 또 다른 측면으로 토비 선생님께서 강의에서 말씀하시는 내용들이 매우 타당하고 이것 또한 매우 클린하며 헥사고날 아키텍처의 장점을 매우 잘 살리고 있다는 생각도 들었습니다.제가 궁금한 건 "만들면서 배우는 클린 아키텍처" 에서 저자가 주장하는 내용들에 대해 토비 선생님께서는 어떻게 생각하고 계시는지 궁금합니다!회사에서 많은 시니어 분들이 헥사고날과 관련해서는 저자마다 주장하는 내용이 다른 경우가 많으니 최대한 많이 접하고 스스로 기준을 삼는 것이 좋다라고 조언을 주시기도 하셔서 더욱 궁금하네요 ㅎㅎ:)!
-
미해결스프링 핵심 원리 - 기본편
테스트케이스 인스턴스 확인 부분
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? ()[질문 내용]강의자료 6페이지에 보면 맴버서비스임플의 인스턴스가 맴버서비스인지 확인을 하도록 테스트 코드를 작성하셨습니다.이전에 강의내용을 보면 스프링 컨테이너에 memberService는 return new MemberServiceImpl(...)로 작성했기 때문에 맴버서비스임플의 인스턴스인 것은 이해했습니다.그런데 애초에 맴버서비스임플은 맴버서비스의 구현체니까Assertions.assertThat(memberService).isInstanceOf(MemberService.class); 위에 처럼 확인하는 것이 좋다고 생각했는데 강의내용처럼 테스트를 하신 이유가 궁금하고 제 방식이 안좋다면 왜 안좋은지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
BeanDefinitionStoreException 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]OrderServiceImpl, MemberServiceImpl 의 컴포넌트 이름을 service로 동일하게 설정하고 실행하면 스프링 컨테이너가 bean을 등록할 때 발생하는 BeanDefinitionStoreException 오류도 같이 뜨는데 강사님 로그에는 보이지 않는 것 같아서 원래 발생하는 오류인지 궁금합니다.
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
Gradle 동기화 오류
완전 초보입니다. 온라인 강의 들으면서, 하나하나 단계별로 따라하고 있는데, Gradle 동기화 오류가 발생하고 있습니다. ChatGPT 답변에 따라 계속 해 봤는데, 해결이 안되고 있습니다. 처음에는 한글명으로 되어 있어서 문제인가 싶어서,, "한글명" --> yunkkim 으로 변경했는데, 그것도 해결책이 아닌거 같고, gradle.properties 파일을 추가해 보기도 하고,, 어찌 해결 해야 할까요?Multiple build operations failed. Could not move temporary workspace (C:\Users\yunkkim\.gradle\caches\8.14.3\transforms\dab9c5aa8765a6befd44e49da2bac9d1-1b58f335-d72b-448f-a093-89ca330d8ea9) to immutable location (C:\Users\yunkkim\.gradle\caches\8.14.3\transforms\dab9c5aa8765a6befd44e49da2bac9d1) Could not move temporary workspace (C:\Users\yunkkim\.gradle\caches\8.14.3\transforms\cfc6584c7a788e7d4dba5168f57ef3f7-cdad1752-221b-4e79-8033-98f49d023da3) to immutable location (C:\Users\yunkkim\.gradle\caches\8.14.3\transforms\cfc6584c7a788e7d4dba5168f57ef3f7)>
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
안녕하세요 토비님
질문이 있어 남깁니다.30. 회원 애플리케이션 기능 추가 강의 중 Activate 메서드를 작성하면서 설명해주신 Spring Data Jpa 사용시 save를 사용해야 한다고 공식문서에 나와있다고 하셨는데 해당 문서에 대한 링크를 알수있을까요?save를 안티패턴이라고도 설명을하고 불필요한 오버헤드 발생에 대해서는 어떻게 생각하시나요? 강의의 내용 처럼 JpaRepository가 아닌 Repository를 사용 하는경우에는 필수적으로 save를 해야 하나 JpaRepository의 경우는 Jpa 자체에서는 save라는 것이 없기 때문에 새로운 엔티티를 생성할때만 사용을하고 업데이트의 경우는 생략을 해야하는 것일까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
자바 17버전으로 프로젝트 세팅
자바 17버전으로 할려면 프로젝트 파일 내 어떤것들을 수정 해야하죠?
-
미해결스프링 핵심 원리 - 고급편
빈 후처리에 등록 질문 있습니다.
//프록시 대상이면 프록시를 만들어서 반환 ProxyFactory proxyFactory = new ProxyFactory(bean); proxyFactory.addAdvisor(advisor); Object proxy = proxyFactory.getProxy();위 코드에서 반환 타입이 오브젝트인데, 컨트롤러나 서비스에서 빈 주입받을때 스프링에서 빈 타입을 기준으로 주입되는걸로 아는데, 어떻게 오브젝트 타입이 반환되어도 정상적으로 각각의 빈들을 주입받을 수 있나요?제 생각엔 결국엔 등록된 빈 프록시는 전부 오브젝트 타입이라는 결론인데, 제 생각이 틀렷을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew build 후 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]libs폴더로 이동 후 java -jar SpringRecture-0.0.1-SNAPSHOT.jar 실행했을 때 발생하는 오류인데 뭐가 문제인가요?
-
미해결스프링 핵심 원리 - 기본편
이번 강의는 소스코드가 없나요?
pdf랑수업자료랑 ppt는 받아봤는데 이번 강의에서는 소스코드가 없는것 같아서요 혹시 따로 받는곳이 있을까요?
-
미해결스프링 핵심 원리 - 기본편
강의 수강 난이도 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]제가 방학동안, 백엔드 공부를 위해 필수적인 강좌들만 빠르게 들으려고 하는데, 자바 기본편만 듣고 지금 이 핵심 강의를 수강하고 있는데, 모르는 메서드 들도 나오고, 조금 이해하는데 진도가 빠른 것 같은데, 그냥 몇 몇 메서드들은 스스로 구글링하면서 공부하면서 쭉 따라갈 수 있는 내용들인가요? 아니면 다른 강의가 더 선행됐어야하나요??
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
DB 관련 강의 개설 계획은 없으신건가요?
이번 강의 끝내고 로드맵대로 JPA 기본1편로 건너가 학습중인데요.JPA 기본편에선 jpa라 당연하겠지만 이전보다 더 DB 관련 지식을 요구하는 것 같더라구요.예전에 DB를 약간 학습했던 적이 있어 드문드문 떠오르는 기억에 아직까진 강의를 듣는데는 큰 어려움은 없으나 DB를 학습했던건 오래전일고 깊이 있게 한 것이 아니라서 DB관련 지식이 희미하고 매우매우 얕게만 남아있습니다. 영한님 말씀 들어보면 실무에 투입되면 DB에 대해서도 꽤 잘알아야 하는 것 같구요.앞으로의 미래를 생각한다면 한번은 DB를 따로 더 공부해야한다고 생각하고 있습니다.그래서 스프링 MVC 강의에 앞서 모든 개발자를 위한 HTTP 웹 기본 지식라는 강의로 웹에 관한 강의를 해주셨는데요. 정말 큰 도움이 됐습니다.이것처럼 DB도 선수 학습 강의로 개설 계획이라던가 없으신건가요? 있으시다면 언제쯤 개설되는지 알 수 있을까요?DB강좌도 모든 개발자를 위한 HTTP 웹 기본 지식처럼 있다면 많은 도움이 될 것 같습니다.