inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

Enum 질문

미해결

김영한의 실전 자바 - 중급 1편

안녕하세요. Enum 메서드에서 toString()이 오버라이딩 되어서 BASIC, GOLD, DIAMOND가 변수명 그대로 찍혀 나온다고 말씀하셨는데 enum Grade에서 toString()을 재정의 하려고 하면 재정의 못하는 걸로 컴파일 에러가 나더라고요. 재정의 하려면 어떻게 해야 하나요 ?

  • java
  • 객체지향
인프린 댓글 1 좋아요 0 조회수 269

h2 테이블 생성이 안됩니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

package hellojpa; import jakarta.persistence.*; import java.util.Date; @Entity public class Member { @Id private Long id; @Column(name = "name") private String username; private Integer age; @Enumerated(EnumType.STRING) private RoleType roleType; @Temporal(TemporalType.TIMESTAMP) private Date createdDate; @Temporal(TemporalType.TIMESTAMP) private Date lastModifiedDate; @Lob private String description; public Member(){ } } 강사님과 똑같이 작성을 하고 실행하면 아무 쿼리도 나가지 않습니다. "C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1.2\lib\idea_rt.jar=49205:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1.2\bin" -Dfile.encoding=UTF-8 -classpath "E:\Spring\자바 ORM 표준 JPA 프로그래밍 - 기본편\ex1-hello-jpa-start\ex1-hello-jpa\target\classes;C:\Users\LGE\.m2\repository\org\hibernate\orm\hibernate-core\6.4.2.Final\hibernate-core-6.4.2.Final.jar;C:\Users\LGE\.m2\repository\jakarta\persistence\jakarta.persistence-api\3.1.0\jakarta.persistence-api-3.1.0.jar;C:\Users\LGE\.m2\repository\jakarta\transaction\jakarta.transaction-api\2.0.1\jakarta.transaction-api-2.0.1.jar;C:\Users\LGE\.m2\repository\org\jboss\logging\jboss-logging\3.5.0.Final\jboss-logging-3.5.0.Final.jar;C:\Users\LGE\.m2\repository\org\hibernate\common\hibernate-commons-annotations\6.0.6.Final\hibernate-commons-annotations-6.0.6.Final.jar;C:\Users\LGE\.m2\repository\io\smallrye\jandex\3.1.2\jandex-3.1.2.jar;C:\Users\LGE\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\LGE\.m2\repository\net\bytebuddy\byte-buddy\1.14.7\byte-buddy-1.14.7.jar;C:\Users\LGE\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\4.0.0\jakarta.xml.bind-api-4.0.0.jar;C:\Users\LGE\.m2\repository\jakarta\activation\jakarta.activation-api\2.1.0\jakarta.activation-api-2.1.0.jar;C:\Users\LGE\.m2\repository\org\glassfish\jaxb\jaxb-runtime\4.0.2\jaxb-runtime-4.0.2.jar;C:\Users\LGE\.m2\repository\org\glassfish\jaxb\jaxb-core\4.0.2\jaxb-core-4.0.2.jar;C:\Users\LGE\.m2\repository\org\eclipse\angus\angus-activation\2.0.0\angus-activation-2.0.0.jar;C:\Users\LGE\.m2\repository\org\glassfish\jaxb\txw2\4.0.2\txw2-4.0.2.jar;C:\Users\LGE\.m2\repository\com\sun\istack\istack-commons-runtime\4.1.1\istack-commons-runtime-4.1.1.jar;C:\Users\LGE\.m2\repository\jakarta\inject\jakarta.inject-api\2.0.1\jakarta.inject-api-2.0.1.jar;C:\Users\LGE\.m2\repository\org\antlr\antlr4-runtime\4.13.0\antlr4-runtime-4.13.0.jar;C:\Users\LGE\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;C:\Users\LGE\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\LGE\.m2\repository\com\h2database\h2\2.2.224\h2-2.2.224.jar" hellojpa.JpaMain 6월 13, 2024 7:44:16 오전 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [name: hello] 6월 13, 2024 7:44:16 오전 org.hibernate.Version logVersion INFO: HHH000412: Hibernate ORM core version 6.4.2.Final 6월 13, 2024 7:44:16 오전 org.hibernate.cache.internal.RegionFactoryInitiator initiateService INFO: HHH000026: Second-level cache disabled 6월 13, 2024 7:44:16 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using built-in connection pool (not intended for production use) 6월 13, 2024 7:44:16 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: Loaded JDBC driver class: org.h2.Driver 6월 13, 2024 7:44:16 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001012: Connecting with JDBC URL [jdbc:h2:tcp://localhost/~/test] 6월 13, 2024 7:44:16 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {password=****, user=sa} 6월 13, 2024 7:44:16 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false 6월 13, 2024 7:44:16 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init> INFO: HHH10001115: Connection pool size: 20 (min=1) 6월 13, 2024 7:44:16 오전 org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl constructDialect WARN: HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) 6월 13, 2024 7:44:17 오전 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService INFO: HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 6월 13, 2024 7:44:17 오전 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test] Process finished with exit code 0 <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="jakarta.persistence.jdbc.user" value="sa"/> <property name="jakarta.persistence.jdbc.password" value=""/> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.jdbc.batch_size" value="10"/> <property name="hibernate.hdm2ddl.auto" value="create"/> </properties> </persistence-unit> </persistence> <property name="hibernate.hdm2ddl.auto" value="create"/> 위 코드로 인해 테이블이 계속 드랍이 되어 그전까지는 주석처리하여 쿼리가 나가고 테이블이 생성되었지만 현재 위 코드를 다시 주석처리 하든 하지 않든 쿼리가 나가지 않고 테이블 생성이 되지 않습니다

  • java
  • jpa
  • 자바orm표준jpa프로그래밍기본편
박세훈 댓글 2 좋아요 0 조회수 282

HtmlEmailService 개발하다 생긴 의문입니다

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

HTML 인증 메일 전송하기 쪽 개발중에 궁금한게 생겼는데요 회원 가입후 링크로 인증쪽 url의 토큰 뒤에 &amp; 가 붙더라구요 검색해서 확인해보니 & 의 경우 서버 스크립트에서 처리할 때 &amp; 로 변환한다고 하더라구요 그래서 왜 자꾸 &amp; 로 변환 될까 찾던 찰나에 HtmlEmailService의 sendEmail 메서드에서 mimeMessageHelper.setText( String text, boolean html) 의 두번째 인자값이 false로 설정되어 있어 &amp; 값이 생겼었던 것입니다. 메일의 context 도 html 소스가 문자열 그대로 나오고 html 형태로 나왔었구요. true 로 설정하니 원만히 해결 되었는데 이유가 궁금합니다... setText 메서드를 타고 들어가면 htmlText 를 MimePart로 변환해주는 메서드가 있는데 정확히 알고 싶습니다.. 혹은 해당 메서드를 보고 이와 같은 문제를 맞딱드렸을때 알아내는 방법이나 노하우 같은게 있을까요 ?

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
The Beeeast 댓글 2 좋아요 0 조회수 268

상품(product) 수정시 const 사용이 안되는 이유

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요 멋진 강의 잘 듣고 있습니다. Todo에서 ReadComponent.js 안에서 read 할때 const makeDiv = () => () 와 같이 Arrow Function을 사용해서 간단하게 표현해주셨는데요, 수정할때도 간단하게 사용해보고 싶어서 Product의 ModifyComponent.js 에서 아래와 같이 만들어 사용해봤습니다. {makeDiv("name", product.pname, "text", handleChangeProduct)} {makeDiv("description", product.pdesc, "text", handleChangeProduct)} {makeDiv("price", product.price, "number", handleChangeProduct)} const makeDiv = (title, value, type, handleChangeProduct) => ( <div className="flex justify-center"> <div className="relative mb-4 flex w-full flex-wrap items-stretch"> <div className="w-1/5 p-6 text-right font-bold">{title}</div> <input className="w-4/5 p-6 rounded-r border border-solid border-neutral-300 shadow-md" name={title} type={type} value={value} onChange={handleChangeProduct} ></input> </div> </div> ); 만들어보니까, price(넘버)는 수정이 되는데, pname과 pdesc는 수정이 안되더라구요, readOnly가 먹혀있었습니다. text와 number가 다른걸까요... 수정이 안되는 이유가 뭔지 궁금합니다ㅠ 추가로, const makeDiv 는 return 아래에 추가를 해주셨는데, return 위에가 아니라 return 아래에 추가한 이유도 궁금합니다. 확인 부탁드립니다. 감사합니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
촉촉한 갈매기 댓글 1 좋아요 0 조회수 194

ClaaGrade 질문

미해결

김영한의 실전 자바 - 중급 1편

안녕하세요. 해당 ClassGrade 변수들은 static final로 선언되어 있으니 메서드 영역의 클래스 영역에 들어가 있는 것이 아니라 상수풀에 들어가 있어야 하는 거 아닌가요 ? (static final로 선언되어 있으니까요) 감사합니다 public static final ClassGrade BASIC

  • java
  • 객체지향
인프린 댓글 2 좋아요 0 조회수 304

Docker Volume 오류(reference, lowercase)

미해결

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

#ERROR1 repository 이름이 소문자여야 한다는 에러입니다. 제가 폴더 명을 "Docker"로 해놨었더니 이런 오류가 뜨더라고요. 폴더명을 "docker"로 바꿨더니 해결되었습니다. kim-yaegun@gim-yegeons-MacBook-Air Docker % docker run -p 5001:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app yaegun/node docker: invalid reference format: repository name (Docker) must be lowercase. See 'docker run --help'. #ERROR2 레퍼런스가 유효하지 않다는 에러입니다. kim-yaegun@gim-yegeons-MacBook-Air docker % docker run -p 5001:8000 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app yaegunkim/node docker: invalid reference format. See 'docker run --help'. 이건 $(pwd) 를 "$(pwd)" 로 바꾸어 주니 해결되었습니다. kim-yaegun@gim-yegeons-MacBook-Air docker % docker run -p 5001:8000 -v /usr/src/app/node_modules -v "$(pwd)":/usr/src/app yaegunkim/node Successful

  • aws
  • docker
  • github
  • ci/cd
  • travis-ci
  • 데이터-엔지니어링
Yaegun Kim 댓글 1 좋아요 0 조회수 593

이모션에서 props전달시 화살표함수가 원래 이렇게 생겼나요?

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

다른 부분에서 화살표함수 만들면 제대로 만들어지는데 이부분에서만 화살표함수 모양이 다릅니다.

  • react
  • node.js
  • seo
  • graphql
  • next.js
leeyunje96 댓글 2 좋아요 0 조회수 205

[섹션3 - 내가 만든 이미지 기억하기 쉬운 이름 주기] 네이밍/태그 에러

미해결

따라하며 배우는 도커와 CI환경 [2023.11 업데이트]

"docker build -t YaegunKim/hello:latest ./"로 빌드를 잘 한 것 같은데 아래와 같은 에러가 나오더라고요. #COMMAND docker run -it YaegunKim/hello #ERROR Unable to find image 'YaegunKim/hello:latest' locally docker: Error response from daemon: Get "https://YaegunKim/v2/": dialing YaegunKim:443 container via direct connection because has no HTTPS proxy: resolving host YaegunKim: lookup YaegunKim: no such host. See 'docker run --help'. 근데 또 아이디로 run을 하면 잘 되고... #PROBLEM-SOLVING 이유는 버전은 "latest"가 아닌 "lastest"로 해서 에러가 났던 것이었습니다. 다시 빌드 하고 실행해보니 hello가 잘 출력되네요 ㅎㅎ

  • aws
  • docker
  • github
  • ci/cd
  • travis-ci
  • 데이터-엔지니어링
Yaegun Kim 댓글 1 좋아요 0 조회수 247

em.getreference

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

Em,getReference 메소드도 find처럼 1차 캐시를 먼저 살펴보는건가요? 그래서 있으면 있는 거 반환!, 없으면 프록시 객체 반환인건가요?

  • java
  • jpa
정민교 댓글 1 좋아요 0 조회수 245

const Try = require(./Try) 빨간줄

미해결

웹 게임을 만들며 배우는 React

const Try = require('./Try'); 이렇게 불러오면 게임 실행은 되는데 빨간줄이 그어져있어요. 이미 포함된 파일 이름이라는 오류라네요.. './' 지우면 빨간줄은 사라지는데 코드가 실행되지 않네요. 빨간줄 무시하는 게 나을까요?

  • react
현대적인유교보이 댓글 1 좋아요 0 조회수 279

제네릭 타입이나 메서드를 정의할 때에 <T extends Animal>

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 제네릭 타입이나 메서드를 정의할 때에 상한 제한을 두기 위해서 <T extends Animal> 로 지정하였는데, 이렇게 지정하면 <Animal> 로 지정하는 것과 같은 효과가 나는 것이 아닌가요? 만약에 맞다면, 굳이 왜 T extends Animal 이라는 방법을 사용하는지 궁금합니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
hjle29 댓글 1 좋아요 0 조회수 310

큐로 구현

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

큐로 구현해서 사이트상 통과는 됐는데 혹시 코드 리뷰 부탁드려도될까요..?

  • java
  • 코딩-테스트
해톨 댓글 1 좋아요 0 조회수 282

강의 자료 부탁드립니다.

해결됨

팀 개발을 위한 Git, GitHub 입문

좋은 강의 감사합니다. tladmaal@naver.com

  • git
  • github
  • 버전관리시스템
미피목배게 댓글 2 좋아요 0 조회수 243

h2 데이터베이스 설정 오류

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] java.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:290) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:123) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:77) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:221) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:189) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1431) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1502) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.8.jar:6.1.8] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.8.jar:6.1.8] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.8.jar:6.1.8] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.8.jar:6.1.8] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1835) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.8.jar:6.1.8] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.8.jar:6.1.8] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.8.jar:6.1.8] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.0.jar:3.3.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.0.jar:3.3.0] at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:16) ~[classes/: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.3.0.jar:3.3.0] 2024-06-12T10:54:03.045+09:00 ERROR 26788 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) 2024-06-12T10:54:03.047+09:00 WARN 26788 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) 2024-06-12T10:54:03.061+09:00 INFO 26788 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2024-06-12T10:54:03.086+09:00 INFO 26788 --- [ restartedMain] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-06-12T10:54:03.135+09:00 ERROR 26788 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed 제가 컴퓨터 재부팅하고 JpashopApplicaton을 실행했을 때 다음과 같이 에러가 떠서 h2 데이터베이스 설정이 안됐나 싶어서 설정하려 했는데 h2에서 다음과 같은 에러가 발생했다고 하네요... 이거 Chat GPT한테 물어보면 application.yml을 다시 설정하라 하는데 뭔가 건드리면 안될 것 같아서 그런데 어떻게 해결하면 좋을지 질문 드리고자 합니다.

  • java
  • spring
  • spring-boot
  • jpa
