Skip to content

전화번호부 관련 sql문 촤적화 #54

@Munhangyeol

Description

@Munhangyeol

리팩토링 하는 이유

전화번호부 관련 sql문 실행시 User를 찾아서, User와 해당 전화번호에 맞는 사용자의 번호를 찾아서 메서드를 실행합니다. 이렇게 User를 찾는 파트가 중복되므로, 이 중복을 join이나 jpql문을 통해서 제거할수 있을 것이라고 판단하였고, 이를 최적화하고자 합니다.

작업 상세 내용

  • saveUserPhoneBooks 최적화
  • updatePhoneBook 최적화
  • deleteContactInPhoneNumber 최적화
  • findPhoneBook 최적화
  • getUserInPhoneBookAndSetOff 최적화
    getUserInPhoneBookAndSetOff는 아래와 같이 phoneBooks를 response로 반환하므로, update를 사용하지 않는다.
public List<ResponseUserDTO> getUserInPhoneBookAndSetOff(String phoneNumberInPhoneBook, Long userId){
       List<PhoneBook> phoneBooks = phoneBookRepository.findByPhoneNumberAndUserId(phoneNumberInPhoneBook, userId)
               .orElseThrow(PhoneBookNotfoundException::new);
       phoneBooks.forEach(phoneBook -> phoneBook.setCurtainCallOnAndOff(false));
       phoneBookRepository.saveAll(phoneBooks);
       return getResponseUserDTOSWithSetOff(phoneBooks);
   }
  • getPhoneBookWithSetAllOff 최적화
    -> 이것도 위와 동일
  • setAllOnPhoneBook 최적화

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions