더북(TheBook)

3.1.2 잠재적인 원인

불충분한 설계 분석

설계 과정에서 주의 깊게 사고하지 않으면 추상화 생성을 간과하고, 원시 타입 값이나 문자열을 사용하여 ‘작업을 끝내기’ 쉽다. 우리의 경험에 따르면, 빠듯한 기한과 자원의 제약 아래에서 소프트웨어를 개발할 때 종종 이런 일이 발생했다.

 

리팩토링 부족

요구 사항이 달라지면서 소프트웨어가 진화하여 초기에 문자열이나 원시 타입으로 표현하던 엔티티를 클래스나 인터페이스로 리팩토링해야 할 수도 있다. 기존 데이터 무리나 인코딩된 문자열을 리팩토링 없이 계속 유지할 때 누락된 추상화 악취로 이어질 수 있다.

 

사소한 성능 이득에 쏟는 엉뚱한 집중

이것은 종종 설계자들이 사소한 성능 이익 때문에 설계 품질을 타협할 때 발생한다. 예를 들어, 배열 색인이 객체에 포함된 멤버에 접근하는 것보다 빠르다고 느껴 적절한 추상화를 생성하는 대신 코드에 직접 배열을 사용하는 개발자들이 있다. 이런 ‘최적화’로 얻는 성능 이익은 아주 미비하며, 그에 따른 설계 품질의 손해도 정당화하지 못한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.