lgh8079 댓글 2 좋아요 0 조회수 3412

엑셀 파일 생성 중에 cannot be used in worksheets 에러 발생

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

안녕하세요. 강의와는 무관한 질문이지만 본 강의 수강 완료 후 혼자서 프로젝트를 하고 있습니다. 현재 구글 리뷰 크롤링 & 스크랩중인데요. 해당 에러가 발생하는 이유를 도무지 찾을 수 가 없어서 질문 드립니다... 여러 사이트를 크롤링 해보고 엑셀을 생성 해 보았지만 왜 이런 에러가 발생하는지 로그를 봐도 제대로 표시가 안되니깐 찾기가 힘드네요. 구글 리뷰 사이트만 20여개 스크랩 했었고 엑셀도 제대로 생성 되었으니 스크랩 코드 자체에는 문제가 없는거 같습니다. 다만 이 부분에서만 문제가 생깁니다. ### 에러 발생 로그 [2024-06-12 09:42:59,954] [ERROR utils.py:179] >> Traceback (most recent call last): File "scraper\scrap_crawlers.py", line 1365, in get_review_details File "scraper\utils.py", line 202, in create_xlsx_file File "scraper\utils.py", line 181, in create_xlsx_file File "pandas\util\_decorators.py", line 333, in wrapper File "pandas\core\generic.py", line 2417, in to_excel File "pandas\io\formats\excel.py", line 952, in write File "pandas\io\excel\_openpyxl.py", line 490, in write cells File "openpyxl\cell\cell.py", line 218, in value File "openpyxl\cell\cell.py", line 197, in bind value File "openpyxl\cell\cell.py", line 165, in check_string openpyxl.utils.exceptions.IllegalCharacterError: 동생한테추천받았는데이렇게편한어플이있다니너무좋아요.현금비율은좋지않지만 신경많이안써도되서괜찮네요~ cannot be used in worksheets. During handling of the above exception, another exception occurred: ### cannot be used in worksheets. 이놈이 말썽이네요... 아래와 같이 테스트 케이스 만들어서 적용했을 때는 제대로 작동했었습니다. import asyncio from scraper.utils import create_xlsx_file, save_to_xlsx DEFAULT_NAME = "test" async def main(): data = { "message": "동생한테추천받았는데이렇게편한어플이있다니너무좋아요.현금비율은좋지않지만 신경많이안써도되서괜찮네요~" } xlsx_file = await create_xlsx_file( data, file_name=DEFAULT_NAME, sheet_name=DEFAULT_NAME ) await save_to_xlsx(xlsx_file, DEFAULT_NAME) asyncio.run(main()) # utils.py # 엑셀 가로 폭 조정하는 함수 async def calculate_dimension(worksheet: Worksheet) -> None: try: for column_cells in worksheet.iter_cols(): length = max(len(str(cell.value)) for cell in column_cells) adjusted_width = (length + 2) * 1.2 # 조정된 폭 계산 column_letter = get_column_letter(column_cells[0].column) worksheet.column_dimensions[column_letter].width = adjusted_width except Exception as e: message = f"엑셀 폭 조정 중에 예외 발생: '\n{e}" logger = await get_logger() logger.error(message) print(message) raise e # 엑셀에 서식 스타일 지정하는 함수 async def cell_pattern_fill( df: pd.DataFrame, worksheet: Worksheet, head_fill_color: str = "4472C4", head_font_color: str = "FFFFFF", body_fill_color: str = "D9E1F2", body_font_color: str = "000000", head_border_color: str = "2E5C99", body_border_color: str = "B4C6E7", fill_type: fills = "solid", ) -> None: try: # Define border styles thin_border_head = Border( left=Side(border_style="thin", color=head_border_color), right=Side(border_style="thin", color=head_border_color), top=Side(border_style="thin", color=head_border_color), bottom=Side(border_style="thin", color=head_border_color), ) thin_border_body = Border( left=Side(border_style="thin", color=body_border_color), right=Side(border_style="thin", color=body_border_color), top=Side(border_style="thin", color=body_border_color), bottom=Side(border_style="thin", color=body_border_color), ) # Set header row style for row in worksheet.iter_rows( min_row=1, max_row=1, min_col=1, max_col=df.shape[1] ): for cell in row: cell.fill = PatternFill( start_color=head_fill_color, end_color=head_fill_color, fill_type=fill_type, ) cell.font = Font(color=head_font_color, bold=True) cell.border = thin_border_head # Set body row style for i, row in enumerate( worksheet.iter_rows( min_row=2, max_row=worksheet.max_row, min_col=1, max_col=df.shape[1] ) ): for cell in row: if i % 2 == 0: cell.fill = PatternFill( start_color=body_fill_color, end_color=body_fill_color, fill_type=fill_type, ) cell.font = Font(color=body_font_color) cell.border = thin_border_body except Exception as e: message = f"엑셀 서식 지정 중에 예외 발생: '\n{e}" logger = await get_logger() logger.error(message) print(message) raise e # 본 강의 drf 엑셀 생성 파트를 참고해서 만든 엑셀 생성 함수 async def create_xlsx_file( data: Union[Dict, List], file_name: str = DEFAULT_DIR_NAME, sheet_name: str = DEFAULT_DIR_NAME, ) -> BytesIO: df = pd.json_normalize(data) io = BytesIO() io.name = file_name try: writer = pd.ExcelWriter(io, engine="openpyxl") # noqa df.to_excel( writer, index=False, engine="openpyxl", sheet_name=sheet_name, ) workbook = writer.book worksheet = workbook.active tasks = [ calculate_dimension(worksheet), cell_pattern_fill(df, worksheet), ] await tqdm.gather(*tasks, desc=f" 엑셀 파일 생성중") writer._save() # noqa except Exception as e: message = f"엑셀 생성 중에 예외 발생: '\n{e}" logger = await get_logger() logger.error(message) print(message) raise e io.seek(0) return io # 엑셀 저장 함수 async def save_to_xlsx( xlsx_file: BytesIO, dirname: str = DEFAULT_DIR_NAME, ): output_path = BASE_DIR / "스크랩_결과" / "엑셀" / dirname output_path.mkdir(parents=True, exist_ok=True) now = datetime.datetime.now() timestamp = now.strftime("%Y-%m-%d_%H_%M") filename = f"{xlsx_file.name}_{timestamp}" extension = ".xlsx" file_path = output_path / (filename + extension) try: async with aiofiles.open(file_path, "wb") as f: await f.write(xlsx_file.getvalue()) except Exception as e: message = f"엑셀 파일 저장 중에 예외 발생: '{filename}'\n{e}" logger = await get_logger() logger.error(message) print(message) raise e 전체적인 함수는 위와 같으며 엑셀 생성 중에 에러가 발생하였으니 create_xlsx_file 함수 부분에서 해결을 해보아야 할것 같습니다. 아니면 혹시 엑셀의 행을 생성 중에 에러가 발생하였을 때 해당 행은 스킵하고 이어서 진행하게 하는 방법이 있을까요?? "raise e"을 발생 시키지 않아도 엑셀 생성 작업 스킵이 되지않고 작업 자체에 문제가 생기네요

  • react
  • python
  • django
  • web-api
  • htmx
