코드에 집중을 유지하는 법

개발자로서 집중을 유지하는 데에 어려움이 되는 요인은 여러 가지가 있습니다. 이따금 씩 작성해야 하는 기술 문서, 남이 작성한 기술 문서를 읽어야 하는 경우, 그리고 새로운 기술이 등장하여 이를 익히지 않으면 안 되는 경우 등이 여기에 속합니다. 이번 글에서는 이와 같이 집중을 유지하는 데에 어려움을 주는 요소를 방지하고, IAR 시스템스에서 개발자가 코드 작성에 집중할 수 있도록 어떠한 도움을 주고 있는지에 대해 알아보겠습니다.

임베디드 시스템 개발은 결코 쉬운 일이 아니라는 점에 이의를 달 사람은 거의 없을 것입니다. 어려운 난관에 직면했을 때에 가장 중요한 것은 지금 자신이 하고 있는 일에 집중하는 것입니다. 눈앞의 과업에 집중하는 것은 코드 내의 버그를 방지하는 최상의 방책입니다. 버그가 발생하면 나중에 오랜 시간을 들여 이것을 찾아야 하며, 고치는 데에도 많은 비용이 듭니다.  

하지만 개발자가 신경 써야 하는 일이 한 두 가지가 아니다 보니 집중을 유지하는 것이 쉬운 일은 아닙니다. CPU 자원에는 제약이 따르며, 아키텍처는 생전 처음 보는 것이고, 또 칩 자체의 하드웨어적인 문제도 발생할 수 있습니다(silicon errata). 이러한 문제, 그리고 여러 가지 다른 문제가 겹쳐 개발자를 한층 더 힘들게 합니다. 임베디드 시스템 개발은 관련 표준에 맞추는 문제는 제쳐 두고 말입니다. 이러한 여러 가지 문제의 도가니 속에서도 집중을 잃지 않는 방법은 유용한 도움을 주는, 훌륭한 도구를 사용하는 것입니다.

기술 문서를 활용하는 법을 배워 두십시오. 

각종 툴의 이용자 매뉴얼 때문에 시간은 시간대로 버리고, 짜증은 짜증대로 나는 상황을 경험할 수도 있습니다. “기술 문서는 이미 해당 툴을 사용할 줄 아는 사람을 위해 쓰는 것”이라고들 흔히 말합니다. 하지만 저희는 그렇게 생각하지 않습니다. 당사의 글로벌 고객 지원팀이 필요한 내용을 찾으실 수 있도록 신속하게 도움을 드리고 있습니다. IAR Embedded Workbench는 체계적으로 구성된 기술 문서와 더불어, 웹사이트를 통해서도 여러 가지 기사와 튜토리얼 비디오, 그리고 웨비나 동영상 등을 제공하고 있습니다. 당사 기술 문서를 통해서도 추가적인 정보를 제공하고 있으며, 여기서는 아키텍처 별 컴파일러 확장, 포인터 신텍스, 수정 관리 시스템과의 통합 방법, 링커 맵 파일 해석 방법 등 다양한 주제에 관한 내용을 간결하게 소개하고 있습니다. 또 다른 유용한 주제가 C/C++를 혼합하는 것으로, 이는 임베디드 시스템에서 매우 유용하게 사용될 수 있습니다. 툴에서 생성될 수 있는 진단 메시지의 목록도 제공하며, 이는 매우 좋은 참고 자료로 활용이 가능합니다. 시작 코드(startup code) 제거 방법도 소개하며, 이는 부트로더와 메인 어플리케이션을 합칠 때에 도움을 줍니다. 절대 위치로 라이브러리를 작성하는 방법은 안전 핵심 시스템에서 종종 요구하는 것이며, C의 바이너리 주석의 경우는 존재하지 않지만, 그에 대한 대안은 갖추고 있습니다. 이외에도 사용자에게 도움이 될 수 있는, 매우 다양한 내용을 갖추고 있습니다. 

표준의 준수와 관련해서 사장 어려운 부분 중의 하나는 사용자의 임베디드 설계에 사용되는 모든 툴에 대한 표준 준수 관련 기술 문서를 하나로 취합하는 것입니다. IAR Embedded Workbench의 기능 안전 버전(ARM 및 Renesas RX 용으로 제공)은 IEC 61508 및 ISO 26262 등의 표준에서 요구하는 개발 툴 관련 기술 문서를 제공하는 방식을 통해 도움을 제공합니다.

어려울 때에는 도움을 구합시다. 

새로운 프로젝트를 시작하는 일은 힘든 일입니다. 특히 새로운 아키텍처와 새로운 툴을 동시에 배워야 할 때는 더욱 그렇습니다. IAR Embedded Workbench는 4000 개 이상의 샘플을 탑재하고 있어, 새로운 프로젝트 작업을 빠르게 진행시킬 수 있을 뿐 아니라 어플리케이션 개발을 위한 바탕으로 삼을 수도 있습니다.  

