본문 바로가기

길게 쓰기/객체지향의 탄생 (공식)

기능 구현 중심 개발의 문제-2

기능 구현 중심 개발의 문제-1에 이어서..


다른 요소의 무시’, 여러 가지를 같이 관리해야 하는데 한가지만 치우치면 다른 요소가 무시당하는 부작용이 발생한다. 예를 들면 우리나라는 70~90년대 경제 발전 중심으로 치우쳐 발전했다. 덕분에 경제는 발전했으나, 민주주의, 복지, 빈부격차, 문화, 인권은 안좋게 퇴보하기도 하는 부작용이 발생했다. ‘낙수효과 용어가 있다. ‘고소득층의 소득 증대가 소비 투자 확대로 이어져 궁극적으로 저소득층의 소득도 증가하게 되는 효과 가르킨다.

 

그래서 고소득층, 대기업을 육성하듯이 경제, 복지, 정치, 문화, 인권 중에 경제를 우선으로 역량을 쏟아부으면 다른 분야도 낙수효과로 저절로 좋아질까. 좋아지는 분야도 있지만, 처음부터 같이 관심을 가져야 하는 분야도 있다. 우리나라 현대사를 보면 경제발전만 신경 쓰고 정치, 인권, 복지를 무시하여 몇가지 사회 문제를 안고 있다. 소프트웨어도 기능 구현만 치우치면 소프트웨어에서 추구해야할 다른 좋은 가치를 무시하게 된다. 이것은 개발자가 기능 구현 외의 관심사를 일부 알면서도 무시하는 상황이다.

 

앞의 이익이 목표를 훼손한다.’, 기능 구현만 쫓게 되면 당장 앞의 목표 달성에만 급급하게 된다. 세상에는 계획과 설계가 따르는 일이 많다. 집을 짓는 것도 설계와 계획이 필요하다. 축구도 포메이션 전술과 선수 배치등의 계획과 설계가 따른다.

 

소프트웨어도 기능 구현을 넘어 유지보수성과 확장성을 고려한 계획과 설계가 있다. 당장 기능 구현만 집착하다보면 소프트웨어의 목표(=유연함, 유지보수성, 확장성, 재사용성 ) 피해를 입는다. 중요한 것은 목표를 놓치는 것에 그치지 않고 나아가 심각한 피해를 끼칠 있다. 기능 구현만 집착하다보면 코드가 중복된다. 사이드 이펙트가 증가한다. 소프트웨어의 유연성에 직접적인 피해를 입힌다.

 

개발자가 기능 구현만 치우치면, 기능 구현에 매몰되어 다른 소프트웨어의 중요한 가치를 보지 못한다. 다른 중요한 가치를 무시한다. 심지어 중요한 가치를 훼손까지 한다.