처음에 실습 전에 강의에서 들은바로는 call을 통해 가져오면 네트워크를 타기 때문에 성능 문제가 생길 수 있어서 미리 일정량의 사이즈를 DB에 올려놓고 메모리에서 그 갯수만큼 쓰는 방식을 통해 최적화할 수 있다고 이해했습니다. 그런데 실습을 따라하면서 main()을 재실행할때마다 이렇게 50개씩 확보를 해버리는데 그럼 main을 한 번 실행할 때 50개의 persist 가 나가야 성능이 최적화될 수 있는걸까요? 스프링이 아닌 자바로 실행해서 서버가 그냥 내려가니까 생기는 문제일까요? 정리하면, 실제 웹 어플리케이션 서버 구동 상황에서는 실습처럼 서버가 바로 내려가는게 아니라 작동된 상태로 유지되고 그 텀 안에서 50개의 메모리를 최적화해서 쓸 수 있는게 맞을까요?
@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()문을 넣으면 테스트오류가 뜨는데 없애는 게 맞나요, 안넣으면 오류가 안떴을 경우를 어떻게 확인하나요??
<property name="hibernate.hbm2ddl.auto" value="create" /> create 설정으로 해놨는데도 allocationSize 를 1에서 50으로 바꾸고 돌려봤더니 Exception in thread "main" jakarta.persistence.PersistenceException: [PersistenceUnit: hello] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1591) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1512) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at hellojpa.JpaMain.main(JpaMain.java:13) Caused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=hellojpa.Member] at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:230) at org.hibernate.id.factory.internal.IdentifierGeneratorUtil.createLegacyIdentifierGenerator(IdentifierGeneratorUtil.java:127) at org.hibernate.mapping.SimpleValue.createGenerator(SimpleValue.java:415) at org.hibernate.internal.SessionFactoryImpl.lambda$createGenerators$1(SessionFactoryImpl.java:457) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1787) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at org.hibernate.internal.SessionFactoryImpl.createGenerators(SessionFactoryImpl.java:456) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:271) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:450) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1507) ... 4 more Caused by: org.hibernate.MappingException: The increment size of the [MEMBER_SEQ] sequence is set to [50] in the entity mapping while the associated database sequence increment size is [1]. at org.hibernate.id.enhanced.SequenceStyleGenerator.adjustIncrementSize(SequenceStyleGenerator.java:265) at org.hibernate.id.enhanced.SequenceStyleGenerator.configure(SequenceStyleGenerator.java:207) at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:224) ... 20 more 이런 오류들이 떴고 확인해보니 하이버네이트에서 정의된 시퀀스의 증가수 크기와 h2 DB의 증가수가 달라서 생긴 오류인 것 같아 DB에 따로 쿼리를 날려주고 실행해보니 정상 작동되더라구요. ALTER SEQUENCE MEMBER_SEQ INCREMENT BY 50; 이렇게 사이즈 변경 시, DB에서 수동으로 쿼리를 날려줘야하나요?
java 17을 다운받고 인텔리제이를 실행했는데요 group이나 version (보라색 글씨)가 활성화?가 안돼요 그리고 java 11과 java 14를 깔았던게 있는데 이것때문에 cmd 에서 java -version 이라고 쳤을 때 14가 계속 뜨는 바람에 11과 14를 모두 지우고 17만 남겨뒀거든요 그런데 인텔리제이에서 제가 같이 듣고있는 자바코드들이 다 오류가 뜹니다. CoreApplication.java 도 실행이 아예 되질 않습니다.
안녕하세요 선생님 구글에 graphviz 다운로드 후 pip install을 해야하나 모르고 pip install 먼저하고 구글 다운로드 후 다시 pip install 하니 중복되서 프롬프트에서 graphviz가 중복됬다고 실행이 안됩니다 ㅠㅠ 혹시 해결방법이 있을까요 ?
안녕하세요! 아파트에 거주하고 있습니다. 저희 세대로 들어오는 네트워크 신호를 담당하는 기기가 신발장 안쪽에 있고 굉장히 여러 케이블이 꽂혀 있습니다. 가끔씩 집 컴퓨터 인터넷이 안 될 때가 있는데 그 기기를 리부팅하곤 합니다. 각 방의 벽에 랜선 케이블을 꽂을 수 있게 되어 있습니다. PC는 전부 벽에 있는 랜선 포트에 랜선 케이블을 꽂습니다. 거실에 있는 공유기는 거실 벽면에 있는 랜선 포트와 연결되어 있습니다. 제가 파악한 걸 말씀드려보겠습니다. 1. 세대로 들어오는 네트워크 신호는 신발장 안쪽에 있는 설비를 통해 집의 각 벽면의 랜선 포트로 전달한다 공유기가 내보내는 신호 역시 벽면의 랜선 포트로 전달된 신호를 받아서 동작한다. PC가 랜선으로 수신하는 네트워크 신호와 공유기가 뿌리는 무선 신호는 같은 망에 속한다 이 상황에서, PC는 랜선으로 연결하고 노트북은 공유기에 연결하는 것이, 강의에서 말씀하신 하나의 공유기에 랜선으로 두 PC를 연결하는 것과 동일한 것처럼 느껴집니다. 맞을까요? 이게 맞다면 영상에서 말씀하신 클라이언트 PC의 케이블 연결 해제가 노트북의 와이파이 연결 해제와 동일한 것 아닌가 하는 생각이 들었습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)y 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)y 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)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
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] intellij 단축키 표시가 파란색으로 나오는데 어떤 plugin을 설치해야 하나여?
안녕하세요! 스레드 강의 정말 잘 듣고 있습니다~ 인터럽트에서 궁금한점이 있어서 질문드립니다. isInterrupted()는 Thread.currentThread에서 실행할 수 있고, interrupted()는 Thread에서 실행할 수 있는데 그럼 혹시 다른 스레드에서 인터럽트를 실행해도 Thread.interrupted()에 걸릴까 싶어 테스트를 해보니 그러지는 않더라구요. Thread.interrupted의 내부를 보니 currentThread()를 호출하긴하던데, Thread.currentThread.interrupted()가 안되는 이유는 스레드의 내부적인 부분으로 보면 될까요? 궁금해서 혹시하고 질문드렸습니다ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 마지막 notifyall에서 만약에 c1 다음에 p1이 락을 획득하면 나머지 c2, c3, c4, c5는 대기집합에 들어가나요 아니면 깨어있는 상태로 계속있나요?
선생님 안녕하세요. 강의 잘 듣고 있습니다. 다름 아니라 미니콘다 프롬프트를 통해 가상환경설정 시 기존 yaml 파일을 통해 환경설정을 덮어쓰기 하는 경우 에러가 발생합니다. (myenv-finance-analysis) C:\Users\baesilisk\env_yaml>conda env create --force -f myenv-finance-analysis.yaml usage: conda-script.py [-h] [-v] [--no-plugins] [-V] COMMAND ... conda-script.py : error: unrecognized arguments: --force 해결방법을 알려주시면 감사하겠습니다!
안녕하세요 선생님! 강의 잘 듣고 있습니다. [실전 문제풀이1 : BOJ 3085 사탕 게임] 문제에서 선생님이 제공해주신 "풀이1-O(N^4)" 으로 python3 답을 제출했는데 시간 초과가 되는 걸로 나옵니다. 시간 복잡도가 O(N^4)인데 왜 시간 초과가 나는 것인지 궁금해서 문의드립니다!
안녕하세요. 강의 잘 보고 있습니다. em.createQuery에서 distinct를 사용해도 DB에서 받아올 때는 뻥튀기된 데이터를 받아오는 것이 맞을까요? em.createQuery의 반환값으로 List<Order>에 담을 때 Order의 id 중복을 제거해서 담은 뒤 반환한다는 것이 맞을까요? 결국 distinct를 사용하나 안 하나 DB에 나가는 쿼리는 같을까요? public List<Order> findAllWithItem() { return em.createQuery( "select distinct o from Order o" + " join fetch o.member m" + " join fetch o.delivery d" + " join fetch o.orderItems oi" + " join fetch oi.item i", Order.class) .getResultList(); } 참고한 질문과 답변입니다. https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-API%EA%B0%9C%EB%B0%9C-%EC%84%B1%EB%8A%A5%EC%B5%9C%EC%A0%81%ED%99%94&unitId=24332&tab=community&category=questionDetail&q=555554
답보다 구한 개수가 더 클 때와 같을 때를 구분해서 코드를 작성하면 정답이 아닌 것도 있는데 왜일까요?! 결국 개수가 같은 것을 찾는 것이니까 맞지 않나요...??? import sys #sys.stdin = open("00.txt", "r") k, n = map(int, input().split()) lens = list(int(input()) for _ in range(k)) rt = max(lens) lt = 0 while rt >= lt: temp = (rt+lt)//2 s = 0 for i in range(k): s += lens[i] // temp if s > n: lt = temp + 1 elif s < n: rt = temp - 1 else: re = temp lt = temp + 1 print(re)