본문 바로가기

프로젝트/개인 프로젝트(2023.11.13-2023.12.18)18

[개인프로젝트] 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.
[개인프로젝트] 동시성 해결을 위한 AOP 분산락과 트랜젝션?? 아 비상이다 비상... 에러가 이틀째 찾고 있다. 사실 해결방법은 찾았는데 왜 그런지 모르겠어서 이틀째 찾고 있는데 자료가 별로 없다.. 그래서 지금 다 로그 찍어서 보는 중.. 그랬더니 아주 난리다 난리 분산락 관련해서는 프로젝트 적용을 위해 블로그에 이미 기록을 했다 https://haebing.tistory.com/99 문제상황 나는 동시성 문제를 분산락 Redisson을 이용해서 해결하려고 하고 있다. 그래서 분산락 관련된 AOP클래스를 만들고 joinPoint.proceed()는 따로 트랜젝션으로 시작하게 하기 위해 propagation = Propagation.REQUIRES_NEW 로 따로 클래스를 분리해두고 부모 커밋해야 다른 스레드가 이용할 수 있게 해놨다. 그니까 순서대로 얘기하자면 a.. 2023. 12. 2.
[개인프로젝트] @FeignClient 파라미터 오류 로그인 구현을 구글과 로그인으로 하는 중 각각 로그인 api에 요청을 보내고 응답을 받기 위해 @FeignClient를 이용중이었다. 구글의 경우 로그인 연동 결과로 code까지 잘 받고 접근 토큰 발급 요청하여 accessToken까지 잘 받아서 고객의 이메일과 이름을 잘받았다. 문제상황 네이버의 경우 문제가 생겼다 네이버의 로그인 연동 결과로 code값을 받았지만 접근 토큰 발급 요청에서 Response객체의 필드가 다 null인 상황이 발생한거다.. 문제의 상황을 자세히 들여다보자 public class NaverOauth implements Oauth { @Override public String getLoginView() { String reqUrl=NAVER_API_URL+"response_t.. 2023. 11. 22.
728x90