yezi9733 댓글 1 좋아요 0 조회수 656

jpql과 1차 캐시

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

Persist를 실행할 때는 영속성 컨텍스트 1차 캐시에 데이터를 넣지 않는 건가요? 아니면 persist도 1차 캐시에 데이터와 스냅샷 모두 저장하나요?Find를 실행해서 db에서 가져올 때만 가져올 때의 엔티키 상태를 스냅샷을 찍고 엔티티와 함께 1차 캐시에 저장하나요?jpql 실행시에는 1차 캐시를 조회하지 않는 건가요?이 질문의 이유:Find는 1차 캐시에 있는 엔티티를 먼저 조회하는 것으로 알고 있습니다.jpql을 실행할 때 Member 데이터가 없으면 안된다고 설명하고 있습니다그래서 jpql 실행은 1차 캐시를 먼저 찾지 않고 바로 쿼리를 전송하는 것인가? 라는 생각이 들었습니다.jpql이 1차 캐시를 조회하지 않으면 persist 호출 시 1차 캐시에 엔티티를 저장해도 db에서 찾으니까 결국 flush가 발생한다는 생각이 맞아 떨어지는 것 같습니다.

  • java
  • jpa
정민교 댓글 1 좋아요 0 조회수 268

OAuth2 로그인 구현 - Oauth 2.0 User 모델 소개 issuer-uri에러

