대형 Util 클래스 분리하기: 유지보수성을 높이는 리팩토링
큰덩어리를 쪼개다 XXXXUtils.java -> emailUtils.java, chatUtils.java, xxxxUtils,java!
코드를 개발하다보면 아 이 method 는 어디 들어가지 고민하다가 xxxxUtils.java(실제 이름이 xxxx는 아니다) 에 넣는 일이 많아졌다. 실제로 해당 util 이 view 쪽 까지 내려가서 동작하는 경우도 있었기에 손쉽게 쓰고 다룰수가 있어서다.
하지만 그러다 보니 해당 파일의 크기가 너무… 너무 컸다. 이렇게 되면 결합도가 높아진다. 큰 꼭지로 나눌 수 있는 기능들이 한 파일에 있으면 결합도가 높아지니 이것을 나누기로 결정하였다.
어떻게 나눌까
열심히 살펴보니 크게 정말 misc 한 기능등, Chatting 에 관한 기능들, email 에 관한 기능들로 나누어 볼 수 있었다. 사실 misc 한 기능들도 더 나눌 수 있을거 같았지만 오늘은 3가지로 나누는것에 초점을 맞추기로 했다. 또 그래야 side Effect 가 생겨도 잡을 수 있을 것 같았다!
나누고 난뒤
나누는데에 걸린 시간은 자그마치 3시간이었다. 나누고 의존성 주입 해결하고 마지막으로 TestCase 정비까지 오랜시간이 걸렸다… 하지만! 나누고 나니 chatting controller 는 chatUtils 에서만 여러가지 함수를 사용 하였고 또 이메일 보내는 역할은 오로지 emailUtils 에서만 있어서 다음에 코드를 추가하기에 매우 유용할것이라 판단했다!
This post is licensed under CC BY 4.0 by the author.