[테크월드=정환용 기자] 소프트웨어 개발 과정 중 개발의 품질 못지않게 중요한 것이 개발 시간이다. 개발된 제품이 시장에 진입해야 될 적절한 시간(타임 투 마켓)을 지키기는 것 또한 제품의 성공 요인이 된다. 다시 말해 정해진 시간 내 제품의 품질이 고려돼 완벽한 제품이 만들어져야 한다. 소프트웨어의 개발 시간이 줄어들면 그만큼 제품의 품질에 투자할 시간이 늘어나게 된다. 개발의 시간을 줄이는 것이 중요한 이유다.

개발의 시간을 줄이기 위한 여러 방법이 있다. 개발자의 능력에 따라 개발에 소요되는 시간은 달라질 수 있지만, 개발자의 능력 외에 다양한 요인에 의해 개발 시간이 길어질 수도 있다. 예를 들어 소프트웨어의 빌드시간 등 개발 도구의 동작 시간이 있다. 더욱이 프로젝트의 크기가 큰 경우 긴 빌드시간이 큰 문제가 될 수 있다. 다음은 IAR 임베디드 워크벤치(Embedded Workbench)를 사용하는 경우 어떻게 하면 빌드시간을 줄일 수 있는지에 대한 내용이다.

 

1. Parallel Build 옵션을 사용한다.

Tools → Options → Project → Enable parallel build 를 활성화한다. PC에서 사용할 수 있는 CPU의 코어만큼 병렬로 컴파일을 진행한다. 참고로 출시된 지 오래된 하위 버전에서는 해당 기능을 사용할 수 없다. EWARM 기준 7.40.1 버전 이상이어야 이 기능을 사용할 수 있다.

병렬로 여러 개의 프로세서에 컴파일링이 진행되며, 기존의 하나의 프로세서를 이용한 컴파일보다 월등한 속도 차이를 보인다. 프로젝트에 소스 파일 수가 많다면 반드시 해당 기능을
사용하길 권장한다.

2. 모든 헤더파일에 컴파일 조건을 사용한다.(인클루드 가드)
이와 같이 헤더가 중복 인클루드되지 않도록 조건을 주고, 가능한 C파일에서 인클루드되는 헤더를 줄인다면 빌드시간이 조금 빨라질 수 있다. 헤더 파일들을 포함해 컴파일된 C의 사이즈는 프로젝트 옵션에서 C/C++ Compiler → Preprocessor → “Preprocessor output to file” 항목을 체크하면 .i 파일을 만든다. 해당 파일의 크기를 확인하면 알 수 있다.

#ifndef __HFILE_H
#define __HFILE_H
/* ... */
#endif

3. 미리 빌드된 라이브러리를 사용한다.

프로젝트 내 코드 변경이 없지만 계속 반복적으로 빌드 진행이 된다면, 해당 코드들을 라이브러리 형태로 미리 빌드 후 프로젝트에 추가하게 되면 반복되는 빌드시간을 줄일 수 있다. RTOS, Library 등의 수정이 필요 없는 많은 소스 파일을 프로젝트에서 사용하는 경우 빌드시간 줄이기에 가장 효과적인 방법이다. 프로젝트의 output을 라이브러리로 설정하고 빌드하면 .a형태로 라이브러리화할 수 있다. 만들어진 .a 형태의 라이브러리를 실행코드를 생성하는 프로젝트에 추가해 사용한다.

4. List 파일을 만들지 않는다.

가능한 컴파일 후 생성되는 List 파일들을 만들지 않도록 한다. 프로젝트 옵션에서 C/C++ Compiler → List 의 항목을 체크해제하면, 빌드 중 List 파일을 만드는 시간을 줄일 수 있다.

리스트 파일 생성은 컴파일러 동작 후 해당 파일의 목적코드(Object)를 생성하고, 이와 관련된 리스트 파일을 생성한다. 리스트, 어셈블러 파일이 반드시 필요한 경우에만 해당 옵션을 사용하길 권장하며, 프로젝트 전체의 옵션 적용보다 필요한 파일, 그룹 별 옵션 선택을 사용하길 권장한다.

파일 또는 그룹별 옵션 설정은 Workspace 창에서 파일 또는 그룹에서 마우스 오른쪽 버튼 클릭 후 나타나는 컨텍스트 메뉴 중 ‘Options..’을 선택한다. ‘Override inherited settings’ 체크항목을 선택해 파일 또는 그룹의 옵션 사항을 변경한다.

5. 네트워크상의 소스코드 파일을 사용하지 않는다.
간혹 프로젝트에 사용되는 소스코드 파일이 네트워크에 있는 경우가 있다. 이런 경우 해당 파일들을 현재 사용하고 있는 로컬 PC에 복사한 후 사용하면 조금 더 빌드 시간을 줄일 수 있다. 네트워크의 연결이 불안정하거나 연결 속도가 느리게 되면 컴파일해야 할 파일 내용을 읽어오는 시간이 오래 걸릴 수 있으므로, 가능한 로컬로 파일을 복사해 사용하길 권장한다.

6. Output이 저장되는 위치를 네트워크상으로 지정하지 않는다.

프로젝트 옵션에서 General Options → Output → Output directories에서 실행 파일/라이브러리 파일, 오브젝트 파일, 리스트 파일이 저장되는 위치를 네트워크상의 경로가 아닌 로컬의 위치로 지정해 사용하면, 빌드 후 파일을 위치시키는 시간을 줄일 수 있다.

7. 바이러스 백신 프로그램의 실시간 감시 예외처리를 한다.
PC에서 실시간으로 동작하고 있는 바이러스 백신 프로그램은 꼭 필요한 프로그램이지만, 이로 인해 실행 시간이 느려질 수 있다. 백신 프로그램에서 다음의 경로 예를 참조해 프로그램이 사용하는 경로는 실시간 감시를 하지 않도록 예외 처리하면 된다.

C:Program FilesCommon FilesIAR Systems
C:Documents and Settings <USERNAME> Application DataIAR Embedded Workbench

참고로 이 경로 상의 <USERNAME>은 운영체제에 로그인 하는 계정에 따라 이름이 다르다.

맺음말
빌드의 시간은 개발되는 소프트웨어 자체의 품질에 직접적으로 큰 영향을 주는 요소는 아닐 수 있다. 하지만 프로젝트의 성공을 위해 좋은 품질의 소프트웨어를 빠르게 만들어 내는 것도 중요하다. 개발 시간을 줄이기 위해 여러 노력과 도움이 필요한데, 그 중 하나의 방법으로 개발 툴의 활용으로 빌드시간을 줄이는 방법에 대해 알아봤다. 본 내용으로 개발의 시간을 단 1초라도 줄여 성공적인 프로젝트 진행이 됐으면 한다.

 

작성: IAR 시스템즈 이현도 과장

회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지