묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
엔티티 조회와 fetch join 의 경우 이런 상황일 때 유의하여 사용하면 될까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]V3 예시에서 N+1 문제를 보여주셨습니다. N+1 문제가 발생한 원인과 상황을 설명들으며 생각해보았는데,1.마이페이지 (회원 단건 조회, 회원정보(member), 최근주문(order) ) 이런 데이터만 보여준다면 n+1 문제는 발생하지 않을 거 같습니다.다만1.마이페이지 (회원 단건 조회, 회원정보(member), 최근주문(order) , 최근주문별 배송현황(delivery)) 는[회원조회][최근주문A][최근주문B]이때 각 최근주문별 딜리버리를 조회하여또 쿼리가 많이 나가게 되는 상황이 발생할 거 같습니다.단순한 단건 데이터 조회(내정보)는 엔티티 조회를 사용해도 N+1 문제에서 자유로울 수 있으나 작성자 등의 PK가 전부 다른 데이터 리스트에서의 join 형식 데이터 목록을 조회할 경우 N+1 문제가 자주 발생할 거 같습니다.이럴 때 fetch join 을 사용하면 되는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderServiceTest에서 assertTrhwos 질문이 있습니다~
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요.Junit5로 assertThrows테스트를 하고 있습니다.원래는 다른 분들처럼 assertThrows만 작성했습니다. (리턴 없는 형태)테스트는 성공하는데 에러 로그가 전~혀 하나도 뜨지 않습니다.고민하다가 에러 내용을 받아서 soutv로 뿌려줘서 확인했습니다. assertEquals로 비교하는게 맞나요?아니면 제가 모르는 Junit5 사용법이 따로 있는건지요?gpt, 구글 등등 다 검색해봐도 답을 알 수 없어서 고민하다가 질문 올립니다.조언 부탁드립니다 감사합니다~
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
ID는 Transactional 으로 rollback이 안되나요 ?
@Transactional 을 써주면Test 후에 data가 반영 되지 않고 rollback 되는거라고 이해했는데요,id 값은 계속 올라가는데 이건 왜그러는걸까요 ..?
-
미해결실전! 스프링 데이터 JPA
RESTful 강의는 안하시는 건지 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]안녕하세요 강사님.혹시 RESTful 내용에 대해서는 강의를 안하시는지 궁금합니다.제가 지식이 정말 얕고 좁지만 대학 프로젝트를 스프링부트로 진행하다 보면, 정말 어렵고 헷갈리고 갈팡질팡하게 되는 것이 RESTful 내용인 것 같습니다. 방금도 ResponseDTO를 어떻게 설정해야 할지 정답이 없으니 더 머리 아프고 어떻게 하는 것이 좋을까 고민하다가 금방 지쳐버리고 오는 길입니다.강사님이 RESTful에 대해 강의해주신다면 좋을 것 같아 질문글 남깁니다.메뉴얼은 안읽어봤습니다 죄송합니다.감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
html이 선행학습이 되어있어야 할까요 ?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요스프링 mvc2를 수강하는 중 궁금한 점이 생겨 여쭤보게 되었습니다.제가 로드맵을 하나씩 쭉 차근차근 따라오는 중인데, 이번 스프링 mvc2는 유독 mvc1에 비해 따라가기가 어렵다는 생각이 드네요..이유를 생각해보니 html에 대한 기본기가 하나도 없는 상태인 것 같은데, 아직 다 수강한 것은 아니지만 초반 부분은 타임리프와 스프링을 함께 사용하는 부분이 많은 것으로 보입니다. 복습까지 반복을 해도 이해가 잘 안되는 상황인데 기본적인 html 지식이 선행되어야 이번 mvc2 이해가 잘 될까요 ?
-
미해결실전! 스프링 데이터 JPA
동적 테이블에 대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.궁금한게 있어서 질문 드립니다.테이블을 년도별로 나누어야 하는 경우예) person2025, person2026파티션 테이블도 있겠지만 장기적으로는 나눠야 한다면,이 경우 하나의 Entity로 테이블을 동적으로 변경 해서 사용하는 방법이 있는지 아니면 Native Query 쿼리로 하는지 실무에서는 어떻게 하는지 궁금합니다.
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
자료다운 질문
https://drive.google.com/drive/folders/1LjFieYmO8w0vnrVmptb1a_weGwY7nqd?usp=share_link 강의 시작 전 아래 링크의 별첨 자료가 다운되지 않습니다.url 주소가 바뀌었나요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
예시코드 오타 제보
킬구형 일부러 그런건진 모르겠는데, 우선은 Batch Listener 섹션에서 실행명령에 전부--job.name=~~ 형식으로 되어있어. 잡이름을 인식 못해서 Job Bean이 여러개 명시되어있으면 실행할때 오류나는 것 같아.--spring.batch.job.name= 처럼 안하면 안될 것 같은데, 이건 의도적으로 줄인걸까?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
다중 스레드 환경에서 ArrayList를 안전하게 사용할 수 있나요?
[질문 내용]강의 퀴즈를 풀고 있는데 이해가 안 가는 부분이 있습니다.답이 HashMap인데ArrayList나 Array는 다중 스레드 환경에서 안전하게 사용할 수 있나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
store를 List로 만들지 않고, Map으로 만든 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. store를 List로 만들지 않고, Map으로 만든 이유가 궁금합니다.더 효율적인 뭔가가 있는지요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Transactional 어노테이션을 썻지만, h2 DB가 롤백이 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]***문제해결****JDBCRepository 구현시이걸 안 붙혀넣고이렇게 써서 생긴 오류인 것 같습니다.. 다른 질문글에서 보고 알았습니다 하하..***************@Transactional 어노테이션을 썻지만, h2 DB에서 롤백이 되지 않습니다.롤백이 되지 않은 이유가 스프링 버전과 h2 버전이 바뀌어서 그런건가요?테이블을 초기화하고 스프링통합memberServiceTest 를 진행하니 회원가입한 정보가 테스트가 끝난 후 DB에 고스란히 남아있었습니다.#스프링 환경Java-> 17spring->3.4.3h2 : 2.3.232-> 서버모드 접근함(jdbc:h2:tcp://localhost/~/test)#알아본것h2에 서버모드로 접근하면, spring->네트워크->h2이렇게 접근이 되어서 외부에 있는 DB는 롤백을 안한다고 들었습니다.다른 곳에서도 접근해서 고칠 수 있기 때문에,,그래서 대신 메모리모드를 사용하라고 답변을 들었습니다.
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
마지막 주문 등록 후, 오류가 발생합니다!
주문 등록 내용을 작성하고 이후 등록 버튼을 클릭하면 서버쪽에서의 로직은 잘 동작하는 듯하지만, DB에 저장되는 값을 못가져오는지 넥사크로 화면에서는 오류가 다음과 같이 발생합니다. 테스트로 로그 값들을 추가한 것은 무시해주세요Nexacro (20908)> UD 13:20:51:906 gfnCallback : SvcID>>selectCommonCode, errorCode>>0, errorMsg>>SUCCESS, isAsync>>true, sStartDate>>2025-04-23 13:20:51 814, sEndDate>>2025-04-23 13:20:51 906, nElapseTime>>0.092Nexacro (20908)> UD 13:20:51:911 고객구분 콤보박스 세팅 완료Nexacro (20908)> UD 13:20:51:918 gfnCallback : SvcID>>selectItemList, errorCode>>0, errorMsg>>SUCCESS, isAsync>>true, sStartDate>>2025-04-23 13:20:51 835, sEndDate>>2025-04-23 13:20:51 918, nElapseTime>>0.083Nexacro (20908)> UD 13:20:51:935 주문상품 콤보박스 세팅 완료Nexacro (20908)> UD 13:20:57:199 123Nexacro (20908)> UD 13:20:57:207 123Nexacro (20908)> UD 13:20:57:214 123Nexacro (20908)> UD 13:20:57:235 123Nexacro (20908)> UD 13:20:57:240 PNexacro (20908)> UD 13:20:57:245 A0002Nexacro (20908)> UD 13:20:57:271 this is goodNexacro (20908)> SD 13:20:57:347 file://C:/eclipse/eclipse-workspace/orderBoard/src/main/webapp/packageN/nexacrolib/component/CompBase.js(12):Uncaught TypeError: Cannot read property 'length' of undefinedif(nexacro._Browser!="Runtime"&&!nexacro.Element){"use strict";var process=true;if(nexacro.Browser=="IE"&&nexacro._BrowserVersion<=8){nexacro.__createCanvasElementHandle=function(_a,_b,_c,_d,_e,_f){어떤 문제가 발생한걸까요??
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
동시세션제어 기능에서 로그아웃하기
안녕하세요"인가 설정 실시간 반영하기" 코드에서 동시 세션 제어 기능을 추가할려고 합니다.http.sessionManagement(session -> session .maximumSessions(1) .maxSessionsPreventsLogin(true) )위 코드를 추가한 후 REST 방식으로 로그인후 로그아웃을 하면 SessionRegistry의 principals 객체에 있는 정보가 삭제되지 않아 다시 로그인을 시도하면 인증오류가 발생합니다.로그아웃을 할 경우 SessionRegistry.removeSessionInformation(sessionId)가 호출되어 principals 정보가 삭제되어야 할 것 같은데 제가 잘못 이해하고 있는 지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
DispatcherServlet생성과 등록
안녕하세요 MVC를 복습하다가 궁금한 점이 생겨 질문적었습니다. DispatcherServlet은 서블릿인데 왜 스프링부트가 DispatcherServlet을 서블릿으로 등록하는지 이해가 안됩니다. 서블릿은 서블릿컨테이너가 생성하고 등록/관리 하니 서블릿 컨테이너가 DispatcherServlet을 서블릿으로 등록해야 하는거 아닌가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jar와 war의 차이점을 명확하게 모르겠습니다
안녕하세요 공부를 하다가 jar와 war의 차이점에 대해 공부하다가 궁금한 점이 있어 질문 남겼습니다. 제가 알아본 결과war는 웹 어플리케이션 배포하기 위한 자바 아카이브 포맷으로 웹 어플리케이션을 구성하는 모든 요소를 하나의 아카이브로 묶어준다.jar는 자바 프로젝트를 압축한 파일로 class,라이브러리 파일을 포함한다. 라고 되어있습니다. 그런데 스프링 부트를 실행하면 static/경로에 있는 정적 리소스들은 자바 파일이 아닌데도 jar파일에 포함이 되어있습니다. 그러면 사실상 war나 jar파일은 둘 다 똑같은 파일들을 패키징하는거 아닌가요? 그저 내장된 서버에서 실행되느냐 아니면 외부 서버에서 실행되느냐의 차이뿐 아닌지 궁금합니다
-
해결됨죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
[예시 코드 오타 제보]처형부탁한다
한다 제보를 KILL-9, 바란다 응답[제보 정보 수집중...🤖][KILL-9@user]$ cd 커리큘럼/섹션4/3장/작전1해킹 주문 데이터베이스 정찰 작전에서 프락치를 발견했다JdbcPagingItemReader 가 whereClause에 거짓 증거를 제출해서 혼란을 야기했다status = 'READY_FOR_SHIPMENT' 이고 not null 이어햐 하지 않을까 생각한다CANCELLED 가 아닌 것 같다다시 보니 작전에 혼동이 있는 것 같다 확인요망 🔥 유해 게시물 처형 작전 시스템에도 버그가 발견됐다전체코드에서 JpaCursorItemReader 에 queryString 조건이 잘못된 것 같다이후의 예시 코드들은 잘돼있지만전체코드 복사하는 녀석들이 많기 때문에 처리부탁한다[추가 처형 요청...💀][KILL-9@user]$ cd 커리큘럼/섹션3/2장/작전1글 쓰는 김에 한 녀석도 추가 제보하겠다FlatFileItemReader 고정길이 예제도 처형 부탁한다 소제목인 .columns() 예제 이미지가 정확하다하지만 예시코드라고 적혀있는 Range는 틀렸다 이것은 KILL-9 후보생의 혼란만 가중시킬뿐이다
-
미해결스프링 핵심 원리 - 기본편
안녕하세요 질문 컴파일 에러 문제에대해서 질문있습니다.
@Qualifier 에 관하여 질문이 있습니다. @Component @Qualifier("mainDiscountPolicy") public class RateDiscountPolicy implements DiscountPolicy @Component @Qualifier("fixDiscountPolicy") public class FixDiscountPolicy implements DiscountPolicy @Autowired public OrderServiceImpl(MemberRepository memberRepository,@Qualifier("mainDiscountPolicy") DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; }이렇게 설정을하고 테스트를 돌리면 class AutoAppConfigTest { @Test void basicScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); DiscountPolicy bean = ac.getBean(DiscountPolicy.class); System.out.println("bean.getClass() = " + bean.getClass().getName()); } }위에 테스트에서 org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy중복 빈이 발생하는데 @Qualifier를 설정해도 중복 빈이 발생하는 이유는 무엇일까요?@Primart로 rateDiscount 를 우선 순위를 설정하면 테스트는 정상적으로 통과합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestBody 객체 시 객체의 멤버변수를 필수로 받게 하려면 어떻게 해야하나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@RequestBody {객체} 변수명 시 객체의 멤버변수를 필수로 받게(없을 시 에러발생) 하려면 어떻게 해야하나요?? 이를 설정하는 옵션이 있을까요?? 궁금해서 테스트 해본 결과 멤버변수명과 다르게 요청을 보냈을 시 기본값으로 들어가는 것을 확인했습니다. 파라미터로 넘어온 객체에서 멤버변수를 각각 검증하는 단계를 거쳐야 하나요?
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
Advisors 질문입니다.
예제를 따라하고 있는데요public ChatClient chatClient(ChatClient.Builder chatBuilder){ return chatBuilder .defaultAdvisors(new MessageChatMemoryAdvisor(new InMemoryChatMemory()).build();}이부분이 에러가 나서 MessageChatMemoryAdvisor를 생성을 못하는데요.. 어떻게 해야 할까요?spring ai버전이 1.0.0버전인데 버전에 따라 코드가 바뀌는것 같은데요..
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
강의 연장 문의
안녕하세요:)강의를 구매했다가 일정 때문에 모두 못들어서 강의 연장을 해서 꼭 강의를 모두 수강하고 싶습니다ㅜ혹시 강의 수강 기간 연장 진행해주실 수 있으실까요?확인 부탁드립니다.감사합니다.