셋째, 테스트하기 어렵습니다. 기능 테스트는 입력을 넣고 출력을 확인하면 됩니다. 하지만 부하 테스트, 장애 시뮬레이션, 보안 점검은 별도의 환경과 도구가 필요합니다. 귀찮고 시간이 걸리니까 우선순위에서 밀립니다.
AI는 기능 요구사항에 최적화되어 있기 때문에 AI 시대에는 이 문제가 더 심각해집니다. 따라서 비기능 요구사항은 구현 이후 ‘나중에 챙기면 되는 것’이 아니라 설계 단계에서부터 다뤄져야 합니다. 처음부터 정의하고, 검증하고, AI에게도 명시적으로 전달해야 하는 영역입니다.
다르게 표현하면, AI는 미시적입니다. 요청한 작업을 정확하게 수행하는 데 집중합니다. 그렇기 때문에 인간은 거시적인 자세를 가져야 합니다. 전체 시스템 관점에서 ‘이 기능이 어떤 조건에서 동작해야 하는지’, ‘어떤 제약이 있는지’, ‘어떤 상황에서 문제가 될 수 있는지’를 미리 정의해야 합니다. 그리고 프롬프트에 녹여 넣어 명시적으로 요청한 뒤 생성된 결과를 검증해야 합니다. AI가 미시적 구현을 담당한다면, 인간은 거시적 판단을 담당해야 합니다.
그렇다면 개발자는 무엇을 어떻게 검증해야 할까요?