Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
2025년 3월, MISRA(Motor Industry Software Reliability Association) 협회에서 기존 MISRA C:2023 코딩 가이드라인을 개정하여 MISRA C:2025 코딩 가이드라인을 발표하였습니다. 이번 포스팅에서는 기존 MISRA C:2023 대비 MISRA C:2025의 주요 변경 사항들을 살펴보도록 하겠습니다.
* 현재까지 여러 산업 분야에서는 MISRA C:2012, MISRA C++:2008 코딩 가이드라인을 여전히 가장 많이 채택하여 사용하고 있는데요,
MISRA C:2012, MISRA C++:2008 대비 MISRA C:2023, MISRA C++:2023에서의 주요 변경점들은 이전 포스팅에서 확인해주세요!
[Helix QAC] MISRA C:2023 살펴보기🔎
[Helix QAC] MISRA C++:2023 살펴보기 🔎
01. History of MISRA C:2012/2023/2025
앞서 말씀드렸듯, MISRA C:2012 코딩 가이드라인은 지금 현재(본 포스팅 작성 기준 2025.07)까지도 여러 산업 분야에서 꾸준히 사용되고 있는 대표적인 C언어 표준 코딩 가이드라인인데요, C90/C99(ISO/IEC 9899:1990/1999) 기반으로 작성되었기에 지속적으로 발전하는 최신 C언어 대응에 한계를 직면하게 됩니다. 이를 극복하기 위해 MISRA 협회는 다음의 [표 1]과 같이 4개의 Amendment 및 2개의 Technical Corrigendum 문서 발표를 통해 MISRA C:2012 코딩 가이드라인의 업데이트 및 문서적인 오류 개선을 진행하였습니다.
| 날짜 | 내용 | 신규 규칙 |
Amendment 1 | 2016년 4월 | Security 대응을 위한 업데이트 | 14 |
Technical Corrigendum 1 | 2017년 6월 | 문서적인 오류 개선 1차 | - |
Amendment 2 | 2020년 2월 | C11 (Core Functionality) 업데이트 | 2 |
Technical Corrigendum 2 | 2022년 3월 | 문서적인 오류 개선 2차 | - |
Amendment 3 | 2022년 10월 | C11/C18 (New Feature) 업데이트 | 24 |
Amendment 4 | 2023년 3월 | C11/C18 (Multi Threading) 업데이트 | 22 |
[표 1] MISRA C:2012 Amendment 및 Technical Corrigendum
이후 2023년 4월, 최초의 MISRA C:2012 코딩 가이드라인에 Amendment 1,2,3,4 및 Technical Corrigendum 1,2 내용을 통합 반영하여 MISRA C:2023으로 새롭게 개정하였습니다.
그리고 2025년 3월, MISRA C:2023에서 신규 규칙 추가와 기존 규칙 제거 및 업데이트를 진행하여 MISRA C:2025 코딩 가이드라인을 발표하였습니다. MISRA C:2023 대비 MISRA C:2025는 어떤 내용이 변경되었는지 살펴보도록 하겠습니다.
02. MISRA C:2023 >> MISRA C:2025
MISRA C:2023/2025의 구성은 다음의 [표 2]와 같은데요,
| MISRA C:2023 | MISRA C:2025 | ||
Directive | Rule | Directive | Rule | |
Mandatory | 0 | 23 | 0 | 22 |
Required | 14 | 137 | 14 | 140 |
Advisory | 7 | 40 | 8 | 38 |
Disapplied |
|
| 0 | 1 |
Total | 21 | 200 | 22 | 201 |
221 | 223 | |||
[표 2] MISRA C:2023/2025 구성
먼저, MISRA C:2025 코딩 가이드라인에서는 새로운 카테고리인 “Disapplied”가 추가되어, 기존 “Mandaotry”, “Required”, “Advisory”와 함께 4개의 카테고리로 규칙들이 제공됩니다.
1) Mandatory
어떠한 경우에도 예외를 허용하지 않음
2) Required
정당한 사유가 존재할 경우에만 예외를 허용
3) Advisory
정당한 사유가 존재하지 않더라도 예외를 허용 (권장 사항)
4) Disapplied
미준수 허용
“Disapplied”는 미준수를 허용하는 카테고리로, MISRA C:2025에서는 다음의 [그림 1]과 같이 Rule-15.5 규칙이 유일하게 해당 카테고리로 변경되었습니다.

