6건의 항목
의존성과 결합도에 대한 정확한 의미를 이해해본다. 의존성(Dependency) A 모듈이 동작하려면 B 모듈이 필요한 경우 OO에서 모듈 == 클래스 클래스 A가 클래스 B에 의존 의존성이 있으면 잘못된 OO 설계다? (code smell) 잘못된 말이다.
이전글들은 사실 이 원칙을 위해 달려온 것이 아닌가하는 생각이 든다. OOP의 정수로 불리우는 SOLID원칙에 대해서 깊게 알아보고, 실제 iOS Framework의 설계 방향에 대입하면서 보다 찐한 이해를 경험해보자.
SOLID 설계 정신에 대해 알아보자. SOLID 정신으로 이룰 수 있는 것 소프트웨어 설계를 “유연하게” 할 수 있다. 유연한 소프트웨어 설계, 즉 추상적인 설계로 커플링을 제거할 수 있다.
간단한 구조 일단 RIB의 구조는 위와 같다.
아무 생각없이 코딩하다가(…) 의존성 주입을 그냥 property 주입으로 하고 있었다. 당연히 Storyboard면 안되지 않았었나? 하는 무지성 코드질을 하다 지적받고 떠올랐다.
다양한 의존성 주입 방법을 고려하고, 최종적으로 ViewController에 생성자 주입 방식을 통해 컴파일 타임에 주입 여부를 판단할 수 있도록 변경하였습니다. 초기에 작성한 의존성 주입이라고 착각한 코드입니다.