임베디드 실무 관련 - Waterfall(V-model), Agile, Copilot, PM.

gichang·2025년 12월 7일

2526VEDA

목록 보기
8/13
post-thumbnail

📌 Waterfall (V-model)

: 임베디드, 특히 자동차(Automotive), 의료기기, 방산 분야에서는 여전히 Waterfall, 정확히는 V-Model이 표준

✅ 왜 임베디드에서 V-model을 쓸까?

  • 하드웨어 수정 불가 : PCB가 한번 제작되어 나오면(Spin), 회로를 수정하는 비용이 막대합니다. 따라서 설계 단계에서 완벽을 기해야 합니다.

  • 인증 및 규제 : ISO 26262(기능 안전) 같은 표준은 각 단계별 산출물과 검증 과정을 엄격히 요구합니다.

✅ 실무 프로세스

  • 요구사항 분석 : "부팅 시간 3초 이내, 전력 소모 5W 이하" 같은 구체적 수치 확정.

  • 설계 : HW/SW 인터페이스 정의, 메모리 맵핑, 통신 프로토콜 확정.

  • 구현 : 회로 설계 및 코딩.

  • 검증(Verification) : 단위 테스트 -> 통합 테스트 -> 시스템 테스트 순으로 올라가며 초기에 정의한 요구사항과 일치하는지 확인.


📌 Agile (애자일 프로세스)

: 하드웨어의 속도에 맞춘 유연함

최근에는 임베디드에서도 Agile을 도입하려 하지만, "하드웨어는 Agile 할 수 없다"는 한계 때문에 Hybrid Agile 형태를 취함.


✅ 어떻게 적용하나? (Dual-Track Agile)
  • HW 트랙 (Waterfall) : 하드웨어는 긴 호흡으로 개발(Revision 1, 2, 3...).

  • SW 트랙 (Agile/Scrum) : 소프트웨어는 2~3주 단위 스프린트로 기능 개발.


✅ 실무 핵심 포인트 - 가상화/시뮬레이션 : 하드웨어가 나오기 전, QEMU나 개발 보드(Evaluation Board)를 사용하여 SW 개발을 먼저 시작(Shift Left)해야 합니다.
  • CI/CD & HILs: 코드가 커밋되면 자동으로 빌드되고, 실제 보드나 시뮬레이터(HILs - Hardware In the Loop simulation)에서 테스트가 돌아가는 파이프라인 구축이 필수입니다.

📌 Copilot (AI 코딩 도구)

: 임베디드 개발에서 AI 코딩 도구(GitHub Copilot, Cursor 등)는 단순 코드 생성을 넘어 '데이터시트 해석기' 역할

✅ 구체적인 활용 사례

  • 레지스터 비트 조작 : "Timer0 레지스터의 3~5번 비트를 1로 설정하는 매크로를 만들어줘"라고 하면 실수하기 쉬운 비트 연산((1 << 3) | ...)을 정확히 짜줍니다.

  • 보일러플레이트 제거: CMakeLists.txt 작성, Yocto 레시피(source.bb)의 기본 골격 생성, 디바이스 드라이버의 file_operations 구조체 초기화 등을 빠르게 처리합니다.

  • 레거시 코드 분석 : 주석이 없는 10년 된 C 코드를 던져주고 "이 함수가 인터럽트 컨텍스트에서 안전한지 분석해줘"라고 요청하여 잠재적 버그를 찾습니다.

  • 유닛 테스트 작성 : 임베디드에서 소홀하기 쉬운 Google Test(gtest) 기반의 단위 테스트 코드를 자동으로 생성합니다.

📌 PM (Project/Product Manager)

: HW와 SW의 통역사. (경영 - 영업 - PM - 개발)

임베디드 프로젝트의 PM은 일반 서비스 기획자와 달리 하드웨어 공정과 소프트웨어 일정 사이의 병목을 관리하는 것이 핵심입니다.

✅ 주요 역할 및 역량

  • Dependency 관리 (가장 중요)
    : "B보드 샘플이 2주 지연됩니다." -> "그럼 SW 팀은 그 기간 동안 드라이버 개발 대신 UI 작업을 먼저 당겨서 합시다."와 같은 일정 조율 능력.

  • BoM Cost(자재비) vs 성능 조율
    : 개발자는 고성능 칩을 원하고, 구매팀은 싼 칩을 원할 때, "이 기능을 구현하려면 최소한 스펙의 칩이 필요하다"는 기술적 근거를 가지고 중재해야 합니다.

  • 이슈 분류 (Triage)
    : 버그가 발생했을 때 이것이 "HW 납땜 불량"인지, "SW 로직 에러"인지, "기구적인 발열 문제"인지 초기 판단을 내려 적절한 담당자에게 할당해야 합니다.

0개의 댓글