피노키오 리팩토링을 하며... 가장 큰 문제점을 찾았다...
코드가 통일되지 않고 구현되어 있다는 것!!
가독성이 떨어지다보니,
리팩토링을 진행하는 과정에서 코드를 읽고 분석하는 데만 상당한 시간이 소요되었다.
▶️ id에 대해서
ReportService.java에서는 모두 대문자로 명명되었으나
ReportRepository.java에서는 앞글자만 대문자로 명명되었다.
▶️ Jwt는 앞글자만 대문자로 명명되어 있으나, FCM은 모두 대문자로 명명되어 있다.
▶️ userRepository는 왜 "=" 와 붙어 있는 것이며...
▶️ 람다식을 사용할 때에도, "->"와 딱 붙어있는 모습을 볼 수 있고...
addDoubt라는 메소드는
(1) userId를 불러오고
(2) 목소리를 저장하고
(3) 의심내역을 저장하는 세가지 일을 하고 있다.
이렇게 주석이라도 있다면 다행지만, 기존 프로젝트에서는 주석이 없는 경우가 대부분이다.
ReportService.java의 addReport()
DoubtService.java의 sendSms()
SmsService.java의 getReportCount()
SosService.java의 sosList()
▶️ header를 통하여 전달된 JWT 토큰에서 id를 추출하고, user Entity를 가져오는 기능은 거의 대부분의 메소드에서 필요한다. 이 부분을 사용하는 메소드는 모두 따로 구현하여 동작되고 있다...
사실 기존 프로젝트를 진행하면서 Code Convention이 없었던 것은 아니다.
위 사진은 지난 프로젝트를 관리했던 Notion이다.
분명 규칙탭에 Code Convention이 존재한다. 사실 저 부분 내가 만들었다ㅋㅋㅋ
규칙이 존재하고, 프로젝트를 진행하며 Code Convention대로 나름 신경썼다고 생각하였다.
그러나 결과적으로 중구난방 대잔치를 하고 있던 것!
"현재는 백엔드 개발자가 3명이라서 이 정도이지 않았을까?" 라는 생각이 들고
"규모가 더 큰 프로젝트를 진행하면, 코드 규칙을 어떻게 다 관리할 수 있을까?" 라는 걱정도 들기 시작한다.
즉, Code Convention에 대한 개발자의 이해와 활용이 가장 중요하겠만, Code Convention을 위한 별도의 장치가 분명히 필요하다!
https://google.github.io/styleguide/javaguide.html
구글 자바 스티일 가이드
https://github.com/google/styleguide
구글 자바 스타일 적용을 위한 xml 파일 (intellij-java-google-style.xml 다운로드)
https://newwisdom.tistory.com/96
구글 자바 스티일 가이드를 번역해둔 블로그 글이다.
참고해서 익히고 활용해보자!