IAR, “AI가 코드를 빠르게 만들 수 있어도 임베디드 개발의 최종 품질은 ‘인간’이 좌우”

Google 우선 소스기사입력2026.07.21 14:32
규칙 준수·기능 안전·추적성 확보는 AI만으로 해결되지 않아
AI 코드 기반 정적 분석·동적 분석·CI/CD 자동화 검증 해야

■ 속도가 아니라, 검증 가능한 증거(Evidence)가 경쟁력이다.

생성형 AI의 발전은 소프트웨어 개발 방식을 빠르게 변화시키고 있다. 이제 개발자는 AI 코딩 어시스턴트를 활용하여 몇 시간이 걸리던 코드 작성 작업을 수십 초 만에 끝낼 수 있다. 함수 구현, 알고리즘 작성, 테스트 코드 생성까지 AI가 지원하면서 개인 개발자의 생산성은 과거와 비교할 수 없을 정도로 향상되고 있다.

그러나 자동차, 의료기기, 산업 자동화와 같은 기능안전(Function Safety)이 요구되는 임베디드 소프트웨어 개발에서는 이야기가 조금 다르다.

ISO 26262, IEC 61508, IEC 62304와 같은 국제 안전 표준을 만족해야 하는 프로젝트에서 가장 큰 제약은 코드 작성 속도가 아니다. 진정한 병목은 ‘증거(Evidence)’를 만드는 과정이다.

단순히 프로그램이 정상적으로 동작한다는 사실만으로는 충분하지 않다. 해당 코드가 정의된 개발 프로세스를 준수하여 작성되었는지, 관련 코딩 규칙을 만족하는지, 요구사항부터 테스트 결과까지 완전한 추적성(Traceability)을 확보하고 있는지에 대한 객관적인 증거가 필요하다.

AI는 코드 작성 속도를 높여주지만 이러한 증거를 자동으로 만들어주지는 않는다.

■ AI는 코드를 생성하지만, 규정 준수까지 생성하지는 않는다

최근의 AI 코딩 도구는 매우 뛰어난 성능을 보여준다. 간단한 함수 구현은 물론이고 알고리즘 제안, 테스트 코드 생성, 코드 리팩토링까지 상당한 수준의 결과물을 제공한다. 예를 들어 RPM 계산 함수를 C 언어로 작성해 달라고 요청하면 문법적으로 올바르고 논리적으로도 적절한 코드를 생성한다.

하지만 여기에는 중요한 문제가 있다. AI가 생성한 코드는 기능적으로는 정상일 수 있지만 규격(Compliance)을 만족한다는 보장은 없다.

대표적인 사례가 MISRA C 규칙이다. 겉으로 보기에는 아무 문제가 없어 보이는 코드라도 MISRA C:2012 Rule 10.3에서는 암시적 형 변환(Implicit Type Conversion)을 위반한 것으로 판단할 수 있다. 이러한 문제는 정적 분석 과정에서 결함으로 보고되며, 수정이 완료되어야만 요구사항과 연결된 검증 가능한 코드로 인정받는다.

이러한 문제는 특정 규칙 하나에만 국한되지 않는다. 기능안전 임베디드 개발에서는 다음과 같은 다양한 국제 표준이 동시에 적용된다.

· MISRA C / MISRA C++
자동차, 의료, 산업용 임베디드 시스템에서 가장 널리 사용되는 안전 코딩 규칙이다. C/C++ 언어 사용 범위를 제한하여 Undefined Behavior 발생 가능성을 최소화한다. AI가 생성하는 코드 역시 반드시 MISRA 규칙을 통과해야 실제 프로젝트에 적용될 수 있다.

· CERT C / CERT C++
보안(Security) 관점에서 취약한 코딩 패턴을 방지하기 위한 표준이다. MISRA가 안전(Safety)에 초점을 맞춘다면 CERT는 보안을 목표로 한다. 최근에는 커넥티드 임베디드 시스템이 증가하면서 두 영역의 중요성이 함께 커지고 있다.

