- 트러블 슈팅 + MVC 적용
트러블 슈팅 + MVC 적용
Cage, Card의 동작들이 꼬이는 버그들을 수정하는 과정에서
데이터와 오브젝트 그리고 둘의 상호작용을 하는 코드들이
제대로 분리 되어있지 않고 큰 기능 별로 나누어져 있었는데
결국에는 각자의 기능 클래스들이 서로 호출하면서 결합도가 높아져
버그의 원인을 찾는것이 어려웠고 버그 해결에도 많은 수정 사항이 요구 됬으며
새로운 버그들이 계속해서 생기는 어려움을 겪었습니다.
예를 들면 케이지의 생성 및 관리를 하는 클래스가
Cage, CageCameraController, CageMonsterController, CageCardController , CageController
Cage의 생성 타이밍에 발생하는 문제를 찾기 위해서는 모든 controller를 (Controller + View + Data인 상태)
디버깅 하며 서로 호출하는 부분들을 확인하고 코드를 수정해야 했습니다.
그리고 코드를 수정하게 되면 다시 해당 controller에서 관리하는 기능의 변경사항이 추가되고 새로운 버그가
발생했습니다.
이런 부분들을 MVC 패턴을 적용하며 리팩토링을 하였고 Cage, CageView , CageController로 MVC로 나눈 결과
문제가 생긴 부분을 좀 더 쉽게 찾고 간단하게 수정할 수 있었습니다.
코드도 간결해지면서 500 -> 350줄로 코드의 양도 줄어들었으며 유지보수도 MVC중 문제가 생긴 부분을 찾아서
책임이 있는 클래스만을 수정해 버그를 고칠 수 있게 되었습니다.