여기서 저희가 도움을 드릴 수 있는 부분 중의 하나가 바로 IAR 시스템스의 고객 지원팀을 활용하실 수 있는 점입니다. 당사의 기술 지원 엔지니어들은 다양한 하드웨어 및 소프트웨어 경력을 보유한 인원으로 구성되어 있으며, 특히 일부 인원은 임베디드 설계 업계에서 10년 이상의 경력을 쌓기도 하였으며, 또 일부는 임베디드 프로젝트를 대상으로 컨설팅을 진행한 경력자도 있습니다. 따라서 고객이 새로운 문제에 직면했을 때, 어떤 도움이 필요한지 저희는 누구보다 잘 압니다. 시급한 문제가 되었던, 아니면 경미한 버그이던, 반드시 저희가 도움을 드릴 수 있는 길이 있습니다. 유럽, 아시아, 미주 대륙 내 총 10개의 지점망을 통해, 언제든 전화 한 통, 이메일 한 통으로 전문적인 지원을 받으실 수 있습니다. 

어려움을 덜어드릴 수 있는 또 다른 방법은 바로 교육입니다. IAR Systems는 다양한 주제로 여러 교육 과정을 제공, 개발 과정에서 발생할 수 있는 문제를 방지하고, 복잡한 버그를 해결하며, 당사 툴을 완전히 마스터 할 수 있도록 해 드리고 있습니다. 뿐만 아니라 임베디드 소프트웨어 설계의 기본에 대한 과정, 그리고 팀의 일원으로서 뿐 아니라, 개인이 스스로 프로젝트를 기획 및 개발하는 능력을 함양하기 위한 과정도 제공하고 있습니다. 당사가 제공하는 모든 과정은 해당 분야의 숙련된 엔지니어가 진행하는 이론 수업, 그리고 이를 보강하기 위한 실습으로 구성되어 있습니다.  

우수한 성능의 개발 툴 확보 

개발 툴이 개발자에게 제공하는 가장 중요한 기능 중의 하나는 효율적인 코드의 작성을 돕는 것입니다. 여기서 효율이란 크기의 최적화가 될 수도 있고, 속도의 최적호가 될 수도 있습니다. IAR Embedded Workbench에서는 어떠한 차원의 효율을 추구하시던 고도의 최적화 기능을 지닌 C/C++ 컴파일러를 통해 좀 더 간결한 코드를 작성할 수 있도록 해 드립니다. 당사의 컴파일러에서는 크기를 기준으로 최적화를 할 것인지, 속도를 기준으로 할 것인지, 또는 이 둘 간의 균형을 목표로 할 것인지를 자유롭게 선택할 수 있습니다. 코드의 최적화를 지원하는 컴파일러를 통해 개발 소요 시간을 줄일 수 있습니다. 코드를 일일이 수기로 최적화 할 필요가 없어지며, 코드의 크기, 그리고 실행 속도 면에서 좀 더 효율적인 어플리케이션을 개발할 수 있기 때문입니다.  

코드에 대한 집중할 수 있도록 해 드리는 또 하나의 수단이 바로 강력한 기능을 지닌 디버깅 툴입니다. 당사의 디버거는 모든 종류의 산업용 표준 하드웨어 디버깅 프로브를 지원, 코드를 하드웨어 상에서 실행시키는 동시에 분석을 진행할 수가 있습니다. RTOS 인식 플러그인으로 RTOS 기반 어플리케이션이 타이머, 메일박스, Semaphore, 과업 등의 통상적인 RTOS 기능을 어떻게 활용하는지를 분석할 수가 있습니다. 그 외에도 스택 사용량 분석을 통해 어플리케이션의 스택 소요량을 예측할 수도 있습니다. 디버거 기능에는 코드 커버리지 및 기능 프로파일링 지원 기능이 있어 코드 실행 중 가장 시간이 많이 소요되는 부분은 어디인지, 그리고 테스트 시 가장 주목해야 하는 부분은 어디인지도 판단할 수 있도록 해 줍니다.

결론

우선, 항상 자신이 지금 하고 있는 일에 집중하고 있어야 합니다. 임베디드 마이크로프로세서를 기반으로 우수한 품질의 제품을 개발하기 위해서는 개발자가 자신의 업무, 즉 어플리케이션 작성에 집중할 수 있어야 합니다. 또 한 가지 중요한 것은 우수한 성능의 좋은 툴을 확보해 빌드타임 에러, 런타임 에러에 막히거나, 툴 및 아키텍처에 대한 자료를 찾아보느라 시간을 낭비하는 일이 없도록 하는 것입니다. 그리고 간결하고, 체계적인 기술 문서는 효과적인 제품 개발자가 되기 위한 필요한 정보를 좀 더 쉽게 찾을 수 있도록 해 드립니다. 그리고 문제의 우회 방법이나 기타 힌트가 필요하시면, 저희 고객 지원팀으로 전화로 문의하실 수도 있습니다. 

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.