· CWE(Common Weakness Enumeration)
반복적으로 발생하는 소프트웨어 취약점을 체계적으로 분류한 데이터베이스이다. AI는 학습 과정에서 안전한 코드뿐 아니라 취약한 코드도 함께 학습하기 때문에 알려진 취약점 패턴을 그대로 생성할 가능성이 존재한다. CWE는 이러한 문제를 체계적으로 식별하는 기준이 된다.


중요한 점은 이러한 규칙을 AI 모델이 스스로 검사하지 않는다는 사실이다. 규격 준수 여부는 결국 개발자가 적절한 개발 도구를 활용하여 검증해야 하는 영역이다.

■ AI 시대에도 사라지지 않는 검증 병목

기능안전 프로젝트에서는 이미 검증과 확인(Verification & Validation)에 전체 연구개발 비용의 40% 이상이 사용되는 경우가 흔하다. 이는 비효율 때문이 아니다. 안전 인증 기관이 요구하는 방대한 증거 체계를 구축하기 위해 반드시 필요한 과정이다.

AI가 코드 작성 속도를 두 배, 세 배 높인다고 가정해 보자. 검증 절차가 그대로라면 어떤 일이 발생할까? 더 많은 코드가 리뷰 대상이 되고, 더 많은 정적 분석 결과를 확인해야 하며, 더 많은 테스트를 수행해야 한다. 결국 병목은 더욱 커진다.

AI는 개발 프로세스의 앞부분(Code Authoring)을 빠르게 만들었지만 실제 병목은 개발 후반부에 존재한다.

즉,
· 정적 분석
· 동적 분석
· 코드 커버리지 측정
· 요구사항 추적성 확보
· 기능안전 승인(Sign-off)


이러한 과정이 프로젝트 전체 일정을 결정한다.

따라서 코드 생성 속도만 높이는 것은 기능안전 프로젝트 전체 생산성을 높이는 것과는 다르다.

■ 품질은 개발 마지막이 아니라 개발 과정에서 만들어진다

이러한 문제를 해결하기 위해서는 정적 분석, 동적 분석, 코드 커버리지를 프로젝트 마지막 단계에서 수행하는 것이 아니라 개발 과정에 지속적으로 포함해야 한다. 즉, AI 코드 생성과 품질 검증이 하나의 개발 루프 안에서 이루어져야 한다.

■ 정적 분석을 개발 과정에 통합하다

IAR의 C-STAT은 코드가 작성되는 즉시 MISRA C, MISRA C++, CERT C, CWE 규칙을 검사한다. 개발자가 AI가 생성한 코드를 프로젝트에 추가하면 리뷰 이전 단계에서 규칙 위반 여부를 자동으로 확인할 수 있다. AI가 코드를 제안하고, 개발자가 이를 검토하며, C-STAT이 규격 준수를 검증하는 구조이다. 이러한 방식은 코드 리뷰 단계에서 발견되는 문제를 크게 줄여준다.
 

▲[그림1] 정적분석 C-STAT 결과


■ 디버깅 과정에서 수행되는 동적 분석

정적 분석만으로는 모든 문제를 찾을 수는 없다. 실행 과정에서만 발생하는 메모리 오류, 배열 범위 초과, 정수 오버플로우, 스위치(Switch) 문 처리 오류 등은 실제 실행 환경에서 확인해야 한다.

IAR의 C-RUN은 디버깅 과정에서 이러한 런타임 오류를 실시간으로 검출한다. AI가 생성한 코드가 구조적으로는 올바르더라도 실제 동작 과정에서 예상하지 못한 문제가 발생할 수 있기 때문에 런타임 검증은 AI 시대에 더욱 중요해지고 있다.
 

▲[그림2] 동적분석 C-RUN 결과


■ AI 시대, 개발자의 역할은 더욱 중요해진다

AI의 발전은 개발자를 대체하는 것이 아니다. 오히려 개발자의 역할을 변화시키고 있다.

