묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코어 자바스크립트
실행 컨텍스트와 클로저에 대해 질문드립니다.
안녕하세요클로저에 대해 명확한 이해가 되지 않아서 질문 드립니다. 전역, outer, inner 함수가 있다고 가정할 때, outer 함수가 실행되면, outer의 LexicalEnviroment이 생길것이고,그 내부에는 enviromentRecord와 outerEnviromentRef 가 생길 것입니다. enviromentRecord에는 inner 함수도 포함이 될 것이고,inner 함수는 outer 함수 내부에서 선언되었으므로,inner 함수의 [[Enviroment]] 슬롯은 outer 컨텍스트의 LexicalEnviroment를 참조할 것입니다. 따라서 outer컨텍스트가 종료 되어도 inner함수의 [[Enviroment]] 슬롯이outer 컨텍스트의 LexicalEnviroment를 참조하고 있기 때문에 GC 의 대상이 되지않고,(outer컨텍스트가 없어진 후에) inner 컨텍스트가 생성되어도정상적으로 inner의 outerEnviromentRef가 outer의 LexicalEnviroment를 참조할 수 있을 것입니다. outer LexcialEnviroment는 enviromentRecord와 outerEnviromentRef를 참조하고 있으므로,이 두 객체는 없어지지 않아야 할 것 같은데,강의 5:15 에서 outer의 enviromentRecord와 outerEnviromentRef는 a:1 을 제외하고모두 제거 되고 있습니다. 제 생각에는 참조의 과정을 따라가면 객체 내부의 프로퍼티가 남는게 아니라객체(enviromentRecord나 outerEnviromentRef 그 자체) 가 남아야 할 것 같은데,저렇게 일부를 제외하고 다 지워지는 이유가 있을까요? a와 inner 는 outer enviromentRecord에서 참조하고 있고,enviromentRecord와 outerEnviromentRef는 LexcialEnviroment에 의해 참조되며 LexcialEnviroment는 다시 inner 함수의 [[Enviroment]] 또는inner 컨텍스트의 outerEnviromentRef에 의해 참조 되고 있으므로,다 살아남아야 하는 것이 아닌가 생각됩니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
시퀄라이즈 관계메소드를 두번 사용하는 경우
const images = await Promise.all( req.body.image.map((image) => Image.create({ src: image })) ); await post.addImages(images); 이런식으로 Image.create() 를 적용한 다음다시 post.addImages() 하는 이유가 뭔가요? 중복된 실행이라고 생각했는데 실행해봤을때는 중복된 튜플이 생성되지는 않네요..
-
미해결처음 만난 리액트(React)
클릭 시 페이지가 넘어가지지 않습니다.
안녕하세요 질문이 있습니다.에러는 발생하지 않는데 클릭 했을 때 페이지가 안 넘어 가집니다. 주소를 입력해서 접속할 때도 잘되는데클릭 시에 아무 반응이 없습니다. 뭐가 문제일까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
어떻게 다수의 서버가 응답하는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 강사님께서 google에 hello로 검색했는데 다수의 서버가 응답하는 것을 볼 수 있었습니다. 요청은 한 개의 호스트(google)에 한 개의 포트(443)로 요청했는데 어떻게 응답은 여러개의 서버에서 올 수 있는건가요??좋은 강의 정말 잘 듣고 있습니다! 감사합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dev c++ 자체 오류..
어제 강의 결제하고 오늘부터 시작하려는데 이렇게 뜨고 다른 코드도 전부 안되네요..
-
해결됨그림으로 쉽게 배우는 운영체제
PCB 상태 실행에서 대기 상태에서 준비 상태로 변경시
안녕하세요.질문사항 이 3개있어서 답변을 받을수 있을까 하고 적어 봅니다.대기 상태에서 입력이 완료가 되었다는 것을 어디서 계속 체크하는 지 알수있을까요?혹시 키보드나 하드웨어 쪽에서 하는건가요?PCB가 A(Wait), B(Running)인 상태면 스캐줄러는 준비 > 실행 > 준비 > 실행 이렇게 동작을 하나요?아니면 준비 > 실행 > 대기(IO 작업이 완료 되었는지 검사)이렇게 진행이 되나요.(1번과 비슷한 질문)대기 중인 상태에서 입력이 완료가 되었을 때 CPU에게 인터럽트 항목을 호출한다고 알고있는데 이것이 맞는 항목인가요?긴 글 읽어 주셔서 감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
localhost 오류
첫번째 포트폴리오를 작성하던중, 경로를 boards/new로 이동하면 자꾸 저런 문구가 뜨며 오류가 발생합니다
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
아래 코드와 같이 구현해도 시간복잡도는 같을까요?
function solution(m, arr) { let answer = 0; let n = arr.length; let p1 = 0; let p2 = 1; let tmp = arr[p1] + arr[p2]; while (p2 < n) { if (tmp === m) { answer++; tmp = tmp - arr[p1++] + arr[++p2]; } else if (tmp < m) { tmp += arr[++p2]; } else { tmp -= arr[p1++]; } } return answer; } let a = [1, 2, 1, 3, 1, 1, 1, 2]; console.log(solution(6, a));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
log(2n+1) 이 아니라 log2의(2n) 아닌가요?
갑자기 2n+1 이 왜 나온지 모르겠습니다...
-
미해결차량 번호판 인식 프로젝트와 TensorFlow로 배우는 딥러닝 영상인식 올인원
CRNN 모델 코드 오류 발생
안녕하세요, CRNN 모델을 Custom Dataset으로 Training 하려고 하는 도중에 위와 같은 에러가 발생하는데 해결 방법에 대해 문의를 드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-B, 기타레슨
for(int i = 0; i < n; i++){ if(mid - a[i] < 0){ mid = temp; cnt++; } mid -= a[i]; } if(mid != temp) cnt++;이 부분이 아무리 봐도 들어도 이해가 안됩니다...ㅠㅠ그리고 rt를 누적합으로 둬야되는 이유도 잘 모르겠습니다.누적합을 이분탐색으로 mid를 두는것이 크기를 정한다는 의미도 뭔가 와닿지 않습니다..
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
navigate(history 변경)이 계속 오류가 발생하네요
이렇게 코드를 작성하였는데history.ts:480 Uncaught Error: useNavigate() may be used only in the context of a <Router> component. 에러가 발생합니다 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리 - 세션사용
이 부분에 질문이있는데요getSession시 Object를 반환하잖아요sessionStore에는 Member을 넣어도, Item을 넣어도 결국 Object로 반환해서 넘겨주는데.. 그럼 getSession을 호출하는 곳에서 Object에 대한 구체적인 정보를 사용하고싶어하면 어떡하죠?Member로 변환시켜야하는데, 외부에선 Object타입인것만 알지 Member타입인지는 모르잖아요?
-
해결됨토비의 스프링 부트 - 이해와 원리
코틀린으로 강의 따라하시는 분들이 계시다면 참고하세요. no-arg 설정이 필요합니다.
BeanPostProcessor는 매개변수가 없는 no-arg 생성자를 필요로 하는데요, 자바의 경우 굳이 매개변수를 생성자에서 주입하지 않아도 되지만 코틀린의 경우 JPA 엔티티나 현재 강의의 ServerProperties처럼 프로퍼티값을 읽어들여 객체를 생성하는 경우 생성자 파라미터를 보통 사용하실 텐데요,이 경우 따로. noarg 생성자가 만들어지지 않기 때문에 BeanPostProcessor가 디폴트 생성자를 만들어낼 수 있도록kotlin("plugin.allOpen") kotlin("plugin.noArg")을 이용해서 @Component 어노테이션으로 빈에 대한 no-arg 기능을 활성화해야합니다.gradle에서 다음과 같이 plugin을 포함하시구요plugins{ kotlin("plugin.noarg") version "1.7.22" //jpa를 사용하신다면 kotlin("plugin.jpa")에 포함되어 있습니다. } 아래에 Component 어노테이션에서 no-arg가 활성화될 수 있게 해당 부분을 적어주시면 됩니다.noArg { annotation("org.springframework.stereotype.Component") }all-open, no-arg 등의 플러그인에대한 더 자세한 설정에 대해서 궁금하시다면 아래 글을 참고하시면 좋습니다.https://techblog.woowahan.com/2675/
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
aws 질문입니다.
안녕하세요!혹시 강의 대로 진행하면 요금은 따로 청구되지 않는걸까요? 예전에 요금 폭탄을 맞은적이 있어 혹시 몰라 질문드립니다!ㅜㅜ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThat 관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]import static org~ 구문 추가 했는데도 계속 이 상태에요. 혹시 몰라서 앞에 Assertions.붙여봤는데도 계속 빨간 상태에요.. 뭐가 문제일까요ㅠ
-
미해결
Object.freeze()와 Spread Operator의 depth가 1인 이유
JS학습 과정에서 하나의 궁금증이 발생했습니다. 자료를 찾아보며 자체적 결론을 내렸으나, 이에 대한 추론이 맞는지 확인할 길이 없어 답답함에 문의드립니다.궁금증한 것 요약 Spread Operator과 Object.freeze()는 해당 식별자의 데이터 영역에만 적용되는가?입니다. Spread Operator과 Object.freeze()는 각각 적용되는 depth가 공통적으로 1입니다. 무언가 공통점이 있는 것 같다는 생각에 메모리적 관점으로 문제를 접근하게 되었습니다. Spread Operator와 Object.freeze()는 전부 "참조 타입의 데이터"에 사용됩니다. 이것들은 참조 데이터가 할당된 식별자의 데이터 해당 데이터 영역에만 적용될 뿐이지, 해당 데이터 영역의 변수영역에 무엇이 들어있는지는 신경을 쓰지 않는다고 추론했습니다. 적용되는 depth가 1이기 때문입니다. 즉, 위 함수들이 적용되는 부분은 해당 참조 타입 데이터 식별자의 "데이터 영역 뿐"이라고 생각했습니다.혹시 답을 알고계시다면, 답변해주시면 감사하겠습니다!!!아래는 조금 더 보시기 쉽게 풀어 쓴 글입니다.질문 내용을 이해하셨다면 아래의 내용은 보실 필요가 없습니다. :)1. 궁금증이 발생한 계기궁금증이 발생한 계기는 다음과 같았습니다. ES6의 Spread Operator는 DeepCopy되는 depth가 1이다.Object.freeze()로 불변성이 확정되는 depth는 1이다.둘 다 참조 데이터 타입이고 둘 다 depth가 1이네?? 왜그럴까??2. 추론# Object.freeze()의 예.1. const는 "변수 영역"에 담긴 값을 고정시킨다.2. Object.freeze()는 "데이터 영역"에 담긴 값을 고정시킨다.freeze()를 걸어준 해당 depth만 적용되고 하위 depth는 적용이 안되는 것을 확인!(추론) Object.freeze() 메서드가 해당 참조 타입 데이터에 대한 데이터 영역만 고정하는 방식이라면 납득이 가능하다!그렇다면, 데이터 영역에 들어있는 변수영역(key, value)들의 데이터 영역이 또 다른 참조 타입 데이터(nestedObject나 고차원 배열)인 경우, 이에 대한 불변성을 확정하지 못하는 방식으로 동작하는 것이겠구나!Spread 연산자도 똑같은 참조 타입 데이터이니, 위의 이유와 같겠군!이라고 추론했습니다. 답이 아니더라도 위의 추론에 대한 의견을 듣고싶습니다 :)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
REST BindingResult 유효성
BindingResult 를 rest로 하진 않았는데, BindingResult 한다면return값이 html주소 이동인데 어떻게 해야하는지와@Size와 같은 @Validated 유효성검사를 할때 에러메시지 커스텀과if (bindingResult.hasErrors()) { return "login/loginForm"; }그냥 @Controller는 .html이동인데 rest는 어떻게 해야할지 모르겠습니다.
-
해결됨인공지능을 활용한 이상거래 검출 기법
SMOTE를 활용한 데이터 생성
안녕하세요? 강의 잘 듣고 있습니다.다름이 아니라, SMOTE를 활용하여 데이터를 생성하는 과정에서저의 데이터는 강의에서 보여지는 것과 달라서 질문 드립니다.이렇게 선형데이터로 생성되어도 0,1을 구분하기 위하여 러닝을 하는데에 영향을 미치지는 않을까요?제 코드내용은 링크로 공유드립니다.감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 중 SQLGrammarException 에러 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요?스프링 부트 & JPA 강의 듣고 있는 수강생입니다. MemberRepository 테스트 중 SQLGrammarException이 발생하여 테스트가 실패합니다.MemberRepository의 save 메서드 아래 em.persist(member) 부분 때문에 발생한 것으로 보이는데 그 이유를 잘 모르겠습니다.영한님의 야생형 루트에 따라 JPA 수업을 아직 안듣고, 바로 실전으로 들어와서 그런제 jpa에 대한 기초가 약합니다.로그 남깁니다. 도움 부탁드리겠습니다. 2023-02-06 11:19:45.353 INFO 10204 --- [ main] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@6d167f58 testClass = MemberRepositoryTest, testInstance = jpabook.jpashop.MemberRepositoryTest@7682bf66, testMethod = testMember@MemberRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@3403e2ac testClass = MemberRepositoryTest, locations = '{}', classes = '{class jpabook.jpashop.JpashopApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@38102d01, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@610f7aa, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2118cddf, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@76ed1b7c, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1d8bd0de, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@293a5bf6], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@78b8f818]; rollback [false]2023-02-06 11:19:45.625 DEBUG 10204 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence2023-02-06 11:19:45.627 WARN 10204 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 90036, SQLState: 900362023-02-06 11:19:45.628 ERROR 10204 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Sequence "HIBERNATE_SEQUENCE" not found; SQL statement:call next value for hibernate_sequence [90036-200]2023-02-06 11:19:45.666 WARN 10204 --- [ main] o.s.test.context.TestContextManager : Caught exception while invoking 'afterTestMethod' callback on TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener@20435c40] for test method [public void jpabook.jpashop.MemberRepositoryTest.testMember()] and test instance [jpabook.jpashop.MemberRepositoryTest@7682bf66]org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:752) ~[spring-tx-5.3.2.jar:5.3.2] at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) ~[spring-tx-5.3.2.jar:5.3.2] at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:131) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:255) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:441) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.run(ParentRunner.java:413) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runner.JUnitCore.run(JUnitCore.java:137) ~[junit-4.13.1.jar:4.13.1] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) ~[junit-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) ~[junit-rt.jar:na]org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [call next value for hibernate_sequence]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) at jpabook.jpashop.MemberRepository$$EnhancerBySpringCGLIB$$2b302b5c.save(<generated>) at jpabook.jpashop.MemberRepositoryTest.testMember(MemberRepositoryTest.java:26) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:75) at org.hibernate.id.enhanced.SequenceStructure$1.getNextValue(SequenceStructure.java:93) at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40) at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:523) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:115) at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:185) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:128) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:55) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:102) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:720) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:706) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311) at com.sun.proxy.$Proxy86.persist(Unknown Source) at jpabook.jpashop.MemberRepository.save(MemberRepository.java:16) at jpabook.jpashop.MemberRepository$$FastClassBySpringCGLIB$$a3e1a60b.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ... 38 moreCaused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence "HIBERNATE_SEQUENCE" not found; SQL statement:call next value for hibernate_sequence [90036-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:576) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) at org.h2.message.DbException.get(DbException.java:205) at org.h2.message.DbException.get(DbException.java:181) at org.h2.command.Parser.readSequence(Parser.java:7678) at org.h2.command.Parser.readTermWithIdentifier(Parser.java:4593) at org.h2.command.Parser.readTerm(Parser.java:4311) at org.h2.command.Parser.readFactor(Parser.java:3343) at org.h2.command.Parser.readSum(Parser.java:3330) at org.h2.command.Parser.readConcat(Parser.java:3305) at org.h2.command.Parser.readCondition(Parser.java:3108) at org.h2.command.Parser.readExpression(Parser.java:3059) at org.h2.command.Parser.parseCall(Parser.java:6480) at org.h2.command.Parser.parsePrepared(Parser.java:905) at org.h2.command.Parser.parse(Parser.java:843) at org.h2.command.Parser.parse(Parser.java:815) at org.h2.command.Parser.prepareCommand(Parser.java:738) at org.h2.engine.Session.prepareLocal(Session.java:657) at org.h2.server.TcpServerThread.process(TcpServerThread.java:278) at org.h2.server.TcpServerThread.run(TcpServerThread.java:183) at java.base/java.lang.Thread.run(Thread.java:834) at org.h2.message.DbException.getJdbcSQLException(DbException.java:576) at org.h2.engine.SessionRemote.done(SessionRemote.java:611) at org.h2.command.CommandRemote.prepare(CommandRemote.java:85) at org.h2.command.CommandRemote.<init>(CommandRemote.java:51) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:481) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1235) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:76) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:352) at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:337) at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare(StatementPreparerImpl.java:90) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:176) ... 62 moreorg.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:752) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:131) at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:255) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:441) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)