brunch

소프트웨어 재사용을 주목하자 [3]

소프트웨어 모듈러 디자인

by 심야서점

지난 글에서는 소프트웨어 재사용을 활용하는 자주 실패하는 현실 사례를 설명했습니다.

이번 글에서는 반대로 성공 가능성을 높일 수 있는 재사용 절차를 설명하고자 합니다.


지난 글에서 설명한 재사용 절차는 다음과 같았습니다.


생성(정제) → 재사용 → 변경 → 폐기


이상적인 재사용 절차는 다음과 같습니다.


기획→생성→재사용↔갱신→폐기


1. 가장 먼저 재사용을 하기 위해서는 기획 활동을 먼저 수행해야 합니다.


일반적으로는 재사용이라고 하면, 사전에 계획하는 것이 아니라 기 생성된 자산을 다시 한번 활용하는 것이라고 생각합니다. 그렇지만, 이렇게 재사용하여 효과를 얻는 것은 생각보다 쉬운 일이 아닙니다.


이전에 특정 제품이나 프로젝트에 과적합 되어 만들어진 설계/개발 자산을 후속 제품이나 프로젝트에서 사용한다는 것은 다시 만드는 정도의 노력이 필요할 수 있는 상황은 물론, 재사용해도 크게 효과를 얻지 못하는 상황이 발생하기 쉽습니다.


그래서, 재사용할 대상, 적용할 제품들/프로젝트들, 얻고자 하는 효과를 먼저 계획을 수립해야만 합니다. 그런 후에 해당 계획에 맞게 신규 제품이 만들어질 수 있도록 관리가 필요합니다. 관리 이후에는 당연히 계획을 변경해 줘야 합니다.


2. 계획을 세우는 기획 단계를 거쳤다면, 그다음은 재사용할 대상을 특정 제품이나 프로젝트와 독립적으로 개발하는 과정이 필요합니다.


앞서 몇 번 언급한 것처럼 일반적으로 수행하는 재사용 활동으로 만들어진 재사용 대상은 특정 제품에 과적합화 되어서 여러 제품이나 프로젝트에서 활용하기 적합하지 않습니다.


운 좋게 만들었다고 해도 처음 계획했던 것과 같은 효과를 얻는 것은 다른 문제입니다.


3. 재사용 대상을 독립적으로 만드는 생성 활동을 거친 후에는 특정 제품이나 프로젝트에 적용하는 재사용 활동을 거쳐야 합니다.


여기서 중요한 것은 재사용 활동에 필요한 정보를 충분히 제공하는 것과 동시에 원 계획 대로 수행되고 있는지 관리하는 것이 필요합니다.


개발 자유도를 높인다고 기존에 계획을 무시한 채 개발을 진행하면 기획하고 별개로 재사용 대상을 만드는 시간과 리소스를 그대로 쓰레기통에 집어넣는 결과만 얻게 됩니다.


4. 재사용한 후에는 재사용 대상을 지속적으로 갱신하는 활동이 필요합니다.


다수의 프로젝트에 적용하는 과정에서 반영했으면 하는 수정이나 보완사항이 있을 겁니다.

이것들을 무시하게 되면 재사용할 수 없을 정도로 뒤처진 수준이 되거나, 재사용을 억지로 시키게 되면 제품 자체의 경쟁력을 떨어뜨리는 상황이 발생합니다.


5. 그래서, 살아있는 재사용 대상이 되려면 지속적으로 갱신해 주는 노력이 필요합니다.


6. 마지막으로 갱신으로 해결이 안 될 정도로 뒤처진 재사용 대상이 있다면 폐기 절차를 거쳐야 합니다.

한번 재사용 대상을 만들어두고 두고두고 써먹는 것이 아니라, 충분히 활용을 하고 생명력을 잃은 재사용 대상은 폐기를 해야 합니다. 그래야만 가능성도 낮고 효과도 없는 재사용 건에 대한 계획을 세우는 노력을 안 해도 되고, 남아 있는 재사용 건에 집중할 수 있는 상황도 만들 수 있습니다.


지금까지 성공 가능성을 높이는 재사용 절차를 간단히 살펴봤습니다.


여기서는 자세히 언급하지 않았지만, 이를 위해서는 프로세스, 조직에 대한 정비가 필요합니다.


계속 강조하는 것이 재사용에 대한 라이프사이클 관리를 해줘야 하는 데, 이것은 개발 조직의 선의로만 이룰 수 없는 일입니다.

Image by alluvitmedia from Pixabay

keyword
매거진의 이전글소프트웨어 재사용을 주목하자 [2]