학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하십니까 수업진행중 OrderItem 테이블에서 Orders 테이블이 생성되지 않아 id를 참조하지 못하는 에러가 발생하여 검색하여 이것저것 만졌는데, 이제 CREATE 문이 아예 되지 않는 문제가 생겨 질문드립니다. 에러로그는 남지 않고 CREATE문만 돌지 않습니다. jpashop-project 라는 명칭을 저는 사용하고 있습니다. 제 소스 파일 다운로드 링크 또한 함께 올려두겠습니다. https://drive.google.com/file/d/1XoIDg25sc6iJ0yxQK5RGylSvs38GpiA7/view?usp=sharing 링크 아래에는 콘솔로그를 남겨두겠습니다. :: Spring Boot :: (v3.4.5) 2025-04-27T18:15:15.780+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315780 | took 0ms | statement | connection 6| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_category(rn_ integer not null, category_id bigint, parent_id bigint, name varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_category(rn_ integer not null, category_id bigint, parent_id bigint, name varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.780+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_item2(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, actor varchar(255), director varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.780+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315780 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_item2(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, actor varchar(255), director varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_item2(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, actor varchar(255), director varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.781+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_orders(rn_ integer not null, delivery_id bigint, member_id bigint, order_date timestamp(6), order_id bigint, status enum (), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.782+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315782 | took 1ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_orders(rn_ integer not null, delivery_id bigint, member_id bigint, order_date timestamp(6), order_id bigint, status enum (), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_orders(rn_ integer not null, delivery_id bigint, member_id bigint, order_date timestamp(6), order_id bigint, status enum (), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.782+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_item0(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, artist varchar(255), etc varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.782+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315782 | took 0ms | statement | connection 9| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_item0(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, artist varchar(255), etc varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_item0(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, artist varchar(255), etc varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.783+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_delivery(rn_ integer not null, delivery_id bigint, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.784+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315784 | took 0ms | statement | connection 10| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_delivery(rn_ integer not null, delivery_id bigint, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_delivery(rn_ integer not null, delivery_id bigint, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.784+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_member(rn_ integer not null, member_id bigint, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.784+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315784 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_member(rn_ integer not null, member_id bigint, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_member(rn_ integer not null, member_id bigint, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.835+09:00 INFO 23859 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2025-04-27T18:15:15.835+09:00 DEBUG 23859 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5574eb53] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@670ec66c] 2025-04-27T18:15:15.836+09:00 TRACE 23859 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@670ec66c] for TypeConfiguration 2025-04-27T18:15:15.836+09:00 INFO 23859 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-04-27T18:15:15.850+09:00 WARN 23859 --- [ restartedMain] 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 2025-04-27T18:15:15.962+09:00 INFO 23859 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:tcp://localhost/~/jpashop-project' 2025-04-27T18:15:15.977+09:00 INFO 23859 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2025-04-27T18:15:15.991+09:00 INFO 23859 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' 2025-04-27T18:15:15.995+09:00 INFO 23859 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 1.303 seconds (process running for 1.484)
안녕하세요. 강의 잘 보고,듣고, 익히고 있습니다! customAuthenticationFilter관련 부분보다가 궁금증이 생겨서 질문 남깁니다. authenticationManager, authenticationProvider 로직을 SecuriyConfig의 필터가 아닌 일반 서비스 로직 내부에서도 똑같이 커스텀해서 사용이 가능한가요? (Contoller에서 dto로 받아서 서비스에서 id/pw 검증 후 이후 과정을 처리하는 그런 흐름이 가능한건지 궁금합니다) jwt 관련 로그인을 구현하려고 하는데, 전체적인 구조는 SpringSecurity의 맥락을 그대로 가져가고 싶은..생각입니다.
안녕하세요. 37_사용자 질의에 맞는 SQL 생성 강의에서는 DDL 스키마 단 한개로만 예제가 구성되어 있는데요. 실제로 한개의 테이블만 사용하는 경우는 거의 없고, 많으면 10개의 테이블까지 join 하는 케이스가 많을텐데, 이 경우에는 어떻게 chatClient 를 사용하면 될까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] @Import로 Aspect를 불러지 않으면, getClass에서 target=class hello.aop.internalcall.CallServiceV0 으로 뜨는 이유가 궁금합니다. Aspect를 적용하든 안 하든 프록시로 등록되어야 되지 않을까요?
안녕하세요 강의 중반에 OrderServiceTest 할 때 작성하셨떤 tearDown() 에서 @AfterEach void tearDown() { orderProductRepository.deleteAllInBatch(); productRepository.deleteAllInBatch(); orderRepository.deleteAllInBatch(); } 위의 순서를 지키지 않으면 왜 테스트가 깨지나요? 어차피 매번 수행한 후에 데이터를 다 지우는 것은 동일하잖아요. fk 때문에 지워지지 않는 이유에서 그런건가요.
안녕하세요 좋은 강의 잘 듣고 있습니다. 다름이 아니라 Product 에서 생성자에 @Builder를 붙이시고 private 으로 선언한 이유에 대해서 알 수 있을까요? 결국 테스트에서도 @Builder 로 바로 사용하듯이 밖에서도 @Builder 를 사용할 수 있으니 private 으로 하는 어떤 의미가 있는지 궁금해서입니다 뭔가 의도로는, @Builder 생성자를 내부에서만 사용할 수 있게 private 으로 하고 of 와 같은 정적 생성자에서만 build()를 사용해서 밖에서는 정적 생성자로만 객체를 생성하도록 하는 것으로 생각했거든요. 미리 감사합니다.
안녕하세요 좋은 강의 감사드립니다! service -> ropository 를 참조하니 Facade 인데 왜 NamedLockStockFacade , OptimisticLockStockFacade 에 클래스 이름에만 Facade 를 붙이나요?? 현업에서는 어떤 상황에 Facade 를 붙여서 사용하나요?
안녕하세요 좋은 강의 감사합니다. 'DisplayName 을 섬세하게' 강의에서요! 설정 > Run tests using > gradle(-> intellJ) 로 변경하면 displayName 으로 뜬다고 하셨는데 기존의 gradle 로 하더라도 동일한 것 같은데 뭐가 다른가요? 감사합니다.
안녕하세요 좋은 강의 감사드립니다! 강의를 보던중 StockService 에 있는 decrease 메서드에 @Transactional 을 걸어주면 왜 동시성 문제가 해결이 안되는지 궁금합니다. 결국 @Transactional 을 걸어주면 AOP 객체가 생성되고 그 객체가 가지고 있는 모니터락을 사용해 그 객체에 한번에 하나의 스레드만 접근 가능한거 아닌가요~? 왜 동시성 제어가 안되는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. index.html 페이지는 잘 생성됐는데 텍스트 출력 기본을 누르면 404 notfound가 나옵니다. 코드랑 파일이름 다 똑같이 생성했는데 왜이럴까요? 강의 코드를 복사 붙여넣기해도 오류가 나옵니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 9분 31초에 나오는 테스트 실행해봤는데 회원가입에서 중복회원이라고 에러가 뜨네요.. transactional잘 되어있고 코드도 똑같은데 왜 안될까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 김영한님, 강의 잘 듣고 있습니다. 실무에서 Spring Data JPA를 사용하는데 궁금한 부분이 있어서 질문드립니다. @Entity 애노테이션이 달린 JPA Entity를 Domain처럼 비즈니스 로직을 넣고 사용하는 것과 @Entity는 순수 DB 매핑만 하고 도메인 객체는 별도로 분리해서 설계하는 방법 두가지가 있는 것 같다고 생각이 듭니다. 전자는 JPA의 기능들 (영속성 컨텍스트, Dirty Checking)을 잘 사용할 수 있을 것이고, 후자는 JPA 종속성 제거등의 이점이 있을 것 같습니다. 강의에서는 주로 비즈니스 로직을 넣고 사용하는 형태로 (changeTeam() 메서드 등) 개발을 했었다고 생각됩니다. 두 방법 다 장점과 단점이 있을 것 같은데, 실무에서는 주로 어떤 방식을 더 많이 사용해서 개발 하는지 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 따라가는 중에 실행하면 중간중간에 한번씩 연결 거부되는데 어떻게 해야될까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 질문이 있습니다. 예를 들어 오늘 수업듣고 다음날 다시 컴퓨터를 켜서 h2db에 들어가면 URL을 앞으로 계속 빨간 네모친 걸로 접속하면 되는건가요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 자바에서는 사용하지 않는 값은 GC가 알아서 제거해준다고 들었는데, 꼭 릴리즈를 해줘야 하는 필요가 쓰레드로컬에서는 있는건가요?
[질문 내용] 좋은 강의 잘 보고있습니다! 정말 간단하게 말하면 SSR - 서버에서 HTML최종 결과를 주는 방식, CSR - 클라이언트에서 HTML데이터와 JSON으로 데이터를 받은 후 동적으로 병합하는것 이렇게 정리를 했는데 데이터 보안이 굉장히 중요한 경우라면 CSR방식에서 Json으로 데이터를 받아올 때 민감한 데이터가 포함이 되어있을 수도 있다는 점을 고려했을 때 SSR방식이 보안적인 측면에서 더욱 강점이 있다고해도 맞는 말인지 궁금합니다!
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
맥북으로 다시 복습중인데 connection test를 누르면 DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045] Access denied for user 'root'@' localhost ' (using password: YES). 이 오류가 계속 뜹니다. mysql 서버를 재시작 하기도 해보고 비밀번호도 다시 변경 해보기도 하는데 안되네요 ㅠㅠ 왜 이럴까요??