새벽에 잠이 안와서 강의를 들었더니 상당히 피곤한 하루였다. 알고리즘도 한 문제 푸는 둥 마는 둥 넘기고 최대한 강의를 듣고 개인 과제를 끝내서 강의를 다시 공부하는 여유를 가져보려했다.
개인 과제를 하면서 넘어가는게 나은 것같기도 하고... 너무 대충 넘어가나 싶기도 하다. 원래는 하면서 같이 넘어가는 중이었는데 강의를 듣다보니 기존에 구현해둔 것이 비효율적이고 대체할 수있는 것들이 계속 나오니 만들면서 고쳐나가다가 그냥 새로 시작하자해서 2주차까지 대부분 듣고 작업을 시작했다.
하다보니 막혔던 점이 많이 나왔던 것같다. properties에 비밀번호 잘못 넣어둬서 한참을 해매기도 했었다. 이거 고치겠다고 localhost@root 비밀번호 바꾸고 난리를 쳤는데 제일 쉬운 해결법이 있었던 것이었다. 튜터님이 찾아주셨을 때는 많이 뻘쭘했다..
jakarta.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call
이런 오류도 뱉어내길래 봤는데 @Transactional 어노테이션이 붙어야 작동을 한다. DB를 건드는 것이니 당연한 것같다.
spring.jpa.hibernate.ddl-auto:update 등 Entity를 @Table, @Column 어노테이션을 이용해서 만들었는데 테이블이 생성이 안되어서 한참을 뒤져본 거같은데 결국은 테이블을 새로고침을 안하고 있어서 그랬던 것이었다.
JpaRepository를 확장하려고 하니 또 안되길래 뭐가 문제인가 찾아보다가 interface 기반으로 제작해야된다는 것도 알았다. 제대로 안보고 사용하려하는게 또 발목을 잡나 싶다.
이런 몇가지 시행 착오를 겪어가며 일단은 CRUD까지는 구현을 해서 값을 받아오는 것에 성공했다.
이제는 추가 과제를 좀 더 진행하고 목요일에 제출을 완료해야겠다.