-
Refactoring WeekWIL 2022. 9. 26. 11:13
2022.09.25 WIL
rhythme의 전반적인 코드를 Refactoring하면서 든 생각을 적리하려 한다. 우선 이번 주의 Refactoring은 두 가지 컨셉을 잡아 집중적으로 진행했다.
1. Vaildation 기능을 하는 함수 모아두기.
각자 코딩을 하면서 각자의 매서드 속 데이터를 vaildation 하는 과정에서 중복되는 매서드들이 발생했다.@Transactional public Member validateMemberToAccess(HttpServletRequest request) { if (!tokenProvider.validateToken(request.getHeader("Authorization").substring(7))) { return null; } return tokenProvider.getMemberFromAuthentication(); }위 해당 함수는 프론트에서 보내주는 Access 토큰을 받아서 토큰 속 유저의 정보와 DB상의 정보가 일치하는 지를 판별하는 매서드이다. 이 함수는 팀원 각자의 코드 스타일을 반영한 다양한 방식으로 사용되고 있었다. 이러한 함수의 중복이 비경제적이라고 생각하였으며, 같은 역할을 하는 매서드를 Vaildation 클래스에 담아서 통일했다.
2. Null 없애기
코드 곳곳에서 발생할 수 있는 NullPointException을 방지하기 위해 불필요한 부분에서 Null을 리턴시키는 로직을 수정했다. 특히 Optional을 활용하는 과정에서 생각보다 많은 양의 Null이 리턴되는 것을 확인하여 Exception은 던지는 등의 로직 수정을 거쳤다. Exception을 커스텀하여 활용할 수 있는 방법이 있다고 하는데, 그 부분은 따로 찾아봐야겠다.
3. Refactoring을 하며
Refactoring중 든 생각은 , 생각보다 자주 접하는 오류들이 많다는 것이다. 특히 NullPointException을 많이 접했다. 평소에 불필요한 null을 생성하지 않았더라면, Exception을 던져 어느 부분의 null값이 말썽인 지 알았더라면 이것보다는 덜 접했을 것 같다. 또한 테이블 매핑에서도 외래키 참조 에러가 많이 발생했다. 이 부분도 테이블 구성을 신중히 했다면 어땠을까 하는 아쉬움이 남는다. 이번 리펙토링을 통해 '좋은 개발자의 습관을 유지하자' 라는 새로운 목표가 생긴 것 같다.'WIL' 카테고리의 다른 글
항해99를 선택한 이유 (0) 2022.10.17 리드미 최종 프로젝트 (0) 2022.10.10 RhyThMe_Week (0) 2022.09.05 클론코딩 (0) 2022.08.28 WHACHAO (0) 2022.08.28