Invisible Safety,

Proven by Intelligence

보이지 않는 안전을 인텔리전스로 증명하다.

기술 노트
IT 산업의 변화를 이끄는 MDS인텔리전스의
기술 인사이트를 만나보세요.
시스템 소프트웨어 개발
[CodeSonar] AI가 코드를 만드는 시대, 왜 임베디드 개발엔 정적 분석이 필수일까?(1)
2026년 03월 13일

Veracode의 최근 조사에 따르면, 실제로 AI가 생성한 코드의 45%가 보안 결함을 포함하고있음에도 불구하고 마치 실제 제품에 바로 쓸 수 있을 것처럼 보인다고 합니다.


특히 안전이 중요한 임베디드 시스템에서는 이러한 리스크를 간과하는 것이 규제 위반이나치명적인 장애, 법적 분쟁으로 이어질 수 있기 때문에 각별한 주의가 필요합니다.


 

AI 코딩 도구는 분명히 개발 속도를 높이고 인건비를 절감하는 데 도움이 됩니다.


그러나 그런 만큼 보안 취약점도 함께 유입될 수 있으며, 이를 방치하면 시스템 전체의 무결성이 흔들릴 수 있습니다.


정적 분석 도구는 이러한 상황에서 필수적인 안전망 역할을 합니다.

 


정적 분석은 컴파일 전 단계에서 코드의 문제를 찾아내고, 자동 회귀 테스트는 통합 이후 시스템 전체의 동작을 검증합니다.


둘 중 하나만으로는 완전한 검증이 어렵기 때문에, 이 두 가지를 함께 사용하는 것이 AI 생성 코드를 신뢰할 수 있게 만드는 핵심 전략입니다.



AI가 만들어낸 코드를 그냥 두고 보기엔, 우리가 감수해야 할 리스크가 너무 큽니다.


 


AI 코딩 혁명 : 숨겨진 리스크 속의 생산성 향상


여러분의 팀은 이미 AI를 사용하고 있습니다. (알고 계실 수도, 모르고 계실 수도 있지만요)

GitHub Copilot은 매달 30억 줄이 넘는 코드를 자동 추천하고 있고, CodeWhisperer는 대기업 개발팀 사이에서 빠르게 확산되고 있습니다.


GitLab Duo 역시 자체 워크플로에 AI를 통합하여 활용도를 높이고 있으며, Claude는 단순한 코드 작성을 넘어 복잡한 설계와 전체 프로젝트 구현까지 지원하는 강력한 AI 도우미로 자리 잡고 있습니다.


 

현장의 개발자들은 이러한 AI 도구를 활용해 빠듯한 일정과 리소스 부족을 메우고 있습니다.

특히 숙련된 C/C++ 인력이 부족한 임베디드 개발 현장에서는, AI가 곧 속도와 생존력을 의미하기도 합니다.



하지만 이 생산성의 이면에는 무시하기 어려운 리스크가 숨어 있습니다.



Veracode의 연구에 따르면, Java 기반 AI 코드 중 70% 이상이 오류를 포함하고 있었으며, Python, C#, JavaScript도 40%에 가까운 실패율을 기록했습니다.

 


C/C++에 대한 구체적인 수치는 공개되지 않았지만, 실시간성 요구와 메모리 직접 관리가 필수인 임베디드 개발에서는 이보다 더 높은 보안 리스크가 발생할 수 있습니다.


 

AI가 만든 코드라고 해서 반드시 안전하거나 신뢰할 수 있는 건 아니라는 얘기입니다.



그림 1. 프로그래밍 언어별 AI 도입과 취약점 비율 비교


"

AI가 만들어준 코드, 정말 괜찮을까요?

"



‘Vibe Coding’이 임베디드 시스템에서 위험한 이유


Veracode의 CTO Jens Wessling은 최근 “보안 요구사항 없이 AI에 의존해 코드를 작성하는 ‘Vibe Coding’은 소프트웨어 개발 방식 자체를 근본적으로 바꾸고 있다” 고 지적했습니다.


 

웹 애플리케이션이라면 방화벽, 인증, 런타임 보안 계층 등 다양한 보호 수단이 있지만, 임베디드 시스템은 그렇지 않습니다.


임베디드 코드는 하드웨어에 직접 접근하고, 보호 장치가 거의 없는 상태에서 동작하는 경우가 많습니다.



이 때 AI가 만든 코드에 Buffer Overflow나 Race Condition같은 문제가 포함되어 있다면, 그 피해는 단순한 버그를 넘어설 수 있습니다.


의료기기가 고장나거나, 자동차의 안전 시스템이 오작동하고, 산업 장비가 멈추는 상황도 실제로 발생할 수 있습니다.


 

