작성
·
669
답변 2
10
안녕하세요. gjdbs2597님
추상화 비용이 발생한다는 것은 여러가지 의미가 있습니다. 그 중에 가장 어려운 것은 코드가 복잡해진다는 것입니다. 추상화가 없다면 그냥 코드를 따라가면 되는데, 추상화가 있으면 추상 인터페이스를 보고 어떤 구현체가 실제 동작할지 또 추가로 찾아야 하는 과정을 거쳐야 합니다. 쉽게 이야기해서 코드를 계속 따라가기가 어렵습니다.
이 부분은 성능에 대한 부분이라기 보다는 복잡도에 대한 부분입니다.
추상화를 하면 구현체를 갈아끼울 수 있어서 확장성이 늘어나기 때문에 유지보수하기 더 좋아지는 부분도 있지만, 반대로 추상화가 꼭 필요하지 않은 곳 까지 추상화하게 되면 코드를 유지보수하기 더 어려워 질 수 있습니다.
경험 많은 좋은 개발자라면 이런 부분을 적절히 잘 선택할 수 있어야 합니다.
감사합니다.
0
객체를 갈아끼거나 즉 런타임 치환이 있거나,
배열로 돌려야할 때 여러 객체를 하나로 묶기 위해 인터페이스를 생성하는 것에는 동의하지만
그 외에 인터페이스를 만든다면 코드 볼륨도 증가하고
그로 인해 타인이 코드를 읽을 때 많이 힘들어질 수 있습니다
먼 미래 확장성을 생각해서 인터페이스를 둔다고 하지만
차라리 확장성이 생길 때 인터페이스를 만드는 게 낫다고 생각합니다