프로그래밍 공부
작성일
2024. 1. 30. 15:58
작성자
WDmil
728x90

6. 재사용성을 높이는 디자인

라이브러리나 이미 존재하는 코드를 이용하는 것은 재사용 전략의 절반일 뿐이다. 나머지 절반은 내가 작성하는 코드를 재사용할 수 있게 만드는 것이다.

 

잘 만들어진 라이브러리와 그렇지 않은 라이브러리에 어떤 차이가 있는지 아마도 경험했을 것이다. 잘 만들어진 라이브러리는 기분 좋은 편리함을 느끼게 해주지만 엉성하게 만들어진 라이브러리는 어떻게든 이용해보려는 노력에도 스트래스만 잔뜩 주다가 결국 내손으로 직접 만들게 된다.

 

다른 프로그래머의 사용을 의도해서 만든 라이브러리든 단순히 클래스 계층을 이루려는 것이든 간에 항상 코드 재사용을 염두에 두고 있어야 한다. 언제 어디서 비슷한 기능을 필요로 할지 모른다.

 

재사용성 있는 디자인은 객체지향 원칙을 기반으로 해서 몇 가지 새로운 전략과 가이드 라인을 통해 만들어진다.


6.1 재사용 철학

코드를 디자인 할 때는 자신을 포함하여 다른 프로그래머도 사용할 수 있게 만들어야 한다.

 

이러한 원칙은 라이브러리나 프레임워크 처럼 애초부터 다른 프로그래머의 이용을 목적으로 만들어진 코드에만 적용되는 것은 아니다. 클래스, 서브시스템, 컴포넌트 그 어떤 것이든 프로그램을 만들기 위해 디자인되는 것이라면 모두 적용된다.

 

항상 ' 한번 만들고 여러번 사용한다.' 는 사고방식을 가져야 한다. 이러한 접근 방식을 추구하는 데는 몇 가지 이유가 있다.

 

  • 코드가 단 하나의 프로그램에서만 이용되는 경우는 매우 드물다.
    다른 곳에서 어떤 형태로든 재사용된다고 확신해도 좋다. 그래서 처음부터 제대로 디자인해야 한다.
  • 재사용성 높은 디자인을 하면 시간과 돈을 절약할 수 있다.
    만약 코드가 재사용되기 어려운 형태로 만들어 졌다면, 나중에 비슷한 기능이 필요할 때 동료 또는 나 자신이 바퀴를 두 번 발명해야 하는 상황이 발생할 수 있다.
  • 작성되는 코드는 항상 팀 내 다른 프로그래머가 이용할 수 있어야 한다.
    어떤 프로젝트를 혼자서 진행하는 경우는 거의 없다. 동료에게 잘 디자인되고 알찬 기능을 가진 라이브러리 를 제공하면 팀 업무에 큰 도움이 될 수 있다. 재사용성을 위한 디자인을 다른말로 하면 '협업성 높은 디자인' 이라고 할 수 있다.
  • 재사용성이 낮으면 중복 코드가 발생하게 되고 유지보수 비용이 높아진다.
    코드를 '복사하여 붙여넣기' 하고 있다면 그 부분을 클래스로 만들거나, 아니면 최소한 편의 함수로 만들어야 한다.
  • 재사용성이 높은  디자인은 나 자신의 업무에 가장 먼저 도움이 된다.
    경험 있는 프로그래머는 작성한 코드를 절대 그냥 버리지 않고 시간이 갈수록 여러 가지 유용한 라이브러리와 도구로 개인 자산을 구축하게 된다. 미래에 어떤 기능을 필요로 하게 될지 지금 당장은 절대 알 수 없다.

법인에 속한 개발자로서 코드를 작성하거나 디자인하게 되면 일반적으로 지적 재산권이 해당 법인에 속하게 된다.

고용 관계가 끝난 후에라도 내가 작성한 코드를 개인적으로 보관하면 법을 위반하는 것이 될 수 있다.

프리랜서로서 고객에 직접 고용된 경우도 마찬가지다.

728x90