[그림 1] MISRA C:2025 Rule-15.5
Rule-15.5는 함수가 단일 Exit Point(return)를 갖아야 한다는 규칙으로, 오랫동안 많은 사람들 사이에서 논란이 되어 왔습니다. 함수가 다수의 return을 갖도록 구현하는 경우에는 재사용성을 해칠 수 있으며, 디버깅이 어려울 수 있다는 의견이 많습니다. 반면, 함수가 단일 return을 갖도록 구현하는 경우에는 오히려 보다 많은 조건문이 필요하여 가독성을 해칠 수 있다는 의견도 많습니다. 이러한 의견 외에도 다양한 의견들이 존재하는데요, MISRA 협회에서 이러한 사용자들의 의견을 반영한 것으로 해석할 수 있습니다. 또한, 이번에 새롭게 등장한 “Disapplied” 카테고리에 해당하는 규칙들이 앞으로 더 추가될 가능성도 낮지 않을 것으로 예상되고 있습니다.
다음으로, 신규 규칙과 제거된 규칙을 살펴보겠습니다. MISRA C:2025의 신규 규칙 7개와 제거된 규칙 5개는 다음의 [그림 2]와 같은데요,

[그림 2] MISRA C:2025 신규 규칙 및 제거된 규칙
먼저, 제거된 규칙 5개는 다음과 같습니다.
∨ Rule-1.2 → Dir-1.2 규칙으로 이름 변경
∨ Rule-11.7 → Rule-11.4 규칙으로 통합
∨ Rule-17.6 → Rule-17.5 규칙으로 통합
∨ Rule-21.1 → Rule-20.15 규칙으로 이름 변경
∨ Rule-21.2 → Rule-5.10 규칙으로 이름 변경
따라서, 실질적으로 추가된 신규 규칙은 Rule-8.18, Rule-8.19, Rule-11.11, Rule-19.3 4개 규칙입니다. 그리고, 이 4개 규칙은 최신 C언어 Feature 대응을 위한 신규 규칙이 아닌, 기존에 존재하던 C언어 Feature에 대한 추가 규칙입니다.
결론적으로, MISRA C:2025는 기존 MISRA C:2023에 대한 대규모 업데이트가 아닌 소규모의 최적화 업데이트로 볼 수 있는데요, 이를 통해 앞으로는 소규모의 업데이트라도 추가 Amendment 문서 발표가 아닌 새로운 이름의 MISRA C :202X 형태로 개정될 가능성도 확인해 볼 수 있었습니다.
03 MISRA C:2025 with Helix QAC
Helix QAC의 제조사인 Perforce(구.PRQA)는 MISRA C/C++ 코딩 가이드라인의 최초 제정부터 Release/Update를 담당하는 Working Group 내 핵심 멤버이며, AUTOSAR C++14 코딩 가이드라인 제정에 유일하게 참여한 정적 분석 도구 Vendor입니다. 따라서, Helix QAC는 코딩 가이드라인과 관련된 Global Trend에 가장 빠르고 정확하게 대응할 수 있는 정적 분석 솔루션입니다.
MISRA C:2025 역시 Helix QAC & MC25CM(MISRA C:2025 Compliance Module) 자동화 정적 분석을 통해 대응 가능하며, Helix QAC 최신 버전(Helix-QAC-2025.1)부터 100% 분석을 지원합니다.

[그림 3] (왼) MISRA C:2025 분석 설정 | (오) MISRA C:2025 룰셋 템플릿 적용
혹시 Helix QAC에 대해 더 알고 싶으신가요? 💁
MDS인텔리전스는 매달 1회씩 Helix QAC뿐만 아니라 다양한 도구 기본 교육을 진행하고 있습니다!🙌
아래 링크를 통해 MDS인텔리전스 홈페이지를 방문하시어 도구 사용자 교육을 수강해 보세요!
훨씬 더 쉽게 Helix QAC를 활용하실 수 있습니다.