미해결

스프링 시큐리티 OAuth2

섹션 7 OAuth2 로그인 구현 - Oauth 2.0 User 모델 소개(2) 진행시 설정시 에러가 납니다 uli 클릭하면 realm : "oauth2", public_key : "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqFd5+xNaJoQzccdweHH4hxMOOirdHcbGx7tAkl7YWFAD0kBpVmpFN3sWaz3T3CLa0zSULmEWuepEkf/T376JKs+opBRb8pfnDSvvq1va4UXhw5j1mMgN8a6kME2TfM4cd2XnnT9huTIJ2+4nTYPTwKhYd+KvgB1ruzUe4ApMw0injfbsyufS17bhGtHYn4Ysq7THWsOAPVQ+FMYd8e1T4tfY1jkQg68UYB43dHST34y0JWkStPowP80qLMbsPvJ4JrOCzSGk08sBvmd6Fo1KD9RAqZyGvQFXEyo1Y5jVcKGCgwin0ijQBCKhRpHmWGlmyamrW6fsgAnAJH+clUdAwQIDAQAB", token-service : " http://localhost:8080/realms/oauth2/protocol/openid-connect ", account-service : " http://localhost:8080/realms/oauth2/account ", tokens-not-before : 0 } 이렇게 잘나옵니다. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' spring: application: name: inf_oauth2 security: oauth2: client: registration: keycloak: authorization-grant-type: authorization_code client-id: oauth2-client-app client-name: oauth2-client-app client-secret: 90GVrQtfYCp1u9cc0VAJNFiY8ZzCyjHD redirect-uri: http://localhost:8081/login/oauth2/code/keycloak client-authentication-method: client_secret_basic scope: openid, profile, email provider: keycloak: issuer-uri: http://localhost:8080/realms/oauth2 authorization-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/auth jwk-set-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/certs token-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/token user-info-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/userinfo user-name-attribute: preferred_username org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexContoller': Unsatisfied dependency expressed through field 'clientRegistrationRepository': Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "http://localhost:8080/realms/oauth2" at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessorAutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:787) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessorAutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:767) ~[spring-beans-6.1.6.jar:6.1.6] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "http://localhost:8080/realms/oauth2" at java.base/java.util.HashMap.forEach(HashMap.java:1421) ~[na:na] at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper.asClientRegistrations(OAuth2ClientPropertiesMapper.java:64) ~[spring-boot-autoconfigure-3.2.5.jar:3.2.5] at org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientRegistrationRepositoryConfiguration.clientRegistrationRepository(OAuth2ClientRegistrationRepositoryConfiguration.java:49) ~[spring-boot-autoconfigure-3.2.5.jar:3.2.5] 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.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) ~[spring-beans-6.1.6.jar:6.1.6] ... 34 common frames omitted

  • java
  • spring
  • spring-boot
  • oauth
