묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
테스트를 위한 코드
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 테스트를 위한 코드로 보이는 fun fixture 라는 생성자 만드는 코드를 엔티티 안에 생성해주셨는데테스트가 아니면 따로 사용되지 않을 것 같은 코드를 엔티티 단 안에 작성해도 괜찮나요?
-
미해결스프링 부트 - 핵심 원리와 활용
actuator 호출시 타임스탬프 질문
위의 url 호출시 timestamp가 저렇게 나오고 있습니다. 참고로 현재 2025-05-01 20:57:41 입니다.시간이 왜 저렇게 나오는 걸까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
mysql 데드락 발생
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의 재밌게 잘 듣고 있는 취준생입니다!테스트 실행 도중에 데드락이 발생하여 이에 관해 여쭤보고자 합니다. 구체적으로인 상황은article_view_count 테이블에 존재하지 않는 레코드를 삽입AND어플리케이션 실행 후, 첫 테스트 코드 실행 을 만족하는 상황에서 DeadLock 에러가 발생합니다. 아마 Lock 획득실패로 인한 에러가 표출되는것으로 보이며 에러 로그는 하단에 첨부했습니다. 제가 생각한 원인은 다음과 같습니다.UPDATE문임에 따라 해당 레코드에 X-Lock이 걸리며, 100개의 요청마다 UPDATE쿼리가 날라가지만, 첫 INSERT 요청의 트랜잭션이 완료되지 않아 이후의 트랜잭션이 잠금 대기롤백 첫 INSERT 요청이 오래 걸리는 이유를 알고 싶습니다.양질의 강의 제공해주셔서 감사합니다!2025-05-01T19:46:27.647+09:00 WARN 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1213, SQLState: 400012025-05-01T19:46:27.647+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.h.engine.jdbc.spi.SqlExceptionHelper : Deadlock found when trying to get lock; try restarting transactionHibernate: update article_view_count set view_count = ? where article_id = ? and view_count < ?2025-05-01T19:46:27.653+09:00 ERROR 27109 --- [kuke-board-view-service] [io-9003-exec-63] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.CannotAcquireLockException: could not execute statement [Deadlock found when trying to get lock; try restarting transaction] [insert into article_view_count (view_count,article_id) values (?,?)]; SQL [insert into article_view_count (view_count,article_id) values (?,?)]] with root causecom.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
페이징 방식의 readAll에서 count 쿼리 변경?
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[댓글 수 구현] 강의의 마지막에서 페이징 방식 readAll() 메소드에서 commentRepository.count(~)를이번에 ArticleCommentCount를 활용하여 구현한 count(articleid)로 바꿔도 된다고 말씀하셨는데, 둘이 엄밀히 다르지 않나요?? 기존에 구현한 commentRepository.count(~)는 게시글별 댓글수를 조회하지만 limit가 있고,이번에 구현한 count(articleId)를 limit 없이 그냥 게시글에 대한 댓글 수를 모두 조회하니 의미가 다르지 않나 싶어서 질문드려봅니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
API 이용할때 @Transactional
API를 이용할때 Service를 거치지 않고 Repository를 사용하여 DB에 접근하게되는데 @Transactional를 Repository마다 붙이지 않는 이유를 알 수 있을까요? 어디서 Transactional을 걸어주는지 모르겠습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
프론트단에 대해
안녕하세요. 궁금한 점이 있어 질문드립니다.추후 스프링 클라우드로 msa 팀프로젝트 만들려고합니다. 프론트단을 만들려고 하면 공통 레이아웃 및 기능화면을 따로 공통 서비스 예를 들면 ui-service를 만들고 이 서비스의 yml에서 게이트웨이를 작성한다고 들었습니다. 이게 제일 효율적인 방법인지 아니면 다른 방법으로 프론트단 구현법이 있는지 알고 싶습니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
앱 재시작 후 회원가입
안녕하세요. 정말 도움을 많이 받고 있습니다. 감사합니다.항상 앱을 재시작하고 같은 아이디(whiteship)로 회원가입을 하시는데 계속 성공하시는 것 같아서 질문드립니다. 혹시 앱을 재시작하면 회원 목록이 초기화되는 코드가 있으신가요? 제가 놓친 것 같지만 부득이하게 질문드립니다. 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 자료 요청
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 할 때 보여주시는 화면은 문서로는 없나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
버전 업데이트 질문
새롭게 마지막 섹션에 updated 된것은 어떻게 봐야하나요 ? 커리큘럼 중간에 deprecated 된것도 있는데, 건너뛰면 되는지 기존에 이것 대신에 updated 된곳에 어떤걸 봐라 라고 설명좀 해주실 수 있나요 ?
-
해결됨카카오,구글 SNS 로그인(springboot3, vue3)
토큰 생성강의 코드 실행 문의
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/oauthdb?useSSL=false username: root password: jinwook219 jpa: database: mysql # InnoDB?? database-platform: org.hibernate.dialect.MySQL8Dialect generate-ddl: true hibernate: ddl-auto: create show_sql: true jwt: # 32글자 이상 인코딩된 문자열 : oauthserversecretaccesstokenoauthserversecretaccesstokenoauthserversecretaccesstoken secret: b2F1dGhzZXJ2ZXJzZWNyZXRhY2Nlc3N0b2tlbm9hdXRoc2VydmVyc2VjcmV0YWNjZXNzdG9rZW5vYXV0aHNlcnZlcnNlY3JldGFjY2Vzc3Rva2Vu expiration: 3000 #분단위 package com.example.oauth.auth; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.crypto.spec.SecretKeySpec; import java.security.Key; import java.util.Date; @Component public class JwtTokenProvider { private final String secretKey; private final int expiration; private Key SECRET_KEY; public JwtTokenProvider(@Value("${jwt.secret}") String secretKey, @Value("${jwt.expiration}") int expiration) { this.secretKey = secretKey; this.expiration = expiration; this.SECRET_KEY = new SecretKeySpec(java.util.Base64.getDecoder().decode(secretKey), SignatureAlgorithm.HS512.getJcaName()); } public String createToken(String email, String role){ // claims는 jwt토큰의 payload부분을 의미 Claims claims = Jwts.claims().setSubject(email); claims.put("role", role); Date now = new Date(); String token = Jwts.builder() .setClaims(claims) .setIssuedAt(now) .setExpiration(new Date(now.getTime()+ expiration*60*1000L)) .signWith(SECRET_KEY) .compact(); return token; } } Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-04-29T00:35:55.742+09:00 ERROR 3891 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jwtTokenProvider' defined in file [/Users/macforjinwook/Desktop/oauth/build/classes/java/main/com/example/oauth/auth/JwtTokenProvider.class]: Unexpected exception during bean creation at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:536) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:347) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1155) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1121) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1056) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987) ~[spring-context-6.2.5.jar:6.2.5] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.5.jar:6.2.5] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.4.jar:3.4.4] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.4.jar:3.4.4] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.4.jar:3.4.4] at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.4.jar:3.4.4] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.4.jar:3.4.4] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.4.jar:3.4.4] at com.example.oauth.OauthApplication.main(OauthApplication.java:10) ~[main/:na] Caused by: org.springframework.util.PlaceholderResolutionException: Could not resolve placeholder 'jwt.secret' in value "${jwt.secret}" at org.springframework.util.PlaceholderResolutionException.withValue(PlaceholderResolutionException.java:81) ~[spring-core-6.2.5.jar:6.2.5] at org.springframework.util.PlaceholderParser$ParsedValue.resolve(PlaceholderParser.java:423) ~[spring-core-6.2.5.jar:6.2.5] at org.springframework.util.PlaceholderParser.replacePlaceholders(PlaceholderParser.java:128) ~[spring-core-6.2.5.jar:6.2.5] at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:118) ~[spring-core-6.2.5.jar:6.2.5] at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:114) ~[spring-core-6.2.5.jar:6.2.5] at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:255) ~[spring-core-6.2.5.jar:6.2.5] at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:226) ~[spring-core-6.2.5.jar:6.2.5] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:201) ~[spring-context-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:971) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1577) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1555) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1381) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1218) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.2.5.jar:6.2.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.2.5.jar:6.2.5] ... 16 common frames omitted 종료 코드 1(으)로 완료된 프로세스 Caused by: org.springframework.util.PlaceholderResolutionException: Could not resolve placeholder 'jwt.secret' in value "${jwt.secret}"이 부분을 보면 yml에 있는 jwt.secret을 인식 못하는 것 같은데 원인을 못 찾겠습니다 강사님 깃허브 코드를 붙혀넣어봐도 왜 이런지 잘 모르겠습니다. 혹시 이런 경우에는 어떤 것을 찾아봐야하나요??
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
프런트쪽을 vue를 사용하지 않고도 구현 가능할까요??
안녕하세요 ㅎㅎ 채팅 시스템이 있는 프로젝트를 구현하고 싶어서 강의 수강중에 있습니다 :)현재 진행중인 프로젝트 구조는 msa 구조로 프런트-게이트웨이-유레카-백엔드 이런식으로 있고 프런트쪽은 html+js+spring feignClient로 이루어져 있습니다. 다른 프레임워크를 사용하지 않고 html과 js로만 구현이 가능케 해야하는데 vue를 사용하지 않고도 강의에서 다루고 있는 채팅 시스템을 문제없이 구현이 가능한지 궁금해서 여쭤봅니다!!
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
강의 자료 다운로드에 관해
저도 다른 분들처럼 강의 자료를 다운 받아보니 비어있는 폴더라고 표시되더라고요, 혹시 강의 자료를 따로 다운 받을 수 있는 방법이 있을까요?일단 혹시 몰라 이메일 남겨봅니다.sksdhkd0724@gmail.com
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
30강 질문
repository를 user를 다룰때는 repository라는 패키지를 따로 만들어서 했는데, 지금 강의의 book에 관한 repositorty를 따로 만들지 않고 인터페이스만 객체와 같은 패키지에 만들어서 extends로 jpa를 받기 때문에 따로 만들 필요가 없어서 이렇게 만든거라고 이해 했는데 맞게 이해한걸까요? 즉, jpa를 익스텐즈한 인테페이스 덕분에 따로 sql문법을 작성하지 않았다는 말이 맞을까요?> 추가로 왜 객체가 있는 패키지에 인터페이스를 만드는 이유가 띠로 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
ORDER, DELIVERY 등의 테이블이 생성되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 현재 이렇게 까지만 생성이 되었습니다. 에러로그와 소스코드는 제일 하단에 있습니다! ngframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1865) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1814) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) ~[spring-context-6.2.6.jar:6.2.6] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.6.jar:6.2.6] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) ~[spring-boot-3.4.5.jar:3.4.5] at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:10) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.4.5.jar:3.4.5]Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status enum ([*]), primary key (delivery_id))"; expected "INTERSECTS (, NOT, EXISTS, UNIQUE, INTERSECTS"; SQL statement:create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (delivery_id)) [42001-232] at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.readSQLException(SessionRemote.java:663) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.readException(SessionRemote.java:646) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.done(SessionRemote.java:620) ~[h2-2.3.232.jar:2.3.232] at org.h2.command.CommandRemote.prepare(CommandRemote.java:84) ~[h2-2.3.232.jar:2.3.232] at org.h2.command.CommandRemote.<init>(CommandRemote.java:56) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:488) ~[h2-2.3.232.jar:2.3.232] at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1164) ~[h2-2.3.232.jar:2.3.232] at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:245) ~[h2-2.3.232.jar:2.3.232] at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:231) ~[h2-2.3.232.jar:2.3.232] at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) ~[HikariCP-5.1.0.jar:na] at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) ~[HikariCP-5.1.0.jar:na] at com.p6spy.engine.wrapper.StatementWrapper.execute(StatementWrapper.java:115) ~[p6spy-3.9.0.jar:na] at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:80) ~[hibernate-core-6.6.13.Final.jar:6.6.13.Final] ... 44 common frames omitted 이런식으로 에러가 발생하는데mappedby, @Table 등 설정이 다 되어 있는데이러한 오류가 발생합니다.따로 설정한 건 없는데도 이런 오류가 발생을 하네요.. 확인부탁드립니다..! https://drive.google.com/file/d/1XoIDg25sc6iJ0yxQK5RGylSvs38GpiA7/view?usp=sharing
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
데이터베이스 테이블이 생성되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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-projectcreate global temporary table HTE_category(rn_ integer not null, category_id bigint, parent_id bigint, name varchar(255), primary key (rn_)) TRANSACTIONALcreate 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_)) TRANSACTIONAL2025-04-27T18:15:15.780+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315780 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop-projectcreate 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_)) TRANSACTIONALcreate 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_)) TRANSACTIONAL2025-04-27T18:15:15.782+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315782 | took 1ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/jpashop-projectcreate 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_)) TRANSACTIONALcreate 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_)) TRANSACTIONAL2025-04-27T18:15:15.782+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315782 | took 0ms | statement | connection 9| url jdbc:h2:tcp://localhost/~/jpashop-projectcreate 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_)) TRANSACTIONALcreate 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_)) TRANSACTIONAL2025-04-27T18:15:15.784+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315784 | took 0ms | statement | connection 10| url jdbc:h2:tcp://localhost/~/jpashop-projectcreate 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_)) TRANSACTIONALcreate 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_)) TRANSACTIONAL2025-04-27T18:15:15.784+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315784 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop-projectcreate 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_)) TRANSACTIONALcreate 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 TypeConfiguration2025-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 warning2025-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 357292025-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)
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
customAuthentication 관련
안녕하세요. 강의 잘 보고,듣고, 익히고 있습니다!customAuthenticationFilter관련 부분보다가 궁금증이 생겨서 질문 남깁니다. authenticationManager, authenticationProvider 로직을 SecuriyConfig의 필터가 아닌 일반 서비스 로직 내부에서도 똑같이 커스텀해서 사용이 가능한가요? (Contoller에서 dto로 받아서 서비스에서 id/pw 검증 후 이후 과정을 처리하는 그런 흐름이 가능한건지 궁금합니다) jwt 관련 로그인을 구현하려고 하는데, 전체적인 구조는 SpringSecurity의 맥락을 그대로 가져가고 싶은..생각입니다.
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
사용자 질의에 맞는 SQL 생성 시 여러 테이블 조인 쿼리 사용법
안녕하세요. 37_사용자 질의에 맞는 SQL 생성 강의에서는 DDL 스키마 단 한개로만 예제가 구성되어 있는데요. 실제로 한개의 테이블만 사용하는 경우는 거의 없고, 많으면 10개의 테이블까지 join 하는 케이스가 많을텐데,이 경우에는 어떻게 chatClient 를 사용하면 될까요?
-
해결됨이거 하나로 종결 - 32시간 고품질 스프링 풀스택 웹 개발
./forest.png 파일은 어디서 다운 받을 수 있을까요?
./forest.png 파일은 어디서 다운 받을 수 있을까요? 보이지 않는 것 같습니다.
-
미해결RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
DLQ 재시도 로직 처리후 DLQ에 unacked 1건이 남는거에 대해서
안녕하세요.예시 학습 중에 DeadLetterQueue 수동 재시도 관련해서 질문있습니다. http 호출 이후에 추가적으로 DLQConsumer가 호출되지는 않는데, 처리 후 RabbitMQ 콘솔 확인해보니 DLQ에 unacked 한 건이 남아 있었습니다. 제 생각에는 DLQConsumer에서 정상적으로 메시지 소비했으면 마찬가지로 ack 처리 해줘야 하는게 아닌가 싶은데, DLQ에 unacked 상태로 남기는게 의도된 경우가 있을수 있는건지 궁금합니다. order_completed_queue에서는 모두 처리되서 메시지가 보이지 않습니다. 예시 코드@Component @RequiredArgsConstructor public class OrderDLQConsumer { private final RabbitTemplate rabbitTemplate; @RabbitListener(queues = RabbitMQConfig.DLQ) public void process(String message) { System.out.println("DLQ Message Received: " + message); try { String fixMessage = "success"; rabbitTemplate.convertAndSend( RabbitMQConfig.ORDER_EXCHANGE, "order.completed.shipping", fixMessage ); System.out.println("DLQ Message Sent: " + fixMessage); } catch (Exception e) { System.err.println("### [DLQ Consumer Error] " + e.getMessage()); } } }
-
해결됨스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!
코드
혹시 각 섹션마다 다 만들어진 프로젝트가 없을까요..? 특정 섹션은 아는 부분이라서 코드만 읽고 빠르게 넘어가고 싶어요