본문 바로가기

프로젝트44

[1] Spring Batch writer에서 merge발생?? 협업프로젝트 기간인데 아직 시간이 있어 개인프로젝트 리팩토링??중에 batch 쿼리에서 신기한 것을 발견했다. 대충 코드를 보이자면 @Bean @StepScope public Step reserveStep(){ return new StepBuilder("reserveStep",jobRepository) .chunk(chunkSize,platformManager) .reader(reserveReader()) .processor(reserveProcessor()) .writer(reserveWriter()) .build(); } @Bean public JpaPagingItemReader reserveReader(){ Map parameter=new HashMap(); parameter.put("created.. 2023. 12. 27.
[개인프로젝트] LazyInitializationException 영속성 컨텍스트 와 프록시 오늘만 에러 3개쓰는 중...하하하하하하 나 시험공부해야하는데 왜 에러나느지 해결안되면 아무것도 못하는 사람인지라...ㅎㅎ 문제상황 엔티티를 수정하면서 lazy loading해도 되겠다고 생각한 것들을 수정하고 있었다. 하면서 원래 작성했던 테스트를 돌려봤는데.. 어랏...?? 안되..??어랏...?? org.hibernate.LazyInitializationException: could not initialize proxy [com.project.user.User#1] - no Session 예?? 없다구요??왜요..?? 원인 나는 이 부분을 분명 공부했었다.. 그저 나의 기억력이 안좋을 뿐.. 문제는 영속성컨텍스트의 생명주기와 프록시에 대한 이해다. WalkerReserveServiceInfo ser.. 2023. 12. 17.
[개인프로젝트] CascadeType 미설정 오류 나는야 바보...하하하하하 앞서 블로그내용에서 WalkerReserveServiceInfo, PayHistory 를 연관관계를 변경하면서 지금까지 작성했던 모든 테스트를 돌려봤는데 여디선가 뭔가 에러가... 그 에러는 사실 너무 간단한거라서.. 패스.. 대충 얘기하자면 PayHistory부터 저장하고 WalkerReserveServiceInfo에 저장했어야했는데 전의 코드가 반영되어있던 터라 WalkerReserveServiceInfo의 PayHistory필드에 null이 들어간 오류였다.. 이건 너무 심플해서 패스.. 문제상황 일단 나는 예약요청이 들어왔는데 10분안에 예약수행자가 수락/거절 을 하지않으면 자동으로 거절되는 기능을 구현했다. 스프링 배치를 이용해서 그래서 WalkerReserveServ.. 2023. 12. 17.
[개인프로젝트] JPA OneToOne N+1 문제 쿼리 리팩토링하다가 정산 배치관련해서 쿼리 보다가 이게 뭐지..?하는 쿼리들이 많았다. 나는 분명 fetch join했는데 N+1문제가 터졌다..이게 무슨일이지..?? 초반에는 그냥 넘겼다. 일단 프로젝트 완료기간이 5일남았기에 남은 기능을 완료시키기 위해 ... 근데 이제는 시간이 어느정도 있어 한번 쿼리좀 보자 이 느낌으로 고치고 있는데 ...역시 N+1이 문제가 있었구만 문제상황 정산하기 위해서 예약 table과 pay table을 fetch join하는 query를 날렸다. return new JpaPagingItemReaderBuilder() .name("adjustReader") .entityManagerFactory(entityManagerFactory) .pageSize(chunkSize).. 2023. 12. 17.
[개인프로젝트] Redis 역직렬화 문제 사람은 또 실수를 반복하지 아무 생각없이 직렬화관련해서 복붙했다가 테스트하니 바로 에러나는거 보소... 하하하하 역시 공부한다음에 복붙을 하든 해야해...아무것도 모르고 사용하니까 당연히 에러 나오지... https://haebing.tistory.com/104 이전에 Redis 직렬화에 대해서 적어둔것이다. 문제상황 일단 나의 RedisConfig는 @Configuration public class RedisConfig { @Value("${spring.data.redis.host}") private String redisHost; @Value("${spring.data.redis.port}") private int redisPort; private static final String REDISSON_.. 2023. 12. 16.
Elastic Search 프로젝트에 적용하기 하하 안녕하슈 오랜만에 블로그를 쓰네요... 요즘 개인프로젝트 하느라 바빠서 써야할 블로그들이 산더미인데 빠르게 완료해야하는 프로젝트라 미루고미루다가 아주 조금 널널해져서 적어보아유. 현재 개인프로젝트에서 예약서비스를 구현하고 있다. 그래서 현재위치, 이름 기준으로 검색을 해야하는 기능이 필요하다. 이 기능을 구현하기 위해 elastic search를 이용했다. 사실 적용하는 방법은 구글에 치면 너무 많다. 궁금한건 왜 elastic search를 이용하나..? 가 궁금하다. 알아보기전에 색인과 역색인에 대해서 알아보자 색인과 역색인 색인 키워드를 찾아보기 쉽도록 정렬/나열한 목록을 말한다 예를 들어 책을 보면 목차가 보일것이다. 그것이 바로 색인이다. 역색인 키워드를 통해 문서를 찾아내는 방식이다. 예.. 2023. 12. 16.
728x90