목록2025/04 (3)
나의 개발일지
더티체킹을 적용하려고 개념을 되짚어 보다가 다시 정리해보려고 한다 ! 더티체킹이란 ? )JPA에서 영속성 컨텍스트가 관리 중인 엔티티 객체의 변경을 감지하고 자동으로 DB에 반영해주는 기능이다.트랜잭션이 끝나기 전에 엔티티의 값이 바뀌었는지 감지하고, 바뀐 경우에만 UPDATE 쿼리를 자동으로 날린다. 나는 이 기능을 주로 정보 수정 API에 유용하게 사용하고 있었다. 더티체킹이 없다면 회원 정보 중에서 이름을 수정한다고 했을 때@Transcationalpublic void updatedMember() { Member member = memberRepository.findById(1L); member.setName("newName"); memberRepository.save(member);}이렇게 바뀐..
문제 상황회원 정보를 변경하거나 수정하면 더이상 검색 결과에 뜨지 않았다. 기존 구현 : 회원을 이메일과 이름으로 ES를 이용해 검색할 수 있고 이 각각의 도큐먼트는 회원가입 시에 Member 테이블 + Member 인덱스에 저장이 된다. 이후에 회원 정보 수정으로 이름을 변경하면 더이상 검색으로 다른 사용자를 찾을 수 없었고 - problem1회원 탈퇴를 했을 때 (softDelete라 DB에 남아는 있지만)도 여전히 검색으로 조회를 할 수 있었다. - problem2 생각해보니 회원 수정이나 삭제 할 때는 ES에 반영해주는 로직을 구현하지 않았었다 !이럴 경우 RDB와 ES간 정합성이 깨지는 문제가 발생한다.해결 방법 (고민)일단 제일 간단하게는 회원 정보 수정, 삭제 로직에 ES에도 도큐먼트를 ..
도입 배경Petory 프로젝트에서 사용자에게 알림을 보내야 할 경우가 생겼다.어떤 조건을 만족시켰을 때 스켸줄러로 자주 체크하여 알림 정보를 보내주는 방법이 현재 나의 지식으로 구현할 수 있는 당장 떠오른 방법이다.다만 이렇게 하자니 실시간으로 알림을 보내려는 취지에 부합하지 않다고 느껴졌다. 그래서 실시간으로 알림을 보낼 수 있는 다른 방법을 찾아보았다 ! 스프링부트에서 구현할 수 있는 알림 방식1. PolllingHTTP를 이용한 서버-클라이언트 간 데이터 전달 동작과정 일정 주기로 클라이언트가 서버에 데이터를 요청하고 서버가 현재 상태를 응답.(데이터가 없어도 응답함) 장점 구현이 간단하다. 단점 업데이트 주기가 길면 실시간 성이라고 보기 어렵고 짧으면 불필요한 요청을 보내기 때문에 서버에 ..