Hello, Developer 라는 프로젝트는 정보를 공유할 수 있는 개발자 커뮤니티 사이트이다.
코드스테이츠에서 한달 동안 진행한 프로젝트이다.
목적 : 부족한 점이 많아 리팩토링을 하며 개선해보려고 한다.
위 메서드는 사용자가 추천을 눌렀을 경우 DB에 저장하는 메서드이다.
그리고 사용자의 ID와 게시글의 ID를 받아서 사용자가 해당 게시글에 추천을 누른 적이 있는지를 찾는 코드이다.
JPQL 문을 사용하면 더 편리하게 사용 할 수 있는데 왜 굳이 stream으로 사용했냐면 내가 JPQL의 존재를 알지 못 했기 때문이다. 그 당시에 JPA에 대해 잘 알지 못하면서 JPA를 사용했기 때문에 이런 상황이 발생하였다.
repository에서 직접적으로 DB에 해당 값이 있는지를 찾는 쿼리문을 작성해주었다.
변경 후 코드 길이도 감소하였고,
게시글을 수정하는 부분의 코드이다.
입력으로 들어오는 petch 변수에 값이 있다면 find.setTitle 로 수정해주는 코드이다.
하지만 이게 수정인지 새로 지정을 해주는 건지 구분이 되지 않아 update 라는 메서드를 만들어 변경해주었다.
이제 이 코드가 어떨 경우에 사용하는지 한눈에 알아보기 쉬워졌다.
그리고 현재 람다식을 사용해서 직접 update메서드에 매개변수를 넣어주고 있는데 메서드 레퍼런스를 사용해서 이 부분을 수정해보겠다.
메서드 래퍼런스란?
람다표현식을 더 간단하게 표현한 것
아까 람다식을 사용한 것보다 메서드 래퍼런스를 이용하여 코드를 작성한 것이 읽기가 쉬워진 것을 알 수 있다.
위 사진처럼 사용하지 않는 메서드가 있는 것을 발견하였다.
해당 코드는 소수점을 계산하고 내림차순으로 정렬 한 뒤 리턴해주는 메서드인데 당시 잘 구현했다고 생각하여 담번에 참고 하고자 지우지않고 두었다.
하지만 읽는 사람 입장에서 가독성이 불편해질 수 있고, 쓰지 않는 메서드를 놔두는 것은 좋지않다고 생각한다.
해당 코드를 제거하고 코드길이가 12줄 줄었다.
그 외에도 controller에 있는 필요없는 로직을 제거하여 코드길이를 28줄 줄였다.