연구실 홈페이지 개발 프로젝트의 이클립스 개발 환경 구축 과정을 소개한다. 인텔리제이 사용하여 개발 환경을 구축 한다면 ‘Project Lab 1-1. 개발 환경 구축(IntelliJ)’’ 게시글을 참고하면 된다. 개발 환경 Windows 10 64bit jdk11.0.7 Spring Tools 4 for Eclipse(sts...
Project Lab 1-1. 개발 환경 구축(IntelliJ)
연구실 홈페이지 개발 프로젝트의 인텔리제이 개발 환경 구축 과정을 소개한다. 이클립스를 사용하여 개발 환경을 구축 한다면 ‘Project Lab 1-1. 개발 환경 구축(IntelliJ)’ 게시글을 참고하면 된다. 개발 환경 Windows 10 64bit jdk11.0.7 IntelliJ Ultimate 2021.1 프로젝...
소스코드 메트릭(Code Metrics) 개요
소프트웨어 품질 향상을 위한 소스코드 메트릭(Code Metrics)를 소개한다. 소프트웨어의 복잡도 감소, 유지보수 용이성 증대 등 소프트웨어 품질향상을 위한 소스 코드의 품질 측정지표다. 다음 메트릭들은 방위사업청에서 배포한 ‘방위사업청 매뉴얼 제2020-8호 부록(무기체계 소프트웨어 개발 및 관리 매뉴얼)’에서 지정한 메트릭 기준표다...
CWE(Common Weakness Enumeration) 개요
소프트웨어 보안 취약점을 분류한 CWE(Common Weakness Enumeration) 개요를 소개한다. CWE는 다음 URI에서 확인할 수 있다. URI: https://cwe.mitre.org/ CWE(Common Weakness Enumeration)란? CWE는 보안에 영향을 미치는 소프트웨어 및 하드웨어의 보안 약점(we...
MISRA C 2012_05_08, 09 외부 및 내부 연결을 가지는 변수와 함수 식별자는 유일해야 한다.
본 글에서는 MISRA C 2012_05_08, 09 규칙을 소개한다. 외부 및 내부 연결을 가지는 식별자들은 모든 translation unit들에서 유일해야 한다. 외부 연결이 없는 지역 변수는 혼동 위험이 적으므로 유일하지 않아도 된다. 내부 연결을 가지는 식별자들은 연결이 없는 지역 변수 식별자들과도 유일해야 한다...
선언(declartion)과 정의(definition)의 차이
본 글에서는 선언과 정의의 차이를 소개한다. 해당 용어들은 코딩 규칙에서 가이드라인에서 자주 언급된다. 선언 컴파일러에게 변수의 정보만을 제공하며, 실제 메모리를 사용하지 않는다. // extern 변수 선언 extern int a; // 함수 선언 int a(); // typedef typedef unsigned int U...
표준에서 정의되지 않은 행동
본 글에서는 표준에서 정의되지 않은 행동인 implementation-defined behavior, unspecified behavior, undefined behavior를 소개한다. 해당 용어들은 코딩 규칙에서 자주 언급된다. 표준 문서에서 정의하는 behavior 종류 기본적으로 C언어 컴파일러는 코드에서의observable ...
MISRA C 2012 가이드라인 표기 방식
MISRA C 2012 가이드라인 표기 방식을 소개한다. 가이드라인 표기방식 가이드라인의 표기 방식은 다음과 같다. Ident: 가이드라인의 식별자로서, 처음오는 숫자는 큰 주제마다 변경된다. Requirement text: 가이드라인의 내용 Source ref: 가이드라인이 참고하는 다른 표준...
MISRA C 2012 가이드라인 개요
안전성과 신뢰성이 요구되는 임베디드시스템에서 사용되는 MISRA C 가이드라인을 소개한다. C언어의 특징 C언어는 가장 많이 사용하고 있는 언어 중 하나로서, C언어 컴파일러는 거의 대부분의 프로세서를 지원하고 있다. C언어 컴파일러는 작은 크기를 가지는 효율적인 기계어로 변환시킨다. 이는 제한된 메모리를 사용하는 임베디드시스템 소프...
Github Page minimal-mistakes 테마 설정
Github page jekyll 사용 중 뷰에서 마음에 들지 않은 레이아웃을 변경하고 커스터마이징 한 코드를 설명한다. 본 블로그는 github page의 jekyll 템플릿을 사용하여 개발되었으며, jekyll 템플릿의 minimal-mistakes 테마를 사용하였다. 블로그 생성 및 설정은 https://devinlif...