① 배운 것
여기저기 버그를 찾아서 엄청 고쳤다. 이제는 버그를 틀어막는 느낌이 아니라 근본적인 원인을 찾아서 구조를 해결하는 식으로 고치고있어서 좀 뿌뜻하다.
② 회고 (restropective)
클래스나 함수는 하나의 기능만 담당해야 한다는 원칙이 있습니다. 예를 들어, a와 b 두 가지 로직이 A라는 클래스나 함수를 필요로 한다고 가정해봅시다. 이때 두 로직이 조금씩 다르다면, A에서 a와 b의 상황을 모두 처리하는 대신, 공통된 부분만 A에 넣고, a와 b의 고유한 로직은 외부에서 처리하는 것이 좋습니다.
이렇게 하는 이유는 점차 a와 b의 로직이 복잡해질 가능성이 크기 때문입니다. 만약 A 클래스나 함수에 두 로직을 모두 넣게 되면, 시간이 지나면서 A가 점점 더 복잡해지고 유지보수가 어려워질 수 있습니다. 반면, 공통된 부분만 A에 넣고, 개별적인 로직은 외부에서 관리하면, 코드의 가독성과 유지보수성이 크게 향상됩니다.
예를 들어, A가 뷰(View) 클래스라면, 베이스 클래스를 만들어서 뷰의 공통적인 부분을 관리하고, 로직이 다른 부분은 파라미터로 받아서 처리하는 방법도 좋습니다. 이렇게 하면 확장성도 확보할 수 있습니다.
이를 통해, 코드는 보다 명확하고 유연하게 설계될 수 있으며, 나중에 새로운 로직이 추가될 때도 손쉽게 확장할 수 있습니다. 이러한 원칙을 지키면, 코드의 복잡성을 줄이고, 유지보수성을 높일 수 있습니다.
+이렇게 하지않으면 분명 a의 로직만 고쳤는데 b의 로직에서 버그가 생기는 사이드이펙트, 스파게티 코드가 될 확률이 높다..!
③ 개선을 위한 방법
버그가 왤케많지..! 그래도 지금 많이 잡아주면 QA 기간에 좀 덜 나오지 않을까.. 싶지만 현실은 남들이 내가 발견 못한 버그를 엄청 발견하겠쥐..