목록분류 전체보기 (192)
Lewis's Tech Keep
계기 Spring으로 user 관련 서비스를 만들다 DataJpaTest를 통한 테스트 코드 운용 중에 에러를 발생! 에러 메시지 o.h.e.internal.DefaultLoadEventListener : HHH000327: Error performing load command org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63) ~[hibernate-core-5.6.10.Final.jar:5.6.10.Final] at org.hibernate.e..
- webflux 와 jpa rdb 일 때 blocking 이어서 지원 안하는 것에 대한 이야기 - https://stackoverflow.com/questions/52480271/spring-webflux-jpa-reactive-repositories-are-not-supported-by-jpa Spring Webflux + JPA: Reactive Repositories are not supported by JPA I am getting error when I start my app JPA: Reactive Repositories are not supported by JPA. My Pom has below dependencies and i am using Spring Boot 2.0.5
JPA를 하면서 좀 불만아닌 불만이랄까... 불변성 보장을 하고 싶은데 final을 쓸 수 없는 모순에 자꾸 부딪히게 된다.. (참고 링크) 일단 왜 final을 이용해 불변 객체로 만들고 싶은가 하면 특히 진행 중인 사이드 프로젝트에 web-flux 를 사용하려고 생각하고 있었는데, web-flux는 리액티브 웹 프레임워크이며 논블로킹 리액티브 스트림을 이용하게 될 것이기 때문에 불변임을 보장하여 좀 더 안정적인 프로그램을 만들고 싶었다. 불변 객체 일 때 장점 - https://mangkyu.tistory.com/131 [Java] 불변 객체(Immutable Object) 및 final을 사용해야 하는 이유 클린코드를 읽어도, 이펙티브 자바를 읽어도, 개발을 잘하는 팀의 얘기를 들어도 항상 좋은 코..
오후 2시에 출발한 하남 검단산. 블로그에 찾아보니 1시간 정도 걸린다고 하여 안심하고 갔다 그렇게 등반한지 2시간째 580m 지점에 4시 40분 가까이 되었다. 해 지는 시간을 검색하자 17시 53분 정도 였다. 아 무리하지 말고 여기서 내려가자고 결심하여 하산을 결심. 650m지점 정상까지 얼마남지 않았는데 아쉬웠다. 하지만 아이젠도, 등산화도 없이 등반을 시작했던 나. 내려오면서 적어도 10번은 넘어졌던 것 같다. 더 무리를 해서 뛰어가서라도 정상에 도달했다면 나는 제 시간에 하산 할 수 없었겠지. 여태까지 해 왔던 내 습관적 노력, 루틴들이 다 이런 것이 아니었나 깨달았다. 제대로 계획하지 않고 오후부터 달려들어 어느정도 거리에서 목표를 찍지 못하고 내려오기. 내려올 때는 혼자 스릴러라고 생각하면..
직업에 대한 적성 및 인생에 대한 고민으로 계획한 일주일 동안 최대한 많은 산 등반하기 프로젝트다. 현재 등반 산 목록 아차산 용마산 원래 토요일에 출발하려고 계획했던 아차산 등반. 그러나 게으름 이슈로 인해 하루 연기하고 말았다. 일요일 오전에 출발한 아차산은 더할 나위 없이 좋은 날씨 하에 출발했다. 가면서 편의점에 들러서 생수 한 병 구입. 아차산 정상을 등반한지 40분 만에 찍었는데 하늘과 바깥 쪽 풍경에만 관심이 쏠리는 바람에 정상에 도착한 지 몰랐다. 그리하여 1시간 10분 째 등반하다가 무엇인가 이상함을 느끼고 지도를 찾아다녔는데.. 이미 아차산 정상을 지난 것이 아닌가 하하하핳.. 간 김에 용마산 정상인 용마봉도 구경하고 왔다. 최근에 나는 어떤 개발자가 될 지, 어떤 가치를 추구할 지 모..
Spring Boot에서 Isolation level은 transaction 단위로 작동하는가? 결론 : Yes 참고링크 : https://taetaetae.github.io/2016/10/08/20161008/ package org.springframework.transaction.annotation; Isolation 클래스 (https://lion-king.tistory.com/entry/SpringSpring-Boot-Transactional-isolation-%EC%98%B5%EC%85%98-%EC%A2%85%EB%A5%98-%EB%B0%8F-%EC%84%A4%EB%AA%85 ) annotation으로 설정한 순간 Isolation enum의 TransactionDefinition interfa..
에러 원인 앱이 스키마 업그레이드에 의해 변경된 테이블을 쿼리하는 경우 (즉, 앱이 변경된 테이블에서 업그레이드 전후에 쿼리를 실행 한 경우) postgres 드라이버는 일부 스키마 세부 정보를 캐싱하기 때문에 오류를 반환한다. https://stackoverflow.com/questions/34180932/error-cached-plan-must-not-change-result-type-when-mixing-ddl-with-select-via pg jdbc 에서 preparedStatement를 효율적으로 하기위한 caching 을 저장하는데 아무것도 설정하지 않았을 경우 prepareThresold 가 5개로 유지되고 요청이 많았을 경우 해당 5개에 저장된 preparedStatement의 스키마가 ..
계기 사실 글을 쓰게 된 계기가 아주 부끄럽다. 동료 분과 이야기 '낙관적 락'에 대한 이야기를 하다가 나의 무식을 뽐내었기 때문이다. 근래에 '낙관적 락'이라는 단어에 꽂힌 나는 이런 이야기를 하였다. "낙관적 락을 걸면 팬덤 리드의 문제가 없어질 수 있을까요?" 라는 말을 하였고 이에 대해 동료는 매우 의아하게 대답하였다. 동료 분은 "낙관적 락 자체가 트랜잭션간의 충돌이 잘 일어나지 않는다고 가정하고 버저닝을 거는 것인데 애초에 그런 상황이 거의 없지 않을까요?" 라고 이야기하였다. 나는 그 시점에 회사의 어플리케이션에서 트랜잭션에 락이 걸려있지 않은 부분에서 디버깅을 하다가 트랜잭션 고립 레벨로 인한 이슈 중 팬덤 리드(Phantom Read) 문제가 일어났다고 착오했던 현상이 있었고 잘못 이해하..