ISTQB 용어집은 코딩 표준(coding standard)을 코드가 갖춰야 할 특성을 정하는 품질 표준으로 정의한다.[1] SWEBOK V4.0a에 따르면 코딩 표준에는 이름 짓기 관례, 코드 배치와 들여쓰기 같은 규칙이 들고, 알맞은 코딩 표준을 따르는 팀은 읽기 쉽고 유지보수하기 쉬운 코드를 만든다.[2]

C 언어에서 피하려는 동작

ISO/IEC 9899:2024는 C 프로그램의 동작 가운데 표준이 결과를 하나로 정하지 않는 것을 세 가지로 정의한다.[3]

  • 미정의 동작(undefined behavior): 이식성이 없거나 잘못된 프로그램 구성, 또는 잘못된 데이터를 쓸 때 표준이 아무 요구도 두지 않는 동작
  • 미지정 동작(unspecified behavior): 표준이 둘 이상의 가능성을 두고, 어느 것을 고를지는 더 정하지 않는 동작. 함수 인자를 평가하는 순서가 그 예다.
  • 구현 정의 동작(implementation-defined behavior): 구현마다 무엇을 골랐는지 문서로 밝히는 미지정 동작[3]

SEI CERT C 코딩 표준은 C 언어의 보안 코딩 규칙을 담고, 미정의 동작을 없애는 것 등으로 안전하고 믿을 수 있으며 보안이 갖춰진 시스템을 만드는 것을 목표로 한다. 이 표준은 미정의 동작이 악용할 수 있는 취약점으로 이어질 수 있다고 본다.[4]

대표 표준

MISRA C는 주로 안전 관련 응용을 겨냥해, 특히 임베디드 시스템에서 C 언어의 취약점을 다루는 데 초점을 두어 왔다.[5]

CERT는 C 표준 위원회 WG14의 위원을 포함한 커뮤니티의 참여로 위키에서 CERT C 보안 코딩 표준을 만들었고, 2008년 책으로 낸 1.0판에 이어 2014년 2판과 2016년 판을 펴냈다.[6] SEI CERT C 코딩 표준의 지침은 규칙(rule)과 권고(recommendation)로 이뤄진다. 규칙은 코드에 대한 규범적 요구이고, 권고는 따르면 안전성, 신뢰성, 보안을 높일 지침이다.[7]

MISRA C와 CERT C의 대응

MISRA는 MISRA C:2012 Addendum 3에서 Amendment 1을 포함한 MISRA C:2012가 CERT C 2016년 판의 지침을 어디까지 다루는지 보였다.[8] MISRA C:2023 Addendum 3에서는 MISRA C:2023이 CERT C 2016년 판을 다루는 범위를 지침마다 보이고, MISRA C가 안전 환경만큼 보안 환경에도 들어맞는다고 주장했다. 이 문서는 MISRA C 지침이 언어 기능을 제한해 CERT C 지침을 다루는 경우를 Restrictive 대응으로 분류했다.[5]

준수 확인

MISRA Compliance:2020은 MISRA 지침 대부분의 위반은 분석 도구나 컴파일러로 찾는 것이 가장 쉽고 믿을 만하며 비용이 적다고 보고, 도구로 완전히 검사할 수 없는 지침에는 수작업 리뷰가 필요할 수 있다고 둔다.[9] SEI CERT C 코딩 표준은 규칙의 요건 하나로, 자동 분석(정적이나 동적), 형식 기법, 수작업 검사로 준수 여부를 판정할 수 있을 것을 든다.[7] 이 표준은 규칙을 손으로 검사할 수도 있지만 프로그램이 크고 복잡해지면 곧 감당할 수 없으므로, 정적 분석 도구를 쓰기를 권한다.[10] 도구로 하는 검사는 정적 분석에서 다룬다.

ISTQB CTFL 강의계획서에 따르면 코딩 표준의 이름 짓기 관례를 지키지 않은 것 같은 표준 위반은 정적 테스트로 찾기가 더 쉽고 비용이 적으며, 코딩 표준 검사는 테스트 자동화로 얻는 이점에 든다.[11]

