본문 바로가기
개념공부/SW 검증

코드 리뷰 - SW 검증, 분석, 리뷰 종류

by Zach Choi 2024. 8. 10.
728x90
반응형

회사에서 코드 리뷰를 수행하면서 적용 중인 방법들을 정리한다. 보통 코드 리뷰라면, 짧은 크기의 코드를 대상으로 가독성, 기능 정도가 수행 범위인데, 현재는 큰 단위의 코드를 대상으로 코드 리뷰에 더해 정적 검증과 최적화도 같이 수행하고 있다.

 

업무명은 코드 리뷰이지만 SW 검증, 최적화, 리뷰가 짬뽕되어 있다 ㅎㅎ


1. 기본 코딩 룰 및 코드 작성법 확인

 가장 기본적인 코드 리뷰로 코딩 룰과 코드 작성법을 확인한다. 팀 차원에서 공유되는 코딩룰의 위반 사항이 있는 지 점건하는데, 이는 코드를 하나하나 읽으면서 찾아내고 있다. 이 작업은 업무에 필요한 시간 대비 얻을 수 있는 효익이 크진 않아서 가장 비효율적인 업무라 느껴진다. 특히, 리뷰하는 코드의 크기가 큰 상황에서는 더욱 그렇다. 자동화 할 수 있는 방법이 있으면 좋겠다.

 

 기본 코드 작성법은 코딩 언어의 특성을 고려하는 것인데, 예를 들어 변수 초기화 시 Unsigned, Float32 자료형에는 숫자 뒤에 접미사를 붙이는 것과 같은 것이다. 요즘 컴파일러가 이런건 쉽게 처리해주지만, 가랑비에 옷 젖는다고 이런 컴파일 자원도 세이브하는게 중요하다고 생각한다.


2. 정적 / 동적 검증

 코드의 Defect 및 Rule 위반을 찾아내는 검증 방법이다. Runtime Error 유발 코드, 자원 낭비 코드, 미사용 변수/함수를 찾을 수 있으며 MISRA C 규칙 위반 코드 또한 찾을 수 있다. 일반적으로 사용되는 Tool은 MATLAB의 Polyspace (Bug Finder, Code Prover)이 있다.

 

 Runtime Error는 치명적인 Defect여서 정적검증을 상시로 수행해 Runtime Error Defect Free 코드를 만드는 것이 매우 중요하다고 생각한다.

 


3. 임베디드 C 프로그래밍 최적화

 최근에 포스팅했던 임베디드 C 프로그래밍 최적화 내용들을 참고해 코드를 수정하고 있다. 임베디드 환경은 PC 환경보다 컴퓨팅 자원이 적기 때문에, 속도 및 메모리 최적화 기법을 적용하는게 중요하고 여러 방법이 개발되어 있다.  이런 방법을 코드에 적용하더라도 PC 환경에서는 개선점이 두드러지게 보이진 않지만, 최종적인 타겟 시스템이 임베디드 시스템이라면 당연히 적용하는게 필요하다.


4. 알고리즘을 적용해 코드 수행 시간 개선

 O(N^2) 혹은 O(N^3) 코드는 수행 시간을 늘리는 주범들이다. 이 코드들에 수행 시간을 줄이기 위해 특정 알고리즘의 적용 가능성, 메모리를 사용하는 방법들을 검토해보고 있다.

728x90
반응형