kim미소 파파 댓글 3 좋아요 0 조회수 843

07-01 emotion에서 if문을 다 넣어도 노란색으로 변하질 않습니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

onChangeContents 함수 부분에 넣었을때 처음엔 버튼이 노란색으로 변했습니다만 이후 onChangeWriter 와 onChangeTItle 부분까지 넣은 후 버튼의 색이 변하지 않습니다. if문을 다 지우고 setIsActive(true)만 넣었을때는 작동이 됩니다..

  • react
  • node.js
  • seo
  • graphql
  • next.js
leeyunje96 댓글 1 좋아요 0 조회수 245

양방향 연관관계의 필요성, 단방향 연관관계 시 fetch join

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 내용] 우선 단방향 연관관계를 적용하고 꼭 필요한 경우에 양방향 연관관계를 사용하라는 내용을 적용해보다가 이해가 안되는 부분이 생겨서 질문남깁니다. Team과 Member로 양방향 연관관계를 적용한다고 생각해보면 다른 질문의 답변을 봤을 때 Team을 조회할 때 Member가 거의 같이 조회가 되는 경우와 fetch join으로 조회 시 양방향 연관관계를 사용하여 더 편리하게 조회할 때 사용한다는 답변을 봤습니다. (제대로 이해한 것인지는 모르겠습니다.) 그래서 테스트를 해봤습니다. @Test void 멤버목록과_함께_팀조회() { Team team = new Team("teamA"); entityManager.persist(team); Member member = new Member("m1", 0, team); Member member2 = new Member("m2", 0, team); entityManager.persist(member); entityManager.persist(member2); entityManager.flush(); entityManager.clear(); System.out.println("====테스트 1 양방향 연관관계==="); Team findTeam = teamJpaRepository.findById(team.getId()).get(); List<Member> members = findTeam.getMembers(); for (Member member1 : members) { System.out.println("member1 = " + member1.getUsername()); } entityManager.flush(); entityManager.clear(); System.out.println("===테스트 2 fetch join 양방향 연관관계 사용=="); Team findTeam2 = teamRepository.findTeamWithMembersById(team.getId()).get(); List<Member> members2 = findTeam2.getMembers(); for (Member member1 : members2) { System.out.println("member1 = " + member1.getUsername()); } entityManager.flush(); entityManager.clear(); System.out.println("===테스트 3 fetch join 그냥 엔티티 사용=="); Team findTeam3 = teamRepository.findTeamWithMemberById(team.getId()).get(); List<Member> members3 = findTeam3.getMembers(); for (Member member1 : members3) { System.out.println("member1 = " + member1.getUsername()); } } public interface TeamRepository extends JpaRepository<Team, Long> { @Query("select t from Team t join fetch t.members") Optional<Team> findTeamWithMembersById(Long id); @Query("select t from Team t join fetch Member m") Optional<Team> findTeamWithMemberById(Long id); } 테스트 1의 경우 두개의 쿼리가 나가는 것을 확인했습니다. select t1_ 0.team _id, t1_0.create_by, t1_0.created_date, t1_0.last_modified_by, t1_0.last_modified_date, t1_ 0.name from team t1_0 where t1_ 0.team _id=? select m1_ 0.team _id, m1_0.member_id, m1_0.age, m1_0.create_by, m1_0.created_date, m1_0.last_modified_by, m1_0.last_modified_date, m1_0.username from member m1_0 where m1_ 0.team _id=? 테스트 2의 경우 한개의 쿼리만 나가는 것을 확인했습니다. select t1_ 0.team _id, t1_0.create_by, t1_0.created_date, t1_0.last_modified_by, t1_0.last_modified_date, m1_ 0.team _id, m1_0.member_id, m1_0.age, m1_0.create_by, m1_0.created_date, m1_0.last_modified_by, m1_0.last_modified_date, m1_0.username, t1_ 0.name from team t1_0 join member m1_0 on t1_ 0.team _id=m1_ 0.team _id 테스트 3의 경우 오류가 났습니다. 위의 테스트 1(getMembers로 접근), 테스트2(fetch join)의 경우 쿼리의 개수로 봤을 때 테스트 2를 사용하는 게 더 좋은 것 같은데 맞을까요? 테스트 3은 단방향인 경우 팀과 멤버를 같이 조회를 어떻게 해야되나요? 양방향 연관관계가 필요한 경우가 뭔가요? 원래 api 설계할 때 team, member를 각각 조회하는 경우만 만들었었는데, team과 member가 같이 조회되는 api를 만드는 경우도 있나요? (team/{id}, member/{id} 와 같은 경우만 만들어봤습니다.)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
pink102557 댓글 1 좋아요 0 조회수 346

로또 메서드 문의

미해결

김영한의 실전 자바 - 중급 1편

안녕하세요. 궁금한 점이 있어 문의 드립니다. 아래의 isUnique 메서드가 실행되었을 때를 가정해서 질문해보면 isUnique 매서드가 호출이 될 때 스택에 새롭게 할당이 되고 코드가 실행이 될텐데 이 때 이 새롭게 생성된 스택 영역 안에서 매개변수로 받은 number의 값 말고 나머지 바디에 있는 count 변수나 lottoNumbers 배열을 아는 건 메서드 영역의 클래스 영역에서 클래스 네임별로 구별이 되어 있고 그 클래스의 메서드를 가져다 쓰는 거니 메서드 내부의 변수들도 그 클래스에 해당한다는 걸 스택영역에서 알 수가 있는 거죠 ? 생각해보니 메서드 영역과 스택 영역은 분리되어 있고 메서드가 호출될 때 새롭게 스택 영역이 할당이 될텐데 어떻게 새롭게 할당된 공간 안에서 메서드 내부의 값들을 다 알까 싶어서요. 감사합니다.

  • java
  • 객체지향
인프린 댓글 2 좋아요 0 조회수 306

인기 태그

인프런 TOP Writers

주간 인기글