본문 바로가기

전체 글

(397)
* What went wrong:org/gradle/api/plugins/MavenPlugin 결국은 모두다 지우고 처음부터 다시 프로젝트를 생성하여 문제를 해결하였다. 음.. 초반에 손을 볼때 어떠한 방법을 시도하여 적용해 보면 오류의 내용이 변해서 개선이 되고 있나보다 생각했다. 물론 실제로 개선이 일어나고 있었는지도 모르겠다. 하지만 결국은 * What went wrong: org/gradle/api/plugins/MavenPlugin > org.gradle.api.plugins.MavenPlugin 이와 같은 애러가 나왔고 구글링 해도 프로젝트를 완전히 뒤엎으라는 말은 하지 않아도 기존의 것을 삭제하고 다시 설치하는 글이 몇건 나온게 전부였다. 그리고 인프런 질문 게시판에 이와 같은 문제에 직면하고 해결하려는 사람이 있었고 그 답글은 도움이 안되어 결국은 모두 다시 지우고 해결하였다. 그래..
Could not instantiate id generator [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate id generator 위와 같은 오류가 난 적이 있었다. application.yml 에 들어가서 dialect: org.hibernate.dialect.MySQLDialect 와 같은 방언을 추가해 주어서 해결이 되었지만 뭔가 이치에 맞지 않아 주석처리 해버리고 나름 이치에 맞는다고 주관적으로 생각한 것이 Member클래스의 @GeneratedValue의 값을 좀더 구체적으로 해보자는 생각으로 아래와 같이 수정해 주었더니 해결이 되었다.
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException 에러 도움을 받은 출처: https://leeeehhjj.tistory.com/52 많은 시간을 이 작은 에러해결하는데 들였다... 처음으로 순수히 구글의 도움만으로 해결한 문제이다. 기존의 문제는 개정이 되고, 프로그램의 버전이 올라가면 그에 따라 공지를 해주지만 이번 에러는 그러한 공지조차 없었다. 그래서 어쩔수 없이 구글에 기대는 수밖에 없었다. 에러를 해결해 나가면서 배운것은 많았다. 그중에서 다음에 다른 어떠한 에러가 나왔을때 갖추어야 할 보편적인 자세는 아래와 같다. 에러 코드를 정확히 보려고 해야 한다. 그래야지 내가 검색할 검색어가 정해진다. 문제의 원인은 스프링 부트의 버전이 올라가면서 아래와 같이 application.yml 파일의 url 뒤에 MODE:MYSQL을 붙여주어야 했던 것이었다...
백준(BOJ) 2798: 블랙잭 출처: https://www.acmicpc.net/problem/2798 3중반복문으로 풀수도 있다. 하지만 나는 사고의 확장성을 위해서 재귀를 택했다. 아래에 반복문을 이용한 코드도 첨부한다. 어차피 구하고자 하는것은 주워진 숫자들의 목록에서 3개를 택하여 합한 값이므로 1,2,3 을 택하던지 3,2,1을 택하던지 아무 상관없다. 만약 3개의 숫자의 합이아닌 숫자의 목록에서 3개의 수를 문자열로 합한다던가하는 순서에 영향을 받는 값을 구하는 결과라면 일의 자리에 몇번인덱스의 값을 택할지, 십의 자리에 몇번 인덱스의 값을 구할지가 중요해지게 되겠지만 이 문제는 아니다. 따라서 2번째 풀이와 같이 재귀안에서 simple하게 반복문을 구성하는 것이 더 효율적이다. 첫번째, 나의 풀이. 코드만 봐도 명확한 접..
S-algo02 3자리 짝수찾기 빈도수 배열과 size변수를 이용하여 100의 자리에는 0이 올수 없도록 하고 1의 자리를 뽑을 때는 오로지 짝수만을 뽑도록 한다. 수학문제 푸는 거랑 똑같다. 머릿속으로 재귀트리 모형이 그려지면서 재귀함수 호출전 --frequency[i], 재귀함수 호출후 ++frequency[i]를 하는 것은 기계적으로 그려진다. 다만 이 문제만이 가지는 고유한 특성인 백의 자리에는 0이 들어가지 않고 오직 짝수인 100의 자리수를 어떻게 생성해 낼 것인지가 이 문제만이 가지는 특이점이다. 풀이법은 크게 두 가지이다. 1. 재귀를 이용한 풀이 2. 100~998까지의 숫자를 모두 탐색해 보기. import java.io.BufferedReader; import java.io.InputStreamReader; impo..
JPA. 관계 매핑 기본.(필요할 때 다시보고 메모하기ing) 출처: https://www.youtube.com/watch?v=V2MstrRhYBE&list=PLOSNUO27qFbvzGd3yWbHISxHctPRKkctO&index=14 와... 객체간의 포함관계가 데이터베이스의 일대다 관계와 대응되는 구나... But..객체간의 관계와 테이블간의 관계에 차이가 있다는 것을 알고 있어야 연관 관계의 매핑에 있어서 오류, 오류의 해결방법을 이해할 수 있습니다.
JPA. 필드(field)에 적용되는 몇가지 중요 어노테이션(2)@Temporal @Lob, @Enumerated, @transient 출처: https://www.youtube.com/watch?v=WH5UbfCjoN8&list=PLOSNUO27qFbvzGd3yWbHISxHctPRKkctO&index=13 1. @Temporal어노테이션 자바8 이전에는 날짜를 다루고자 할때에는 자바의 Util패키지의 Date라는 클래스타입 혹은 Calendar라는 클래스를 사용했음. 반면 DB의 날짜에 관한 타입은 3가지로 나뉨. DATE, TIME, TIMESTAMP(데이트와 타임을 섞은타입) 만약 LocalDate, LocalTime, LocalDateTime중 하나를 사용한다면 @Temporal을 사용하지 않아도 됩니다. 2. @Lob 어노테이션 Lazy loading이란 무엇인가? 예를들어 em.find()로 DB의 데이터를 가지고 와서 Use..
JPA. 필드(field)에 적용되는 몇가지 중요 어노테이션 출처: https://www.youtube.com/watch?v=C7Uu_hFnQN8&list=PLOSNUO27qFbvzGd3yWbHISxHctPRKkctO&index=12 (11:00 부터) @Column어노테이션 말고 @Basic이라는 옵셔널(Optional)한 어노테이션이 있습니다.옵셔널하다는 것은 생략가능하다는 의미입니다. 만약 @Column어노테이션이 없다면 해당 필드(변수)는 @Basic어노테이션을 갖는다고 보시면 됩니다. 기본적으로 자바객체의 타입과 DB가 가지고 있는 Column의 타입은 아시다시피 다릅니다. 이 다른것을 매핑해줄수 있는 매커니즘을 JPA provider(Hibernate, JPA구현체를 말함)들은 가지고 있습니다. 매핑 메커니즘의 기본이 되는 것을 Basic이라고 하여 @..