과거에는 모든 코드를 직접 작성하는 것이 핵심이었다면 이제는 AI가 제안한 코드가 안전한지, 시스템 아키텍처와 일치하는지, 요구사항을 충족하는지를 판단하는 역할이 더욱 중요해졌다. 즉, 개발자는 코드 작성자(Code Author)에서 품질 관리자(Quality Curator)로 역할이 확장되고 있다.

AI는 코드를 제안할 수 있지만, 안전 목표를 만족하는지, 테스트가 충분한지, 시스템 전체 설계와 일치하는지는 여전히 개발자의 판단이 필요하다. 이러한 판단이 있어야만 생성된 코드가 인증 가능한 코드(Attested Code)로 인정받을 수 있다.

■ CI/CD가 증거를 자동으로 축적한다

개발자 PC에서 수행하는 품질 검사는 시작에 불과하다. 팀 단위 개발에서는 모든 Commit이 동일한 품질 기준을 만족하는지 자동으로 확인해야 한다. 과거에 일주일씩 걸리던 코드 작업을 AI가 하루만에 생성하는 요즘과 같은 시대에는 사람이 매번 품질 검사를 수행하는 방식으로는 대응할 수 없다. CI/CD 파이프라인에서 자동으로 검증이 수행되어야 한다.

IAR Build Tools는 IAR Embedded Workbench와 동일한 컴파일러와 링커를 Jenkins, GitHub Actions, Azure DevOps 등 CI 환경에서 사용할 수 있도록 제공한다. 이를 통해 개발 환경과 CI 환경이 완전히 동일한 빌드 결과를 생성하며, ISO 26262와 IEC 62304가 요구하는 재현 가능한 빌드 환경을 확보할 수 있다.

또한 C-STAT 역시 CI 환경에서 자동 실행되어 모든 Commit에 대해 MISRA, CERT, CWE 규칙을 지속적으로 검사한다. 품질 증거는 프로젝트 마지막에 한 번에 준비하는 것이 아니라 개발 과정 전체에서 자연스럽게 축적된다.

■ AI 시대의 경쟁력은 플랫폼이 결정한다

정적 분석, 동적 분석, 코드 커버리지, CI/CD 자동화는 각각도 중요하지만 하나의 플랫폼 안에서 통합될 때 가장 큰 가치를 제공한다. IAR 플랫폼은 이러한 기능을 하나의 개발 환경으로 통합하여 제공한다.

ISO 26262(TÜV SÜD 인증), IEC 61508, IEC 62304 등 주요 기능안전 표준에 대한 Tool Qualification을 지원하며, C-STAT과 C-RUN 역시 동일한 개발 환경 안에서 동작한다. 즉, 빌드부터 분석, 검증, 인증까지 하나의 일관된 Evidence Chain을 구축할 수 있다. 이것이 단순한 AI 생산성 향상과 기능안전 규정 준수의 차이를 만드는 핵심이다.

■ 맺음말

AI는 앞으로도 더욱 뛰어난 코드를 생성할 것이다. 그러나 기능안전이 요구되는 임베디드 시스템에서는 코드 생성 자체보다 품질을 증명할 수 있는 객관적인 근거가 훨씬 중요하다. AI는 코드를 작성한다. 하지만 인증을 획득하는 것은 개발 프로세스와 이를 뒷받침하는 검증 도구이다.

AI 시대의 경쟁력은 얼마나 빠르게 코드를 생성하느냐가 아니라, 얼마나 신뢰할 수 있는 품질 증거를 지속적으로 만들어낼 수 있느냐에 달려 있다. 그 중심에는 안전 인증을 지원하는 개발 플랫폼과 검증 도구 체계가 자리하고 있으며, AI와 기능안전을 동시에 만족시키기 위해서는 생산성과 품질을 함께 확보할 수 있는 통합 개발 환경이 무엇보다 중요해지고 있다.

※ [참고]코드 품질 및 규정 준수 - IAR로 더 강력한 코드 구축
https://www.iar.com/ko/embedded-development-tools/code-quality-and-compliance
본 기사에 대한 정정·반론·추후보도 청구는 보도 청구 안내를, 그간 게재된 보도문은 정정·반론보도 모아보기를 참고해 주세요.
편집부