소프트웨어 카테고리를 활용한 생성형 소프트웨어 개발

본 논문은 모델 기반 개발에서 코드 생성기를 설계할 때, 소프트웨어 카테고리를 이용해 손으로 작성해야 할 코드와 자동으로 생성될 코드를 반자동으로 구분하는 방법을 제안한다. 기존에 수작업으로 수행하던 구분 작업을 의존 관계 분석을 통해 반복적으로 카테고리를 확장함으로써 후보 코드를 도출한다.

소프트웨어 카테고리를 활용한 생성형 소프트웨어 개발

초록

본 논문은 모델 기반 개발에서 코드 생성기를 설계할 때, 소프트웨어 카테고리를 이용해 손으로 작성해야 할 코드와 자동으로 생성될 코드를 반자동으로 구분하는 방법을 제안한다. 기존에 수작업으로 수행하던 구분 작업을 의존 관계 분석을 통해 반복적으로 카테고리를 확장함으로써 후보 코드를 도출한다.

상세 요약

이 연구는 모델‑구동 개발(MDD) 환경에서 코드 생성기의 초기 구현을 “레퍼런스 구현” 형태로 만든 뒤, 이를 손코드와 자동생성 코드로 나누는 전통적인 방식을 비효율적이라고 지적한다. 손코드와 자동생성 코드를 명확히 구분하지 않으면 유지보수 비용이 급증하고, 불필요한 코드가 생성돼 시스템 복잡도가 증가한다. 저자는 이러한 문제를 해결하기 위해 소프트웨어 카테고리라는 개념을 도입한다. 카테고리는 “비즈니스 로직”, “기술 인프라”, “공통 유틸리티” 등 의미론적 경계를 정의하고, 각 카테고리 간 의존성 규칙을 명시한다(예: 비즈니스 로직은 기술 카테고리를 직접 호출할 수 없고, 인터페이스를 통해서만 접근한다). 논문은 먼저 개발자가 몇 개의 핵심 클래스·패키지를 사전에 카테고리화하고, 이후 미분류된 코드에 대해 의존 그래프를 분석한다. 의존 관계가 이미 카테고리화된 요소만을 참조한다면 해당 코드는 동일 카테고리로 자동 할당한다는 규칙을 반복 적용한다. 이 과정은 “카테고리 전파”라 부르며, 의존성 순환을 방지하기 위해 DAG(Directed Acyclic Graph) 형태의 의존 구조를 전제로 한다. 결과적으로 특정 카테고리(예: “생성 후보”)에 속하는 코드 집합이 자동으로 추출된다. 이러한 자동화는 두 가지 실질적 이점을 제공한다. 첫째, 개발자는 수작업으로 코드를 스캔하고 라벨링하는 부담을 크게 줄일 수 있다. 둘째, 카테고리 기반 의존성 검증을 통해 설계 규칙 위반을 조기에 발견함으로써 코드 품질을 향상시킨다. 논문은 또한 이 접근법이 기존 정적 분석 도구와 결합될 경우, 카테고리 정의 자체를 메타모델 형태로 선언하고, IDE 플러그인 수준에서 실시간 피드백을 제공할 수 있음을 시사한다. 한계점으로는 초기 카테고리 정의의 정확성에 크게 의존한다는 점과, 복잡한 다중 상속·다형성 구조에서는 의존성 해석이 어려워 추가적인 휴먼 인풋이 필요할 수 있다는 점을 언급한다. 전반적으로 이 연구는 소프트웨어 카테고리를 활용한 반자동 코드 구분 메커니즘을 제시함으로써, 생성형 소프트웨어 개발 프로세스의 효율성과 체계성을 크게 향상시킬 가능성을 보여준다.


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...