[Refactoring] Hello, Developer! - 1

rse·2023년 12월 2일
0

Hello, Developer 라는 프로젝트는 정보를 공유할 수 있는 개발자 커뮤니티 사이트이다.
코드스테이츠에서 한달 동안 진행한 프로젝트이다.

목적 : 부족한 점이 많아 리팩토링을 하며 개선해보려고 한다.

리팩토링

문제점 : 효율이 나쁘다.

위 메서드는 사용자가 추천을 눌렀을 경우 DB에 저장하는 메서드이다.

그리고 사용자의 ID와 게시글의 ID를 받아서 사용자가 해당 게시글에 추천을 누른 적이 있는지를 찾는 코드이다.

JPQL 문을 사용하면 더 편리하게 사용 할 수 있는데 왜 굳이 stream으로 사용했냐면 내가 JPQL의 존재를 알지 못 했기 때문이다. 그 당시에 JPA에 대해 잘 알지 못하면서 JPA를 사용했기 때문에 이런 상황이 발생하였다.

개선

repository에서 직접적으로 DB에 해당 값이 있는지를 찾는 쿼리문을 작성해주었다.

변경 후 코드 길이도 감소하였고,

문제점 : 알 수 없는 set 사용

게시글을 수정하는 부분의 코드이다.
입력으로 들어오는 petch 변수에 값이 있다면 find.setTitle 로 수정해주는 코드이다.

개선

하지만 이게 수정인지 새로 지정을 해주는 건지 구분이 되지 않아 update 라는 메서드를 만들어 변경해주었다.

이제 이 코드가 어떨 경우에 사용하는지 한눈에 알아보기 쉬워졌다.

그리고 현재 람다식을 사용해서 직접 update메서드에 매개변수를 넣어주고 있는데 메서드 레퍼런스를 사용해서 이 부분을 수정해보겠다.

메서드 래퍼런스란?
람다표현식을 더 간단하게 표현한 것

아까 람다식을 사용한 것보다 메서드 래퍼런스를 이용하여 코드를 작성한 것이 읽기가 쉬워진 것을 알 수 있다.

문제점 : 사용하지 않는 코드

위 사진처럼 사용하지 않는 메서드가 있는 것을 발견하였다.

해당 코드는 소수점을 계산하고 내림차순으로 정렬 한 뒤 리턴해주는 메서드인데 당시 잘 구현했다고 생각하여 담번에 참고 하고자 지우지않고 두었다.

하지만 읽는 사람 입장에서 가독성이 불편해질 수 있고, 쓰지 않는 메서드를 놔두는 것은 좋지않다고 생각한다.

개선

해당 코드를 제거하고 코드길이가 12줄 줄었다.

그 외에도 controller에 있는 필요없는 로직을 제거하여 코드길이를 28줄 줄였다.

profile
기록을 합시다

0개의 댓글