더북(TheBook)

5. 유지보수성(maintainability)

시스템을 얼마나 쉽게 수정하고 확장할 수 있는지를 정의하는 요구사항입니다. ‘새로운 기능을 추가할 때 기존 코드를 얼마나 건드려야 하는지’, ‘버그를 수정할 때 영향 범위를 얼마나 빠르게 파악할 수 있는지’가 여기에 해당합니다. 유지보수성은 단기간에는 체감되지 않지만, 시간이 지날수록 개발 속도와 품질에 직접적인 영향을 미칩니다. AI가 만들어 준 코드일수록 이 영역을 의식적으로 점검하지 않으면, 건들기 무서운 코드가 되기 쉽습니다.

이 외에도 가용성(availability), 이식성(portability), 호환성(compatibility) 등 다양한 범주가 있습니다. 중요한 건 이 모든 것이 기능이 동작하는 것은 물론, 시스템이 운영되는 동안 지속적으로 충족해야 하는 요구사항이라는 점입니다. 기능 요구사항이 ‘될 것인가’를 묻는다면, 비기능 요구사항은 ‘언제까지, 어느 수준으로, 어떤 상황에서도 될 것인가’를 묻습니다.