MISRA Compliance:2020은 코드 배치와 들여쓰기, 중괄호 위치, 이름 짓기 관례, 주석처럼 코드의 정확성에 직접 영향을 주지 않는 겉모양은 조직의 사내 스타일 가이드로 다루기를 권하고, 그 시행은 문서의 범위 밖에 둔다.[9]

ISO 26262-6

ISO 26262-6:2018은 5절(소프트웨어 수준 제품 개발의 일반 주제)에 모델링·코딩 지침이 다룰 주제의 표를 두고, 참고문헌에 MISRA C:2012를 든다.[12] 유닛 설계와 구현의 원칙은 소프트웨어 유닛 설계에서 다룬다.

[1]
ISTQB, “ISTQB Glossary — coding standard.” 2026. Accessed: Oct. 03, 2026. [Online]. Available: https://glossary.istqb.org/en_US/term/coding-standard
[2]
H. Washizaki, Ed., “Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0a,” IEEE Computer Society, 2026. Accessed: Oct. 02, 2026. [Online]. Available: https://ieeecs-media.computer.org/media/education/swebok/swebok-v4.pdf
[3]
ISO/IEC JTC 1/SC 22/WG 14, “ISO/IEC 9899:2024 (en) — N3220 working draft: Information technology — Programming languages — C.” 2024. Accessed: Oct. 03, 2026. [Online]. Available: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf
[4]
Software Engineering Institute, Carnegie Mellon University, “SEI CERT C Coding Standard — Introduction.” 2026. Accessed: Oct. 03, 2026. [Online]. Available: https://cmu-sei.github.io/secure-coding-standards/sei-cert-c-coding-standard/front-matter/introduction/
[5]
“MISRA C:2023 Addendum 3: Coverage of MISRA C:2023 against CERT C 2016 Edition,” The MISRA Consortium Limited, 2025. Accessed: Oct. 03, 2026. [Online]. Available: https://misra.org.uk/app/uploads/2025/03/MISRA-C-2023-ADD3-CERT.pdf
[6]
Software Engineering Institute, Carnegie Mellon University, “SEI CERT C Coding Standard — History.” 2026. Accessed: Oct. 03, 2026. [Online]. Available: https://cmu-sei.github.io/secure-coding-standards/sei-cert-c-coding-standard/front-matter/introduction/history
[7]
Software Engineering Institute, Carnegie Mellon University, “SEI CERT C Coding Standard — Rules versus Recommendations.” 2026. Accessed: Oct. 03, 2026. [Online]. Available: https://cmu-sei.github.io/secure-coding-standards/sei-cert-c-coding-standard/front-matter/introduction/rules-versus-recommendations
[8]
“MISRA C:2012 Addendum 3: Coverage of MISRA C:2012 (including Amendment 1) against CERT C 2016 Edition,” HORIBA MIRA Limited, 2018. Accessed: Oct. 03, 2026. [Online]. Available: https://misra.org.uk/app/uploads/2024/01/MISRA-C-2012-Addendum-3-Matrix-v-CERT-C.pdf
[9]
“MISRA Compliance:2020: Achieving compliance with MISRA Coding Guidelines,” HORIBA MIRA Limited, 2020. Accessed: Oct. 03, 2026. [Online]. Available: https://misra.org.uk/app/uploads/2021/06/MISRA-Compliance-2020.pdf
[10]
Software Engineering Institute, Carnegie Mellon University, “SEI CERT C Coding Standard — Tool Selection and Validation.” 2026. Accessed: Oct. 04, 2026. [Online]. Available: https://cmu-sei.github.io/secure-coding-standards/sei-cert-c-coding-standard/front-matter/introduction/tool-selection-and-validation/
[11]
“Certified Tester Foundation Level Syllabus, v4.0.1,” International Software Testing Qualifications Board (ISTQB), 2024. Accessed: Oct. 02, 2026. [Online]. Available: https://istqb.org/wp-content/uploads/2024/11/ISTQB_CTFL_Syllabus_v4.0.1.pdf
[12]
ISO, “ISO 26262-6:2018 Road vehicles — Functional safety — Part 6: Product development at the software level (OBP preview).” 2018. Accessed: Oct. 01, 2026. [Online]. Available: https://www.iso.org/obp/ui/#iso:std:iso:26262:-6:ed-2:v1:en