묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
해시 충돌 구현 링크드리스트 사용이유!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요! 강사님께서 링크드 리스트를 사용하시는 이유를 설명해주셨는데 잘 이해가 안가서 질문을합니다!어레일이스트를 사용하는것보다 링크드 리스트를 사용하는 이유가.. 충돌?이 덜나서라고 하셨는데 이부분을 자세하게 설명해주실수있나요? 잘 이해가 안가네요 ㅜㅜ
-
미해결김영한의 실전 자바 - 중급 2편
String[]에서 for-each가 작동하는 이유는 뭔가요?
[섹션 11. 순회, 정렬, 전체 정리] 강의를 들으면서 학습 자료에서 다음과 같은 내용을 볼 수 있었습니다. "자바는 Iterable 인터페이스를 구현한 객체에 대해서 향상된 for문을 사용할 수 있게 해준다" 근데, String[]에는 Iterable 인터페이스가 구현되어 있지 않은 것 같은데 어떻게 for-each를 사용할 수 있는지 궁금합니다.
-
미해결토비의 스프링 6 - 이해와 원리
인터페이스는 사용하는 클래스에 가장 가까이 두는 걸로 이해했습니다. 하지만 그 인터페이스를 사용하는 클라이언트가 많다면 어떻게 해야할까요?
강의 재밌게 잘 보고 있습니다.궁금한 게 있어 질문드립니다.인터페이스는 구현체와 같은 모듈에 두는 게 아닌, 사용하는 클래스에 가장 가까이 두는 걸로 이해했습니다. 하지만 그 인터페이스를 사용하는 클라이언트가 많다면 어떻게 해야할까요?예를 들어 Payment 패키지의 PaymentService 도 ExRateProvider 를 쓰고,XXX 패키지의 XXXService 도 ExRateProvider 를 쓴다면ExRateProvider 의 모듈 위치는 어디에 존재를 해야할까요? 아니면 다른 방법이 있을 듯 한데, 그 방법은 무엇일까요?ExRateProvider 의 모듈 위치가 클라이언트와 분리되어 있다면, DIP 적용 이전 그러니까 WebApiExRateProvider 와 ExRateProvider 가 한 모듈에 같이 위치한 그림과 별반 다를 것이 없다(모듈 의존성에 따른 변경 가능성) 생각이 들어서요
-
미해결스프링 시큐리티 OAuth2
OAuth 2.0 Grant Flows 관련 질문
안녕하세요. OAuth 2.0을 배우고 싶어 학습 신청했습니다.유익한 강의 준비해주셔서 감사합니다.막연하게 알고 있는 Spring Security 에 대해 강의를 통해 명확하게 알아가고 있습니다. 강의를 들으며 몇가지 궁금한 점이 있어 질문드립니다. 우선은 자체 로그인만 구현할 예정이라면,소셜 로그인 기능이 없는 경우에는 OAuth 2.0을 도입할 필요가 없는 건가요?Resource Owner Password Credentials Grant Flow 는 Deprecated 된다고 하는데 그럼 어떻게 구현해야하나요? 답변주시면 성장하는데 큰 도움이 될 것 같습니다!감사합니다!
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
조건 반복문강의
조건반복문 강의 4분 40초쯤에서 if절 에서 2의약수 또는 3의약수가 참일때, 6의 배수가 아닌것을 세어라. 로 해석되는데요.1.일단 해당강의에서 ‘약수’로 표현한건 전부 ‘배수’인거죠?모두 %정수로 표기되는데 약수, 배수 혼용되어서요. ll 연산자는 둘중 하나만 참이어도 전체가 참...으로 배웠는데! 왜 각각의 배수를 함께합쳐서 12개로 풀어야하는지 이해가 안갑니다.11:51초에서도 &&연산자는 둘다 참이어야 참인데, 위와 마찬가지로 2의배수중 3의배수가 아닌것을 골라야하는대 왜 이렇게 적용되는지 이해가 안갑니다.if문이 계속 괄호안에 반복되면 순차적으로 조건문을 실행하여 참인지 보면 되는건가요?혹시 강좌에 나오는 예제들만 모아놓은 출력물은 없을까요? 강좌에서 나오는 꼭외워야할부분, 강의 마지막에 나오는 요약문도 출력물이 없을까요? 예제문제를 다시풀어보고싶은데 강의마다 예제나오는 부분을 찾아보기가 시스템이 수월하지않아서요 .
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
JDK 다운로드 버튼이 없습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저는 왜 다운로드 버튼이 없고 select 버튼만 있을까요? 기존에 JDK8 이 설치되어있긴 한데 JDK8로 수업을 들어도 무관할까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
엔티티 조회와 DTO조회
엔티티 조회를 권장하신다고 했는데 엔티티 조회로 처리 안 되는 경우가 있나요? 엔티티로 조회한 결과를 DTO로 변환해서 넘기는게 가장 좋은 방법 아닌가요??
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
오라클 jdk 21
최근에 intellij를 맞게 다운받아서 사용하였는데 학습 초반부 오라클jdk 21 이 버전이 없어서 22 버전으로 하는데 올려주신 학습자료내 소스코드를 압축풀고 적용하는데에 문제가있어 수업진행이 어렵습니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
open or import
제가 이 강의 듣기 전 java 인강도 듣고 있던 터라 인텔리제이에서 open or import 버튼을 누르지못하는데요 (초기화면으로 돌아가지 못해요) 혹시 인텔리제이를 삭제했다가 다시 깔아야 하나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 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 둘 다 순서가 바뀐 것 같은데 어디를 봐야 고칠 수 있을까요..?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
문제와풀이3 강의중 inputmismatchexception 예외처리 하는 방법이 궁금합니다
[질문 내용]섹션9 배열 문제와풀이3 강의 10:41초부터선생님께서 사용자가 메뉴를 잘못칠 수 있는 경우에 처리방법을 else문으로 알려주셨는데요! 만약 사용자가 아래처럼 숫자가 아닌 문자를 입력하면 어떻게 처리를 해야하는지 궁금하였습니다. 입력값을 문자로 하였을때 나오는 inputmismatchexception 에러검색을 하다가 try catch문을 알게되었습니다제가 원하는 방향은 사용자가 정수가 아닌 문자를 입력했을시에에러메시지를 출력하고 다시 메뉴 선택으로 돌아가는 방향으로 하고싶어서 전체코드를 보시면 try문에 실행하고자 하는 코드를 넣고,메뉴선택시 문자를 입력하면 에러가 나도록 catch문에 에러메시지를 출력하고 continue문을 넣었습니다.package array.ex; import java.util.InputMismatchException; import java.util.Scanner; public class ProductAdminEx { public static void main(String[] args) { // *제약 조건 : 상품은 최대 10개까지 등록할 수 있다.* int maxCount = 10; // 상품구조 최대치를 유연하게 정하기위해 ArrayList 자료구조 사용 int productCount = 0; String[] productNames = new String[maxCount]; int[] productPrices = new int[maxCount]; Scanner sc = new Scanner (System.in); while(true) { System.out.println("1. 상품등록 | 2. 상품목록 | 3. 종료"); System.out.print("메뉴를 선택하세요 : "); try { int option = sc.nextInt(); sc.nextLine(); if(option == 1) { if(productCount >= 10) { System.out.println("더 이상 상품을 등록할 수 없습니다."); continue; } System.out.print("상품 이름을 입력하세요:"); productNames[productCount] = sc.nextLine(); System.out.print("상품 가격을 입력하세요:"); productPrices[productCount] = sc.nextInt(); sc.nextLine(); productCount++; } else if(option == 2) { System.out.println("지금까지 등록한 상품의 이름과 가격입니다."); for(int i = 0; i < productCount; i++) { System.out.println(productNames[i] + ":" + productPrices[i]); } } else if(option == 3) { System.out.println("프로그램을 종료합니다."); break; } // 잘못된 메뉴 입력시 문자입력시에 inputmismatchexception 예외처리를 사용할 수 있다. else { System.out.println("잘못된 메뉴 입력입니다."); } } catch (InputMismatchException e) { System.out.println("[ERROR] 숫자를 입력해주세요."); break; // continue문을 쓰면 에러메시지가 계속 반복된다. } } } } 문제는 다시 메뉴선택 부분으로 가지않고 끝없이 에러문이 반복됩니다. 그래서 일단 break문을 써서 프로그램이 종료되도록 하였습니다.. 여기서 에러메시지가 한번 출력되고 다시 메뉴선택 부분으로 가도록 하려면 어떻게 해야 할까요..?!
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
커널 모드 전환시 질문이 있습니다!
안녕하세요 선생님,강의 잘 듣고 있습니다! 강의 중 궁금한 점이 있어서 질문드립니다.. ㅎㅎ 커널모드로 전환 시 시스템 콜과 응용 프로그램 사이에 라이브러리라고 표기가 되어있던데, 자바일 경우 JNI를 의미하는 것이 맞으실까요??.. 병렬 스트림 사용에 대한 예시를 구글링 해보면, 따로 스레드 풀을 생성해서 만들지 않을 경우, 하나의 common 스레드 풀을 공유하여 사용해 스레드가 부족하게 될 경우를 대비해, 따로 별도의 포크조인 스레드 풀을 생성하라는 가이드가 많은데요,무분별하게 스레드 풀을 많이 생성했을 경우에 생기는 문제점들이 어떤 것이 있을지 알 수 있을까요?.. i/o가 잦은 프로세스에서 스레드의 개수가 많아 스레드들간의 컨텍스트 스위칭이 많은 경우에는 메모리 점유 외에 프로세스 성능에 크게 영향을 주지 않을 것이라고 생각 중이지만 다른 사이드 이펙트가 있을까 하여 질문 드립니다! 감사합니다 :)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
ToOne은 왜 한 번만 땡겨오나요?
안녕하세요 강의 설명중에 ToOne은 한번만 땡긴다고 하셨는데 이유가 주문당 멤버랑 배송은 하나만 있으니까 한번만 가지고 온다고 하신걸까요?
-
미해결실전! Querydsl
스프링 테스트 실행이 안됩니다... 제발 도와주세요 ㅠㅠ
java : 21spring : 3.3.3 사용뭔가 제대로 빌드가 되지 않은 것 같아서 gradle 클린하고 재빌드하고 여러번 했는데도 반복적으로 오류 메세지가 발생합니다 ㅠㅠ영한쌤의 다른 자바 강의도 수강 중인데 그건 해당 경로에 있어도 실행이 잘되는데 특이하게 spring 프로젝트는 안되네요... 경로에 한글이 있어서 그런가 싶어 UTF-8 설정도 해두었습니다.얼른 수업 듣구 싶어욧,,, 도와주세요 ㅠㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 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
-
해결됨(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
반복문 강의
반복문강의 20:40초for 과 while 반복문 풀이를 할때for문은 i=5까지 반복한다하셨는데요.어떻게 출력값이 짝수기준으로 while 출력물이 나오는지 이해가 안갑니다.i=1일때 for문으로 현재숫자:1 출력은 이해가 가구요.그다음 while로 넘어갔는데 조건식이 false여서다시 for문으로 돌아오는 것인가요? 왜 돌아가는지 이해가 안가서요. 그다음 2일땐 while 조건식이 True 여서 출력되고break로 빠져나오고 다시 for문으로 돌아가는건가요.
-
미해결김영한의 실전 자바 - 기본편
강의 영상 음성 실수
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의 - "생성자 - 오버로딩과 this()"시간 - 2분 38초 ~ 2분 40내용 - "생성자를 오버라이딩 한 덕분에..." 라고 하셨는데"생성자를 오버로딩 한 덕분에..."로 말씀하시려 던 게 아닐까 생각합니다. 바로 10초 전에 헷갈리시다고 말씀하셔서 실수하신 것 같습니다. 별 거 아닌 사소한 내용이긴 한데 공유 드립니다.
-
해결됨김영한의 실전 자바 - 기본편
[다형성] 다형성 객체 생성과 참조에 관한 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]다형성에 관해 명확한 이해가 조금 어려운 부분이 있어 질문 드립니다!아래의 코드에서, 1) 코드가 동작 가능한 이유는 '생성된 Child Class의 인스턴스에 Parent Class의 인스턴스가 포함되기 때문에, Parent Class의 참조값을 담을 수 있는 poly라는 변수에 Child Class 인스턴스 참조값을 저장할 수 있다.' 반대로, 2) 코드가 동작 불가한 이유는 '생성된 Parent Class 인스턴스에는 Child Class의 인스턴스가 포함되지 않아서, Child Class의 참조값을 담는 poly2 라는 변수에 Parent Class 인스턴스 참조값을 저장할 수 없다.' 이렇게 이해했습니다. 제가 이해한 바가 맞을까요?? 1) Parent poly = new Child(); 2) Child poly2 = new Parent(); 위의 이해가 맞다면, 1)코드에서 생성한 poly Parent Class변수는 Child 인스턴스를 생성했음에도 불구하고 Parent Class에만 접근할 수 있기에, Child 인스턴스에 대한 정보를 소실하는 것 처럼 보여집니다. Child 인스턴스 변수나 method에 접근하지 못함에도 Child 인스턴스를 포함하고 있는 것은 괜한 메모리를 사용하는 것은 아닌가 하는 생각이 드는데요, 2-1) 위에 표현한 제 생각이 옳은 생각인지가 궁금합니다. 실제로 Child 인스턴스에 대한 정보를 소실하는 것일까요? 아니면 Child 인스턴스는 존재하지만, 접근 권한만 제한받는 것일까요?? 2-2) 실제 인스턴스에 대한 정보를 소실하는 것이라면, 다형성을 활용하는 이유가 궁금합니다. 이 질문은 지금까지 학습한 내용을 정리하고 넘어가고자 질문을 드린 상황이기에, 추후 강의에서 다뤄지는 내용이면 강의를 통해 배우겠습니다.감사합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
시퀀스 최적화의 이점에 대해 질문드립니다.
처음에 실습 전에 강의에서 들은바로는 call을 통해 가져오면 네트워크를 타기 때문에 성능 문제가 생길 수 있어서 미리 일정량의 사이즈를 DB에 올려놓고 메모리에서 그 갯수만큼 쓰는 방식을 통해 최적화할 수 있다고 이해했습니다.그런데 실습을 따라하면서 main()을 재실행할때마다 이렇게 50개씩 확보를 해버리는데 그럼 main을 한 번 실행할 때 50개의 persist 가 나가야 성능이 최적화될 수 있는걸까요? 스프링이 아닌 자바로 실행해서 서버가 그냥 내려가니까 생기는 문제일까요?정리하면, 실제 웹 어플리케이션 서버 구동 상황에서는 실습처럼 서버가 바로 내려가는게 아니라 작동된 상태로 유지되고 그 텀 안에서 50개의 메모리를 최적화해서 쓸 수 있는게 맞을까요?
-
미해결실전! 스프링 부트와 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()문을 넣으면 테스트오류가 뜨는데 없애는 게 맞나요, 안넣으면 오류가 안떴을 경우를 어떻게 확인하나요??