묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 db table 생성안됨
h2 db 연결은 되었는데 member테이블 생성이 안됩니다. spring: #띄어쓰기 없음 datasource: #띄어쓰기 2칸 url: jdbc:h2:tcp://localhost/~/jpashop #4칸 username: sa password: driver-class-name: org.h2.Driver jpa: #띄어쓰기 2칸 hibernate: #띄어쓰기 4칸 ddl-auto: create #띄어쓰기 6칸 properties: #띄어쓰기 4칸 hibernate: #띄어쓰기 6칸 show_sql: true #띄어쓰기 8칸 format_sql: true #띄어쓰기 8칸 logging.level: #띄어쓰기 없음 org.hibernate.SQL: debug #띄어쓰기 2칸 # org.hibernate.type: trace #띄어쓰기 2칸 ```
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 섹션 4 회원 기능 테스트 강의 질문입니다. @RunWith(SpringRunner.class) @SpringBootTest @Transactional class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { // given Member member = new Member(); member.setName("kim"); // when Long saveId = memberService.join(member); // then assertEquals(member, memberRepository.findOne(saveId)); } @Test public void 중복_회원_예외() throws Exception { // given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); // when & then assertThrows(IllegalStateException.class, () -> { memberService.join(member1); memberService.join(member2); }); } }Junit5를 사용했다는 점을 제외하고는 강의와 똑같이 코드를 작성했습니다.이때 회원가입관련 테스트에서 강의에서는 insert문이 나가지 않지만 저는 따로 Rollback을 false로 설정하지 않아도 insert문이 실행되더군요. 이유가 궁금합니다.사진에서 확인할 수 있듯이 Rollback이 되었기 때문에 트랜잭션이 커밋되지 않아 insert 쿼리가 발생하면 안될 것 같은데 왜 실행되는지 이유를 모르겠습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
08_01 합이 같은 부분 집합
왜 dfs로 풀어야하는지 잘 이해가 되지않습니다.집합의 일부분을 사용하고 value의 값이 가장 먼저 나오는 node를 찾으면 되는 문제로 판단하고 bfs로 제출했더니 런타임오류가 발생했습니다. 아직 개념이해가 부족해 잘못된 접근 방식인건지 잘모르겠습니다. 관련해서 설명부탁드겠습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
JDK 21을 사용하는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]JDK 21을 사용하시는 특별한 이유가 있을까요? 현재 JDK LTS 릴리스가 17 다음에 21인것으로 알고 있는데 제가 찾아본 바로는 21보다는 17이 현재까지는 더 안정성이 있고, 여러 패치와 업데이트를 통해 성숙한 상태여서 커뮤니티도 더욱 활발하다고 합니다.반면에 21의 경우에는 아직은 이런저런 에러들이 발생하는것으로 알고있습니다.단지 최신 버전이라서가 아닌 특별한 이유가 있으시다면 그 이유를 알고싶습니다!
-
미해결김영한의 실전 자바 - 중급 2편
Card 객체의 suit
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이번 강의를 시청하고 enum을 제대로 공부를 안했구나 느껴서 다시 중급1편을 보고 왔는데도 Card 객체에서 suit를 생성자로 값을 주입하는걸 너무 이해가 안됩니다. enum타입은 상수라서 그냥 생성자를 이용해서 넣지않고 바로 사용하면 되는거 아닌가요? compareTo, toString에 사용하기 위해 생성자를 이용해서 주입을 하신건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build이후 파일생성안됨?
빌드가 된 후에 파일 생성이 안될수가 있나요?ㅜㅜ 경로를 계속 못찾느다고 하네요 들어가봐도 build라는 파일은 없는데요 +비슷한 질문 찾아서 gradlew build로 실행해 보니 빌드오류가 뜹니다 어떤 경우인가요? devtools 지우고 다시 해봐도 동일한 오류가 뜨네요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
딜레마라고 말씀하신 부분 자체가 이해가 잘 가지 않습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]양방향 연관관계와 연관관계의 주인 1-기본 편 강의에서13:33 즈음에 딜레마라고 말씀해주신 부분에서(제가 설계적인 센스가 있어서 그런게 아니라)Member클래스의 team필드를 당연히 외래키와 맵핑시켜야 하는거 아닌가? 라는 생각이 들었는데 오히려 둘 다 가능하다고 하니 이해가 가질 않습니다. 어쩨사 Team 클래스의 멤버를 바꾸는데 외래키를 수정해야 하는지 자세한 설명 부탁드립니다 (뒷 내용은 Team클래스에서 연관관계를 맺지 말라고 하셨지만 이해가 안 가는건 어쩔 수 없네요)좀 더 질문을 자세히 드리자면 13:33 이전까지 db는 외래키를 이용하기 때문에 방향의 개념이 필요없다고 하셨는데 객체는 서로 참조로 방향이라는 개념이 생긴다 이로 인해 패러다임의 불일치라는 문제가 생긴다라고 하셨는데 객체와 db의 방향성 까지는 이해했는데 패러다임의 불일치로 정확히 어떤 문제가 발생하는지 까지 이해하지 못했습니다 설명 부탁드립니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 빈
[질문 내용] MemoryMemberRepository가 MemberRepository인터페이스를 구현하기 때문에 스피링 빈(객체)는 MemoryMemberRepository클래스의 객체여야한다고 생각하는데강의안은 이렇게 되어있는데 부모 인터페이스가 자식을 품을수 있기 때문에 그림이 이렇게 된건가요??
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
newBoundedElastic 에서 queue 에 쌓이는 룰
안녕하세요 좋은 강의 감사합니다.강의 <Sceduler의 종류> 에서 13:24 쯤에 나오는 내용이 궁금합니다."subscribe 3 doing" 는 왜 T-1 쓰레드의 Q1 큐에 쌓이고, "subscribe 4 doing" 는 왜 T-1 쓰레드의 Q2 큐에 쌓에 쌓이는지 궁금합니다.그 다음"subscribe 5 doing" 역시 왜 T-1쓰레드 Q1 큐에 쌓이는 지도 궁금합니다.순서가 차례로 하나씩 할당되게 되는 것인가요감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
결론이 이게 맞나요?
강의에서 보면 연관관계의 주인은 일대다 관계 중 다에 해당하는 Member클래스입니다. 주인이 Member클래스이기 때문에 해당 연관관계 편의 메서드는 다음과 같이 Member클래스에 정의합니다.public void setTeam(Team team) { this.team = team; team.getMembers().add(this); }Team클래스인 경우 일대다 중 일에 해당하는 클래스입니다.여기선 연관관계 편의 메서드를 사용하지 않습니다. 이렇게 이해하면 될까요?
-
미해결자바 9부터 자바 21까지
12강 강의 챕터 제목에 오타가 있네요
record pattern과 siwtch pattern matching 으로 되어있습니다
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
book.getStockQuantity()의 개수가 8인 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.처음에는 book.getStockQuantity()가 10일것이라 예상하였고, db에서 다시 조회해야 8일것이라 생각했습니다. 8인 이유는 book.getStockQuantity()를 할때 영속성 컨텍스트의 1차 캐시에서 조회해오기 때문에 8인건가요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
강의소개 질문
안녕하세요. 여기 강의소개 보고 CS 이론이라고 되어 있는데학교에서 배우는 CS theory 랑 같은 맥락의 CS 이론인건가요 ?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA Member로의 insert 안됨 문제 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]해당 로그가 뜨면서(exit code 1) Member테이블에 insert가 되지 않습니다.h2 데이터베이스를 1.4.200 버전으로 사용해보기도 했으나 그대로입니다.아래는 실행 로그입니다./Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=50548:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath /Users/kjh/study/ex1-hello-jpa/target/classes:/Users/kjh/.m2/repository/org/hibernate/hibernate-entitymanager/5.3.10.Final/hibernate-entitymanager-5.3.10.Final.jar:/Users/kjh/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/Users/kjh/.m2/repository/org/hibernate/hibernate-core/5.3.10.Final/hibernate-core-5.3.10.Final.jar:/Users/kjh/.m2/repository/org/javassist/javassist/3.23.2-GA/javassist-3.23.2-GA.jar:/Users/kjh/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/Users/kjh/.m2/repository/org/jboss/jandex/2.0.5.Final/jandex-2.0.5.Final.jar:/Users/kjh/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar:/Users/kjh/.m2/repository/org/dom4j/dom4j/2.1.1/dom4j-2.1.1.jar:/Users/kjh/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.0.4.Final/hibernate-commons-annotations-5.0.4.Final.jar:/Users/kjh/.m2/repository/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2.jar:/Users/kjh/.m2/repository/net/bytebuddy/byte-buddy/1.9.5/byte-buddy-1.9.5.jar:/Users/kjh/.m2/repository/org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/1.1.1.Final/jboss-transaction-api_1.2_spec-1.1.1.Final.jar:/Users/kjh/.m2/repository/org/hibernate/orm/hibernate-core/6.5.2.Final/hibernate-core-6.5.2.Final.jar:/Users/kjh/.m2/repository/jakarta/persistence/jakarta.persistence-api/3.1.0/jakarta.persistence-api-3.1.0.jar:/Users/kjh/.m2/repository/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar:/Users/kjh/.m2/repository/io/smallrye/jandex/3.1.2/jandex-3.1.2.jar:/Users/kjh/.m2/repository/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar:/Users/kjh/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.0/jakarta.xml.bind-api-4.0.0.jar:/Users/kjh/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.0/jakarta.activation-api-2.1.0.jar:/Users/kjh/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.2/jaxb-runtime-4.0.2.jar:/Users/kjh/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.2/jaxb-core-4.0.2.jar:/Users/kjh/.m2/repository/org/eclipse/angus/angus-activation/2.0.0/angus-activation-2.0.0.jar:/Users/kjh/.m2/repository/org/glassfish/jaxb/txw2/4.0.2/txw2-4.0.2.jar:/Users/kjh/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.1/istack-commons-runtime-4.1.1.jar:/Users/kjh/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/Users/kjh/.m2/repository/org/antlr/antlr4-runtime/4.13.0/antlr4-runtime-4.13.0.jar:/Users/kjh/.m2/repository/com/h2database/h2/2.3.230/h2-2.3.230.jar hellojpa.JpaMain7월 31, 2024 5:33:00 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformationINFO: HHH000204: Processing PersistenceUnitInfo [ name: hello ...]7월 31, 2024 5:33:01 오후 org.hibernate.Version logVersionINFO: HHH000412: Hibernate Core {5.3.10.Final}7월 31, 2024 5:33:01 오후 org.hibernate.cfg.Environment <clinit>INFO: HHH000206: hibernate.properties not foundException in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:86) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:212) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:174) at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:61) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:50) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at hellojpa.JpaMain.main(JpaMain.java:11)Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 12 moreProcess finished with exit code 1
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA기반 애플리케이션에서 연관관계 매핑을 사용하지 않는다는 것 (DB에서 FK를 사용하지 않는 것)
JPA에서 연관관계 매핑을 아애 활용하지 않는다는 것은 JPA를 사용하는 것이 사실상 무의미한 것일까요? 실무에서 JPA를 사용하고 있는데, FK를 사용하지 말라고 하셔서요.. (설계가 완벽하지 않은 상태에서 데이터 정합성 문제로 인한 수작업 때문입니다.)
-
미해결김영한의 실전 자바 - 중급 2편
정적 메서드 사용 시 public 여부
private 으로 사용하는 경우는 명확히 붙여주는거같은데 public 의 경우 붙이는 경우도 있고 안 붙이는 경우도 있는 것 같아서 질문드립니다. 혹시 기준이 있을까요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
멀티스레드 app 질문
안녕하세요.스레드 강의를 듣던 중에 만들고 싶은 프로그램이 생겨서 질문 드립니다.스크랩 데몬 프로그램을 만들려고 하는데DB에서 url 리스트를 조회하고리스트를 스레드 갯수만큼 분할한 뒤멀티 스레드를 활용해서 각 스레드에서 스크랩을 하고 DB에 저장 한 뒤 잠시 sleep위를 무한 반복하는 역할을 합니다.lombok, logging, dev, prod.yml config 등 springboot의 편리함을 사용하고 싶고gradle을 활용하여 멀티 모듈로 작성할 계획인데(DAC: JPA를 사용하는 역할은 따로 분리, infra mailling 등 분리)spring-boot-starter만 web 없이 사용해서 구현하려고 했더니 마땅히 작성할 위치가 보이지 않아 일단 ApplicationRunner를 구현하고 작성하였는데 문제는 build 시에 ApplicationRunner를 springboot가 실행하여서 무한 반복에 빠져서 빌드가 완료가 안됩니다.이를 환경변 수 등을 이용해서 피할 수는 있겠으나이러다보니 springboot에 작성하는게 잘못된건가 싶기도하고 그냥 쌩 자바 프로그램으로 하는게 맞을까요?선생님이시라면 어떻게 구현을 하실지 의견 부탁드립니다.
-
미해결실전! 스프링 데이터 JPA
Annotation 순서
Annotation의 순서에 따라 실행 결과가 바뀌진 않겠지만 실무에서 관행으로 쓰이는 순서가 있을까요?중요도에 따라 혹은 포괄적인 것을 상위 배치하는 등 선호되는 배치 순서가 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 빌드 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.gradlew build 라고 안치고gradlew만 입력했을때 BUILD SUCCESSFUL 이라고 나왔습니다이 문구 뜨고 gradlew build 입력하면위와 같은 에러가 뜹니다..이 에러가 뜨긴 했는데 디렉토리는 생성이 되었고 java -jar () 하면위처럼 잘 빌드된것처럼 spring이 나옵니다..그냥 계속 실습 진행해도 괜찮은걸까요?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코틀린 싱글톤 질문
강사님께서 코틀린으로 서버를 만드실 때 object로 싱글톤 만드는 방법을 사용하지는 않는다고 하셨는데 실제 현업에서 이러한 방식으로 싱글톤을 많이 안만드나요? 혹시 이러한 방식을 사용하는 현업에서의 예제가 있다면 어떤게 있나요?