생산성이 40% 올라간 것처럼 보여도, 그 이면에는 기술 부채, 규제 위반, 그리고 미래의 책임이라는 큰 비용이 숨어 있을 수 있습니다.


AI 코드를 활용하는 속도만큼, 그 코드가 어디까지 신뢰 가능한지 점검하는 체계가 반드시 함께 따라야 합니다.




왜 임베디드 시스템은 AI 코딩 오류를 감당할 수 없을까요?



AI 코드 오류, 생명을 위협할 수도 있습니다


임베디드 시스템은 단순한 프로그램이 아닌 현실의 물리적 결과를 유발하는 시스템입니다.



AI가 생성한 코드가 다음과 같은 장비를 제어할 수 있다는 점을 기억해야 합니다:

∙ 의료기기 : 인슐린 펌프, 심박 조율기, 인공호흡기

∙ 자동차 시스템 : ABS, 에어백, 자율주행 기능

∙ 산업 제어 장비 : 화학 공정 제어, 전력망 운영, 제조 자동화 정비



이러한 시스템에는 일반적인 컴퓨팅 환경처럼 운영체제가 보호해주는 메모리 영역도 없고, 가비지 컬렉션도 없으며, 문제가 생겼을 때 자동으로 재시작하거나 복구할 수 있는 여유도 없습니다.

 


한 줄의 코드 오류가 치명적인 결과로 이어질 수 있다는 점에서, 임베디드 환경에서는 AI 코드도 반드시 검증이 필요합니다.


 ​


임베디드 시스템에서 규제 준수는 ‘선택’이 아닙니다


임베디드 시스템이 적용되는 분야에서는 법적 기준과 안전 규제가 매우 엄격합니다.


다음과 같은 국제 표준을 충족하지 않으면, 제품 출시 자체가 불가능할 수 있습니다.


∙ ISO 26262 : 자동차 소프트웨어의 기능 안전 기준

∙ DO-178C : 항공 전자 소프트웨어 인증 기준

∙ IEC 62304 : 의료기기 소프트웨어 수명주기 프로세스

∙ IEC 61508 : 산업 자동화 및 공정 제어 시스템의 기능 안전 기준


 

하지만 문제는, AI가 생성한 코드는 기존 개발·검증 프로세스를 그대로 적용하기 어렵다는 점입니다.



예상하지 못한 코드 구조나 불명확한 로직 흐름 때문에, 감사 대응이나 인증 절차에서 누락이나 오류가 발생할 가능성이 높아집니다.


 

이럴 때 필요한 것이 정적 분석입니다.

정적 분석은 코드 수준에서의 리스크를 탐지할 뿐만 아니라, 검증 과정을 문서화된 형태로 남겨서 규제기관이나 외부 감사에서도 신뢰받을 수 있는 근거를 제공합니다.


그림 2. 산업별 규제 기준에 따른 정적 분석 커버리지 매트릭스


 

---------------------


AI 코딩 도구는 임베디드 개발 현장에서 생산성을 크게 높여주지만, 그 이면에는 우리가 미처 예상하지 못한 보안 취약점과 규제 리스크가 숨어 있습니다.


특히 물리적 결과를 동반하는 임베디드 시스템의 특성상, 단 한 줄의 코드 오류도 제품 결함, 안전사고, 법적 책임으로 이어질 수 있기 때문에 더 이상 간과할 수 없는 이슈입니다.

 


이번 글에서는 AI 코드의 생산성과 리스크 사이에서 균형을 잡기 위한 출발점을 함께 살펴보았습니다.


다음 편에서는 다음과 같은 주제를 통해 보다 실질적인 대응 전략을 함께 알아볼 예정입니다.


∙ AI가 임베디드 코드에 도입하는 구체적인 보안 취약점은 무엇인지

∙ 정적 분석 도구가 이 문제를 어떻게 해결할 수 있는지

∙ 안전한 AI 기반 임베디드 개발 프로세스를 어떻게 구축할 수 있는지

∙ 그리고 “리스크 vs 생산성”이라는 비즈니스 관점에서 이 모든 논의가 어떤 의미를 가지는지


 

생산성만 좇다가는, 기업 전체가 감당할 수 없는 비용을 치룰 수 있습니다. 정확한 검증 체계 없이 AI를 받아들이는 것은 기술이 아니라 위험입니다.

 


다음 글에서, 그 해결책을 함께 고민해보는 시간을 가져보도록 하겠습니다.


출처 : https://codesecure.com/our-white-papers/why-static-analysis-is-critical-for-embedded-systems-in-the-age-of-generative-ai/



​📧 codesonar@mdsit.co.kr  ✍️ 문의남기기