묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
policiMap, policies 값이 나오지 않아요
[질문 내용]policiMap, policies 값이 비어서 나옵니다. 혹시 AutoAppConfig의 위치나 코드를 제가 잘못한게 있는걸까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
OrderCreateRequest DTO에 대해서 궁금한점
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. Business Layer 테스트(1)의 13:32초 즈음에서 OrderCreateRequest가 Product의 id값이 아니라 productNumber를 요청 dto로 받았는데 그 이유가 있나요? 저라면 id를 받도록 설계할거같은데 이유가 궁금합니다. 실무에서는 보통 저렇게하나요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
디스코드 채널 입장이 안돼요!!
어떻게 들어가야되죠?!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 코드 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 김영한님 강의 중 스프링 입문 - 스프링 통합 테스트 부분에서 테스트 코드 돌리는 중 계속 tests were not found 란 에러가 발생하더라구요. 라이브러리, gradle 툴에서 gradle 다 설정했는데도 계속 저 에러 떠요... 2일 연속으로 해결 못해서 힘드네요. 도와주세요. 아래는 제 해당 내용의 깃입니다. https://github.com/bukwon/testcode
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
DTO 관련 질문
저희 회사에서는 코드를 model이나 dto 코드를 만들때 보통하나로 전부 request보내고 받고 다하던데이 강의에서는 용도마다 UserCreateRequest, UserUpdateRequest, UserResponse 이렇게 따로 만들던데 혹시 그 이유가 있을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 동기화 매니저와 데이터 소스
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 수업 중 궁금한 점이 있어 질문 드립니다. 기본적으로 트랜잭션 동기화 매니저에서는 하나의 DataSource를 기준으로 하나의 Connection을 보관하는 것으로 알고 있습니다.강의의 예제는 동일 데이터소스에 대한 커넥션을 두개의 트랜잭션 매니저가 사용하는걸로 나와 있는 것 같습니다. 제가 궁금한건, 만약 외부 트랜잭션 매니저와 내부 트랜잭션 매니저가 서로 다른 데이터 소스를 참조하고 있다면 트랜잭션 동기화 매니저를 통해 서로 다른 커넥션을 참조하려고 할텐데,그래도 내부 트랜잭션이 외부 트랜잭션에 참여할 수 있나? 에 대해 궁금합니다. 감사합니다 :)
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Querydsl 부트 3.54 설정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]build.gradle 코드 수정 자료를 보고 수정했는데 오류가 뜹니다. 제공해주신 자료의 버전과도 동일한 것은 아니라서 헷갈리는데 어떻게 해야 하나요?<build.gradle 수정한 코드>plugins { id 'java' id 'org.springframework.boot' version '3.5.4' id 'io.spring.dependency-management' version '1.1.7' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //test 롬복 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0' annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } <오류 스크린샷>추가로인텔리제이 실행 중에 가끔 플러그인 같은 것을 추가하라는 제안 문구가 나오는데 제안을 받아들이는 것이 좋나요? 아니면 우선은 그냥 무시하는게 좋나요?리프레시 하면 가끔 네트워크에 접근하는걸 허용하겠는지 노트북 자체에서 주의 문구가 뜨는데, 이건 꼭 허용해야 하나요?? 그리고 왜 뜨나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 코드 에러 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.김영한님 강의인 스프링 입문 중 스프링 통합 테스트 부분에서 intellij 개발 환경으로 테스트 코드 돌리려 하는데 'No tests were found' 라고 계속 뜨더라구요. 이유를 알 수 있을까요??참고로 build.gradle 파일 밑에 tasks.named('test') { useJUnitPlatform() }기재했고 settings - gradle 도구에서 build and run using, run tests using 둘 다 intellij 로 설정했습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
쿼리 스트링 또는 폼 데이터에서 멀티 값의 대한 스프링에서 처리해주는 방식
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]쿼리 스트링 또는 폼 데이터에서 멀티 값의 대한 스프링에서 처리해주는 방식에 대해서 궁금한 게 있습니다. [질문 1]멀티 체크(등록 지역)은 th:field를 List<String>으로 했기 때문에 아무것도 선택 하지 않았을 경우 서버로 hidden=on만 오기 떄문에 스프링에서 알아서 field 타입에 알맞은 빈 값 -> [ ]을 반환해주는 것이 맞나요?그렇다면 각 타입마다 스프링에서 빈 값을 매핑해주는 것이 어떻게 정리되어있나요? 사용자 객체를 th:field로 했다면 어떻게 되나요?만약에 실제 로직이 위의 물음과 같다면 아무것도 체크하지 않거나 하나만 체크했을 경우는 같은 이름의 키를 가진 값이 두 개 이상일수없을텐데 이 경우 어떻게 빈 배열이 아래 regions에 할당되는 것인가요?private List<String> regions [질문 2] <input type="checkbox" id="open" th:field="*{open}" th:value="true" class="form-check-input"> <input type="checkbox" th:field="*{regions}" th:value="${region.key}" class="form-check-input">위는 판매 여부, 아래는 등록 지역에서 사용된 코드 중 일부입니다.판매 여부에서 th:value를 생략한 이유는 th:field가 open, 즉 boolean타입으로 정의되어있어서 th:value의 기본 값이 자동으로 true로 되기 때문에 생략이 가능한것이라고 생각했습니다.때문에 등록 지역에서 th:value를 따로 region.key로 해준것은 field가 List<String>타입이니 value의 타입은 자연스럽게 String이 될것이고 boolean과 달리 String은 기본 value가 없어서 따로 구분할 value를 해줘야하기 때문에 각 checkbox마다 value를 region.key로 커스텀 등록 해준 것이 맞나요?[질문 3]등록 지역은 스프링이 값을 리스트로 바꿔줘 해주는데 이것은 th:field타입을 따라가서 그런가요?그리고 등록 지역의 여러 체크박스가 하나의 컬렉션(List<String>) 필드로 묶여서 바인딩되는 건 name 속성이 같기 때문인가요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
32강 강의중 인텔리제이 문제
다름 아니라 강사님께서 강의 하실땐 32강 도중에 User class에 User 부분이 빨간 글씨가 나오는데왜 제가 사용하는 인텔리제이에서는 빨간 글씨가 안나오나요?그리고 좌측에 빈 객체들에 콩모양도 안나타나요혹시 제껀 무료인 Community버전인데 강사님인 유료버전이라서 그런가요?아니면 설정을 따로 해야하나요?구글에 찾아봐도 잘 안나와서 물어봅니다.학습관련 질문이 아니라 죄송합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
Member를 activate 시 deactiavatedAt 초기화 필요성 질문입니다
Member activate 호출 시 MemberDetail의 activate 또한 호출 하게 되는데요.이때 MemberDetail의 activate 로직에서 this.deactivatedAt = null 을 통해 비활성 일시는 초기화 해주어야활성 -> 비활성 -> 활성 -> 비활성 시 deactivatedAt이 null임으로 문제가 없을 것 같은데 어떻게 생각하시나요?
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
이미지 생성 코드 에러 질문
@Service @RequiredArgsConstructor public class ImageService { private final OpenAiImageModel openAiImageModel; public ImageResponse getImageGen(ImageRequestDTO request) { ImageResponse imageResponse = openAiImageModel .call(new ImagePrompt(request.getMessage(), OpenAiImageOptions.builder() .model(request.getModel()) .quality("hd") .N(request.getN()) .height(1024) .width(1024) .build() )); return imageResponse; } }선생님 강의와 같이 해당 코드를 작성했는데 이미지 생성에 실패했다는 오류가 뜹니다. spring 공식 문서에서는 .quality("hd")가 없어 동일하게 제거하고 재부팅해도 이미지 생성에 실패하네요 ㅠ 혹시 원인을 알 수 있을까요?
-
미해결스프링 핵심 원리 - 기본편
@Bean 어노테이션 사용에 대한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 강의를 보다가 궁금증이 생겨 질문해 봅니다!@Bean 어노테이션을 달면 해당 인스턴스를 생성하여 스프링 컨테이너에서 관리하는 것으로 알고 있습니다.만약 서비스가 커지게 된다면, 스프링 컨테이너도 많은 빈을 관리하기 어려워지게 되고 최대한 효율적으로 생성해야 할 것 같다고 생각했습니다.@Configuration public class AppConfig { @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy(){ //return new FixDiscountPolicy(); return new RateDiscountPolicy(); } @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService(){ return new OrderServiceImpl(memberRepository(), discountPolicy()); } }위와 같이 AppConfig 코드를 작성을 하다가 문득 생각이 들었습니다. 'discountPolicy , memberRepository 는 AppConfig 안에서만 사용이 되는 메서드인데, Bean으로 관리하면 효율이 떨어지고 낭비가 아닐까?' 라는 생각이 들게 되었습니다.여기서 두 가지 질문을 드리고 싶습니다.자신의 클래스에서만 사용될 객체라면, @Bean으로 등록하여 관리할 필요가 있을까요? 자신의 클래스에서만 사용될 객체라면, private로 선언하여 해당 클래스에서 안전하게 사용하고 외부에서 사용 못 하게 감추는 것이 더 좋지 않을까요?
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
MemberRegisterTest에서 @SpringBootTest 질문
MemberRegisterTest를 진행할 때 @SpringBootTest를 사용해서 테스트를 진행했는데요서비스 테스트에는 @ExtendWith(MockitoExtension.class)를 사용하는 경우를 많이 봤습니다 헥사고날 아키텍처에서는 애플리케이션과 도메인이 중심이 되기 때문에 서비스에서 @SpringBootTest를 사용한걸까요?
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
강의 코드 변경 요청
선생님 강의 잘 듣고 있습니다. 강의를 보면서 예제 코드를 작성하고 있는데 선생님께서 영상을 찍어주셨을 때의 코드와 현재 버전의 코드가 차이가 많이 있는거 같습니다. 첫 강의 자료 중에 코드가 바뀐 부분만 현재 버전의 코드로 수정하여 올려주시면 감사하겠습니다 ㅠㅠ
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
getContent(), getText() 질문
public String chatMessage(String message) { return chatClient.prompt() .user(message) .call() .chatResponse() .getResult() .getOutput() .getText(); } 선생님 현재 스프링 ai 1.0.1버전을 사용중입니다. 그러면 getText()가 아닌 getContent()를 사용해서 프롬프트를 생성해야되는거 아닌가요?! 왜 getConetent()를 사용할 수 없는걸까요?!
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자바 스크립트에서 객체 변하는법 가르켜 준다고 하였는데, 안보여서 물어봅니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 가르쳐 주지 안으셔서 질문을 드립니다.자바 스크립트 코드에서<script>나머지 내용 생략....//객체 var user = [[${user}]];</script>객체 코드 오류를 없애는 법을 나중에 설명해준다고 하였는데요.(5:27-5:38)2번을 들어봤지만. 나오는 이야기가 없어서 요청을 합니다. 가르쳐 주시면 감사하겠습니다. 이렇게 요청을 한 이유는 영한님이 가르쳐 준다고 하였고, 자바 스크립트에서 이렇게 하신 이유가 있다고 생각해서 배워야 겠다는 생각이 들어서요.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
ApiControllerAdvice에서 2개 이상의 Exception 타입 핸들링
안녕하세요.ApiControllerAdvice에서 하나의 Handler 메서드에서 아래 2개 Exeception 타입을 처리하시도록 변경하셨는데요.- DuplicateEmailException- DuplicateProfileException 이렇게 할 경우, 아래와 같이 두 Exception의 공통 타입인 RuntimeException 객체로 파라미터를 받아야 하는거 아닐까요?@ExceptionHandler({DuplicateEmailException.class, DuplicateProfileException.class}) public ProblemDetail duplicateExceptionHandler(RuntimeException e) { return getProblemDetail(HttpStatus.CONFLICT, e); } 감사합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
Member와 MemberDetail의 연관관계 주인이 바뀐게 아닌가 싶습니다.
안녕하세요.Member와 MemberDetail의 연관관계 주인이 바뀐게 아닌가 싶습니다.비록 1:1 관계이고, 두 객체 인스턴스가 동시에 생성되고 테이블에 영속화 되게끔 설정된 거는 맞지만,논리적으로 Member 엔터티가 상위 엔터티이고, MemberDetail이 하위 엔터티가 맞는 것 같아요.추후 Member 엔터티를 참조하는 다른 엔터티가 만들어질텐데,MemberDetail을 참조하는게 아니라 Member를 참조해야 하고요.관련한 의견 부탁 드립니다.감사합니다.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
DuplicateEmailException에 @ResponseStatus(HttpStatus.CONFLICT) 애너테이션 사용
안녕하세요.도메인 영역에 @Entity, @Query 애너테이션을 사용하는게 문제가 없다는 내용과 이유를 강의에서도, 질문&답변에서도 잘 설명해 주셨고, 모두 확인했습니다. 동일한 이유로,강의에서 DuplicateEmailException에 @ResponseStatus 애너테이션 사용 시, 의존성 문제에 대해서 언급한 부분도, JPA 애너테이션을 사용할 수 있다는 동일한 근거로 허용되어도 문제가 없는게 아닐까요?물론, @ResponseStatus 사용 시에 상태 코드 외에 추가적인 메시지 설정이 불가능하다는 등 단점이 있어서 사용하지는 않겠지만요. 그저 기술 의존성 침투 관점에서 궁금해서 문의 드립니다.감사합니다.