묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 리액트 테스트 [2023.11 업데이트]
useState 배열값 변경의 경우 테스트 멈춤
질문있습니다. const modelListData = ['model1', 'model2', 'model3'] const [rowData, setRowData] = useState([]) useEffect(() => { setRowData(modelListData) }, [modelListData])위 처럼 작성을 한 후에 테스트를 돌리면 그냥 터미널이 멈춰 버립니다...그런데 setRowData(modelListData)이걸 주석처리 하거나 배열이 아닌 타입의 값을 넣을 경우에는 테스트가 제대로 동작합니다. 혹시 test코드에 뭔가를 작성을 해주어야 할까요? ㅠㅠ테스트 코드는 아래처럼 작성하고 돌려보았습니다.describe('모델리스트 컴포넌트 및 기능 테스트', () => { test('테스트 왜 안됨?', () => { render(<ModelList />) }) }) 그런데 터미널은 여기서 아무리 기다려도 다음으로 넘어가지 않습니다. 단 setRowData에 배열이 아닌 타입의 값을 넣을 경우에는 무리없이 잘돌아갑니다 ㅜㅜ RERUN src/modelManager/components/ModelList.tsx x2 · src/__test__/modelList.test.tsx (1) · 모델리스트 컴포넌트 및 기능 테스트 (1) · 테스트 왜 안됨?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
org.hibernate.sql 출력
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 영한님처럼 이렇게 나왔으면 하지만,, spring: #띄어쓰기 없음 datasource: #띄어쓰기 2칸 url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: #띄어쓰기 2칸 hibernate: #띄어쓰기 4칸 ddl-auto: create #띄어쓰기 6칸 properties: #띄어쓰기 4칸 hibernate: #띄어쓰기 6칸 format_sql: true # show_sql: true #띄어쓰기 8칸 logging: level: org.hibernate.sql: debug org.hibernate.orm.jdbc.bind: traceyml 설정이 이렇게 되있는데도 아래와 같이 나옵니다. 그리고 빨간 경고가 뜨는 이유는 뭔지 알 수 있을까요..? WARNING: A Java agent has been loaded dynamically (C:\...\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release ```부트 3.2버전에 JDK는 21로 설정했습니다. 혹시나 build.gradle 도 같이 올립니다. plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'jbabook' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '21' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' 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' } tasks.named('test') { useJUnitPlatform() }
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
SQL 실행로그가 보이지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]테이블 생성 제대로 되는 것 확인하였으나 sql문이 터미널에 나타나지 않습니다.이전 강의 참고하여 repository를 인터페이스 상속받는 형태로 만들어보긴 했는데 이 부분은 문제 없을 것으로 생각됩니다.build.gradleplugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } } tasks.named('test') { useJUnitPlatform() } application.ymlspring: datasource: url: jdbc:h2:tcp://localhost/~/databasesByH2/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: #show_sql: true format_sql: true logging.level: org.hibernate.orm.jdbc.bind: trace #스프링 부트 3.x, hibernate6 Member.javapackage jpabook.jpashop.entity; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String username; } MemberRepository.java(인터페이스)package jpabook.jpashop.repository; import jpabook.jpashop.entity.Member; public interface MemberRepository { public Long save(Member member); public Member find(Long id); } JpaMemberRepository.java(구현체)package jpabook.jpashop.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jpabook.jpashop.entity.Member; import org.springframework.stereotype.Repository; @Repository public class JpaMemberRepository implements MemberRepository{ @PersistenceContext EntityManager em; @Override public Long save(Member member) { em.persist(member); return member.getId(); } @Override public Member find(Long id) { return em.find(Member.class, id); } } JpaMemberRepositoryTest.javapackage jpabook.jpashop.repository; import jpabook.jpashop.entity.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import static org.junit.jupiter.api.Assertions.*; @RunWith(SpringRunner.class) @SpringBootTest class JpaMemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) void save() { //given Member member = new Member(); member.setUsername("조건우"); //when Long resultId = memberRepository.save(member); Member findMember = memberRepository.find(resultId); //then Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember).isEqualTo(member); } @Test void find() { } }JpaMemberRepositoryTest.java 실행로그> Task :compileJava UP-TO-DATE > Task :processResources UP-TO-DATE > Task :classes UP-TO-DATE > Task :compileTestJava UP-TO-DATE > Task :processTestResources NO-SOURCE > Task :testClasses UP-TO-DATE 15:29:18.352 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [jpabook.jpashop.JpashopApplicationTests]: JpashopApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 15:29:18.391 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration jpabook.jpashop.JpashopApplication for test class jpabook.jpashop.JpashopApplicationTests 15:29:18.451 [Test worker] INFO org.springframework.boot.devtools.restart.RestartApplicationListener -- Restart disabled due to context in which it is running . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.0) 2023-12-18T15:29:18.567+09:00 INFO 2911 --- [ Test worker] j.jpashop.JpashopApplicationTests : Starting JpashopApplicationTests using Java 17.0.9 with PID 2911 (started by kangg in /Users/kangg/Coding/jpashop) 2023-12-18T15:29:18.568+09:00 INFO 2911 --- [ Test worker] j.jpashop.JpashopApplicationTests : No active profile set, falling back to 1 default profile: "default" 2023-12-18T15:29:18.865+09:00 INFO 2911 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-12-18T15:29:18.875+09:00 INFO 2911 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 6 ms. Found 0 JPA repository interfaces. 2023-12-18T15:29:19.077+09:00 INFO 2911 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-12-18T15:29:19.097+09:00 INFO 2911 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.3.1.Final 2023-12-18T15:29:19.111+09:00 INFO 2911 --- [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled 2023-12-18T15:29:19.201+09:00 INFO 2911 --- [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2023-12-18T15:29:19.213+09:00 INFO 2911 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-12-18T15:29:19.245+09:00 INFO 2911 --- [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:tcp://localhost/~/databasesByH2/jpashop user=SA 2023-12-18T15:29:19.246+09:00 INFO 2911 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2023-12-18T15:29:19.542+09:00 INFO 2911 --- [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2023-12-18T15:29:19.554+09:00 INFO 2911 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-12-18T15:29:19.634+09:00 WARN 2911 --- [ Test worker] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2023-12-18T15:29:19.643+09:00 INFO 2911 --- [ Test worker] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2023-12-18T15:29:19.812+09:00 INFO 2911 --- [ Test worker] j.jpashop.JpashopApplicationTests : Started JpashopApplicationTests in 1.367 seconds (process running for 1.814) OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 2023-12-18T15:29:20.098+09:00 INFO 2911 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2023-12-18T15:29:20.099+09:00 INFO 2911 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-12-18T15:29:20.104+09:00 INFO 2911 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. > Task :test Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD SUCCESSFUL in 2s 4 actionable tasks: 1 executed, 3 up-to-date 3:29:20 PM: Execution finished ':test --tests "jpabook.jpashop.JpashopApplicationTests"'.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
시퀀스 생성이 안되는거같아요
테스트 코드를 실행시키면 org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement [Sequence "MEMBER_SEQ" not found; SQL statement:select next value for member_seq [90036-224]] [select next value for member_seq]; SQL [select next value for member_seq]오류가 발생합니다.H2 에서 직접 CREATE SEQUENCE 쿼리로 직접 생성하고 나니까 테스트가 동작하네요 .. ddl-auto: create 확인했고 띄어쓰기 두칸 아닌것도 확인 했는데요 ,, 왜 안되는거죠?
-
미해결Flutter 초급 - Http통신, 상태관리
pubspec.yaml 파일에서 Pub get이 안됩니다.
좀 더 상세한 코드입니다.name: flutter_cart_bloc_exam description: A new Flutter application. version: 1.0.0+1 environment: sdk: ">=2.12.0 <3.0.0" dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.2 flutter_bloc: ^7.0.0 http: ^0.12.0+1 dev_dependencies: flutter_test: sdk: flutter test: ^1.24.9 test_api: ^0.5.1 flutter: uses-material-design: true처음에 환경의 sdk 관련해서 2.7로 변경한 이후에 null 관련된 정보들 및 다른 분들이 작성한 코드들을 확인하며 수정을 모두 완료했습니다. 그런데 Pub get 관련해서 가져오더라도 계속 오류가 발생하네요.@override bool updateShouldNotify(InheritedWidget oldWidget) => true; static CartBloc of(BuildContext context) => (context.dependOnInheritedWidgetOfExactType<CartProvider>() as CartProvider) .cartBloc;어떻게든 맞춰서 실행을 해봤지만 실행 버전이 달라 마이그레이션이 필요하다는 오류를 다시한번 받게 되었습니다. . . + 안드로이드의 gradle 파일이 잘못되었고, 버전이 잘못되었다는 오류가 발생해서 다시 롤백 후 삽질을 해봤습니다. 그래서 sdk가 2.7이어야만 하는 것인가? 생각이 되어 별도의 삽질을 해봤는데 안되네요. 아무래도 제가 깃에서 클론받은 프로젝트로 진행하다보니 이러한 문제가 발생했다고 생각이 되는데 혹시 해결책이 따로 있을까요? 일단은 새로 프로젝트 생성해서 처음부터 다시 진행해 볼 예정입니다. 제가 궁금한 부분은 git에서 클론받은 프로젝트가 있을 때 그래도 pubspec.yaml 파일에서의 라이브러리를 불러오는 것까지는 필요할 것 같은데( + 추후에 버전이 달라질 경우 운영 중인 프로젝트를 새로 만드는 것은 말이 안되기 때문에), 혹시 어느 키워드로 파고들어서 찾아야 할지, 혹은 별도의 해결책이 있으신지가 궁금합니다. 감사합니다.!
-
미해결프로젝트로 배우는 Vue.js 3
onMount 관련 강의가 몇강에 있었죠?ㅠㅠ
onMount 관련 강의가 몇강에 있었죠?ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
build.gradle에 implementation을 다 추가해서 새로고침까지 마쳤는데 로그가 안떠요 ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.JPA와 DB 설정, 동작확인 챕터에서 implementation를 추가한 후 MemberRepositoryTest를 실행시키면 27:05와 같이 쿼리 로그가 떠야 하는데 뜨지 않고 Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appendedfindMember == member true이 로그만 뜨는데 원인이 뭔지 잘 모르겠습니다 ㅠㅠ
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)=======================================이하 MemberServiceTest 코드입니다.이하 오류 메시지입니다.h2 실행 여부와 관계 없이 같은 오류가 뜨네요.어떻게 해결하면 좋을까요?감사합니다.
-
해결됨프로젝트로 배우는 Vue.js 3
json server실행/중지 문의드립니다!
json server 데이터베이스 서버 껐다 키시는데 어떻게 하는건가요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
transational
회사 인프런 계정인데 김영한강사님 강의가 많습니다.transational에 대해 자세히 알고싶은데@Transational 어노테이션을 설명하는 강좌가 어떤것인가요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest 중 MemberService NullpointException
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.MemberServiceTest 중 하기 에러가 발생합니다. java.lang.NullPointerException: Cannot invoke "jpabook.jpashop.service.MemberService.join(jpabook.jpashop.domain.Member)" because "this.memberService" is null at jpabook.jpashop.service.MemberServiceTest.join(MemberServiceTest.java:27) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) 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.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) 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.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42) at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80) at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) MemberServicepackage jpabook.jpashop.service; import java.util.List; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional @RequiredArgsConstructor public class MemberService { private final MemberRepository memberRepository; /** * 회원 가입 */ public Long join(Member member) { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Member member) { List<Member> findMembers = memberRepository.findByName(member.getName()); if (!findMembers.isEmpty()) { throw new IllegalStateException("이미 존재하는 회원입니다."); } } // 회원 전체 조회 public List<Member> findMembers() { return memberRepository.findAll(); } public Member findOne(Long memberId) { return memberRepository.fineOne(memberId); } } MemberServiceTestpackage jpabook.jpashop.service; import static org.junit.jupiter.api.Assertions.*; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; @SpringBootTest @Transactional public class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void join() { Member memberTestName = new Member(); memberTestName.setName("kimjimin"); Long savedId = memberService.join(memberTestName); assertEquals(memberTestName, memberRepository.fineOne(savedId)); } }
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오류는 안뜨는데 테이블 생성이 안됩니다.
H2랑 연결이 안되는건지..오류는 안뜨는데 member 테이블이 생성이 안됩니다..설정 이것저것 만져보기도하고 자바도 17로 변경했고, PDF에 변경된 사항 다 확인하고 등등 해봤는데 모르겠습니다.테스트부터 문제가 발생해서 진도가 안나갑니다.... 아래는 제가 코딩한 파일 링크입니다. ㅠㅠ https://drive.google.com/file/d/1fAVZQQ-mag2_oRpXDGhaWIpw4UFC9c-T/view?usp=sharing
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 실행이 되지 않습니다.
[질문 내용]질문 게시판에 있는 비슷한 질문들의 답변에서 나온 웬만한 해결책들을 해봤는데, 여전히 MemberRepositoryTest에서 오류가 나서 질문드립니다.H2도 다시 깔아보고, yml, build.gradle 전부 확인해봤는데 되질 않네요.이상한건 한번도 오류가 나지 않은 적이 없는데 Member 테이블이 생성은 됐습니다. 그렇지만 데이터가 추가가 되진 않았습니다.해결 방법이 있을까요? 제 프로젝트를 압축한 파일 링크입니다. 감사합니다!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
로그가 안떠요
킹영한님 로그입니다..저의 로그입니다.위의 select부분이 안떠요...
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2에 테이블 생성이 안됩니다.
00:37:51.408 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [jpabook.jpashop.MemberRepositoryTest]: MemberRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.00:37:51.499 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration jpabook.jpashop.JpashopApplication for test class jpabook.jpashop.MemberRepositoryTest00:37:51.652 [main] INFO org.springframework.boot.devtools.restart.RestartApplicationListener -- Restart disabled due to context in which it is running . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.1.6)2023-12-07T00:37:51.909+09:00 INFO 12984 --- [ main] jpabook.jpashop.MemberRepositoryTest : Starting MemberRepositoryTest using Java 20.0.2.1 with PID 12984 (started by 장민주 in C:\Users\장민주\Downloads\토이프로젝트\jpashop\jpashop)2023-12-07T00:37:51.910+09:00 INFO 12984 --- [ main] jpabook.jpashop.MemberRepositoryTest : No active profile set, falling back to 1 default profile: "default"2023-12-07T00:37:52.453+09:00 INFO 12984 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.2023-12-07T00:37:52.473+09:00 INFO 12984 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12 ms. Found 0 JPA repository interfaces.2023-12-07T00:37:52.903+09:00 INFO 12984 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]2023-12-07T00:37:52.946+09:00 INFO 12984 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.13.Final2023-12-07T00:37:52.947+09:00 INFO 12984 --- [ main] org.hibernate.cfg.Environment : HHH000406: Using bytecode reflection optimizer2023-12-07T00:37:53.169+09:00 INFO 12984 --- [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer2023-12-07T00:37:53.192+09:00 INFO 12984 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2023-12-07T00:37:53.384+09:00 INFO 12984 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:9f0efac1-9002-48e8-bf24-577a044a16d9 user=SA2023-12-07T00:37:53.386+09:00 INFO 12984 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.2023-12-07T00:37:54.134+09:00 INFO 12984 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)2023-12-07T00:37:54.146+09:00 DEBUG 12984 --- [ main] org.hibernate.SQL : drop table if exists member cascade 2023-12-07T00:37:54.148+09:00 DEBUG 12984 --- [ main] org.hibernate.SQL : drop sequence if exists member_seq2023-12-07T00:37:54.152+09:00 DEBUG 12984 --- [ main] org.hibernate.SQL : create sequence member_seq start with 1 increment by 502023-12-07T00:37:54.156+09:00 DEBUG 12984 --- [ main] org.hibernate.SQL : create table member ( id bigint not null, username varchar(255), primary key (id) )2023-12-07T00:37:54.162+09:00 INFO 12984 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'2023-12-07T00:37:54.343+09:00 WARN 12984 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning2023-12-07T00:37:54.706+09:00 INFO 12984 --- [ main] jpabook.jpashop.MemberRepositoryTest : Started MemberRepositoryTest in 3.058 seconds (process running for 3.74)OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended2023-12-07T00:37:55.191+09:00 DEBUG 12984 --- [ main] org.hibernate.SQL : select next value for member_seq2023-12-07T00:37:55.294+09:00 DEBUG 12984 --- [ main] org.hibernate.SQL : insert into member (username,id) values (?,?)2023-12-07T00:37:55.295+09:00 TRACE 12984 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [1] as [VARCHAR] - [memberA]2023-12-07T00:37:55.296+09:00 TRACE 12984 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [2] as [BIGINT] - [1]2023-12-07T00:37:55.304+09:00 INFO 12984 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'2023-12-07T00:37:55.305+09:00 INFO 12984 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...2023-12-07T00:37:55.307+09:00 INFO 12984 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.Process finished with exit code 0 이런식으로 뜨면서 테이블 생성이 안되는데 어떻게 해야 될까요? 오류 검색해서 계속 따라해보는데 잘 안됩니다 ㅠㅠ
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
build 에러
프로젝트를 build 하면 에러가 생기는데 어디서 생기는지 파악을 못하겠네요ㅠㅠnpm run dev 에서는 돌아가는데 build 후에 preview로 들어가보면홈페이지에서 에러가 납니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
멀티스레드 동시성 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]재고 감소 증가 로직은 멀티 스레드에 안전한가요? synchronized 키워드를 붙여야 안전할까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
외래키 뺀다는 뜻이 뭔가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]외래키 뺀다는 뜻이 뭔가요? 엔티티 개발할때 어떤식으로하면 외래키가 없어지나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[gradle build error] gradle clear build를 할때 모두 자바 17을 사용하고 있음에도 오류가 발생하고 있습니다.
안녕하세요. 다름이 아니고 다음과 같이 gradle은 8.4 버전이고 자바는 17버전을 사용하고 있습니다. 자바 17은 gradle 실행, complie할때 등등 모든 부분해서 11이 아닌 17을 사용하고 있음에도 불구하고 지속적으로 저런 에러가 발생해서 질문드렸습니다. intellij를 껏다 켜보기도 하였구요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
도메인 모델 패턴 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]도메인 모델 패턴을 사용하면 대부분의 비즈니스 로직이 엔티티에 들어가 있기 때문에, 서비스는 단순히 엔티티에 비즈니스 로직 처리를 위임하게 됩니다. 구글링을 해보니 도메인 모델 패턴의 장점 중 재사용성, 확장성 등 좋은 객체지향의 특성을 대부분 가져가고 있는 것 같아 보이는데요. 실제로 코드를 보면 도메인 모델(엔티티)에 비즈니스 로직이 담겨있고, 엔티티 간의 관계 매핑이 필요하기 때문에 특정 기술에 종속될 수 밖에 없지 않나 생각이 들었습니다. 도메인 모델 패턴이든, 트랜잭션 스크립트 패턴이든 비즈니스 로직을 가지고 있는 쪽은 최대한 순수한 자바 코드로 작성해야 한다고 생각하고 있었는데..Item 엔티티를 예시로 들면 JPA를 사용하여 연관관계 매핑이 되어있어 무수히 많은 애노테이션과 설정들이 들어있습니다. 만약 JPA를 걷어내고 다른 기술을 사용해야 할 경우에는 엔티티 로직에 제법 많은 수정이 필요할 것 같아 보입니다. 비즈니스 로직이 변경되는 경우도 마찬가지구요. 이렇게 저희가 지금 진행하고 있는 예제에서 도메인 모델 패턴이 객체지향을 잘 따르고 있다고 할 수 있는 것인지 긴가민가합니다. 질문이 조금 두서가 없었는데, 결론은현재 우리의 예제에서 JPA를 사용한 엔티티 객체들을 활용하여 도메인 모델 패턴을 사용할 경우 해당 설계가 객체지향 원칙들을 잘 지키고 있다고 볼 수 있는지? 입니다.