ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코딩 가이드 라인
    Clean Code 2023. 10. 5. 14:25

    해당 내용은 개발환경 setup과 소프트웨어 퀄리티를 올리는 방법에 대해 작성하였다.

     

    협업시 발생하는 문제점

    협업을 할 때 각자 개발한 코드에 문제가 많이 있었으나 읽기 쉽지 않아서 어디가 문제인지 찾기 힘들었다.

    다른 소프트웨어와 연동, 각자 개발한 코드를 합치려 했지만, 인터페이스가 좋지 않았다.

     

    위와 같이 협업시 다양한 문제가 발생할 수 있다.

    코드 베이스와 개발 가이드라인, 문법들이 잘 정리되어 코드를 작성한다면, 개발 시간을 단축 할 수 있다.

    또한, 윈도우, 리눅스, 개발 보드등 개발 환경을 일관화 하면 개발할 때 좋다.

     

    C++, Python등 개발에 필요한 IDE 확장 기능을 구성하면 좋다.

    또한 개발 환경을 설정할 때, OS를 밀고 다시 설치하는 경우에는 오래 걸린다. Shell script 를 사용하여 한번에 설치하는 방법을 추천한다.

    다른 사람들과 협업을 위해 개발 환경을 통합하는게 좋다.(OS version, build version등)

    당연한 소리지만, 개발환경을 통일하지 않으면 문제가 발생한다.

    내 로봇에서만 코드가 잘 돌아가는 것이 아닌, 일반적인 개발 환경에서 잘 돌아가는 것이 중요하다!!

     

    코딩 가이드 라인 Keywords

    • Development Environment
    • compiler
    • Build System
    • Version Control System
    • IDE
    • Coding Font
    • Automation Script(Shell script)

     

    개발 환경 구축

    개발 환경에서 가장 중요한 것은 Native OS이고 이를 추산하는 것은 Virtual OS이다.

    또한, 하드웨어의 CPU, GPU도 중요하다.

    하지만, 이번에는 개발 환경을 구축하기 위해 구성하는 IDE(Intergrated Development Environment)를 다뤄볼 것이다.

     

    C++은 어떤 컴파일러를 선택하느냐에 따라 개인적으로 사용할 수 있고, 상업적으로 사용할 수 있다.

    대표적인 컴파일러 GCCclang을 비교해보자.

     

    GCC

    • 대부분의 저수준 언어를 지원
    • 대부분의 운영 체제와 아키텍처에서 사용함
    • 오프소스 라이센스를 가짐.
    • 편하지만, 상업적으로 사용시 라이센스 문제가 발생.
    • 표준 준수

     

    clang

    • C관련 컴파일러 프론트엔드
    • LLAM 프로젝트 일부, LLVM 백엔드와 함께 사용되어 소스코드를 기계어로 번역.
    • 진단 메시지의 명확등의 이점을 가짐.
    • 라이센스 문제로 기업들이 GCC에서 clang으로 이주함.
    • 통합 정적 분석 → 3일차때 이야기.

     

    위와 같은 이유로 GCC가 보편적이지만, 현업에서는 clang을 사용한다.

    clangGCC보다 최적화가 잘 되어 있고 라이센스 이슈로부터 자유롭다.

    그외의 컴파일러: MSVC(Microsoft Visual C++) for window, Intel C++ Compiler(ICC) for interl

     

    IDE통합 개발 환경으로 코드 작성, 디버깅, 테스팅 및 프로젝트 관리 기능을 통합하는 종합적인 환경을 제공한다.

    여러가지 IDE가 있지만, vscode(visual studio code)를 추천한다.

     

    1. 확장성

    vscode는 많은 사람들이 사용하는 IDE로 다양한 extention을 지원하며, 특히 cuda 언어를 지원하는 extention도 가지고 있다.(cuda를 지원하는 IDE는 vscode밖에 없다.)

     

    2. 경량화 및 좋은 성능

    vscode는 가볍고 사용 성능이 좋다.

     

    3. 싱크로나이제이션 기능

    내가 추가한 extention과 설정한 기능을 로그인을 하면 자동으로 가져온다.

     

     

    VCS(Version Control System)

    주로 git을 사용하고 있으며 협업시 버전을 관리하는 것은 매우 중요하다.

    git은 가장 많은 유저, 오픈소스가 있다.

    AI의 발달로 chatgpt등과 같은 소프트웨어로 개발 프로세스를 중시하는게 좋다.

     

    Coding Font

    가독성을 높여서 실수를 줄이고 이해를 돕는 coding font가 있다.

    고정폭을 맞추거나 비슷하게 생긴 font를 구분하여 가독성을 높이는데 도움을 준다.

    고정폭

    • 각 문자와 기호가 동일한 너비를 가지는 폰트.
    • 이 특징은 코드의 정렬과 들여쓰기에 도움을 주어 가독성을 높임.

     

    구분력 있는 디자인

    • 일부 문자들은 코드에서 혼란을 줌. (ex: 숫자 '1', 소문자'l', 대문자'O', 숫자'0'등)
    • 코딩 폰트는 이러한 문자들이 명확하게 구분되도록 설계가 됨.

    'Clean Code' 카테고리의 다른 글

    _Uncrustify_C++  (1) 2024.05.29
    C++ coding Guide-line 1  (0) 2024.05.17
Designed by Tistory.