AI 도구를 사용하는 자동차 소프트웨어 팀의 최신 개발 패턴AI 기반 개발 툴을 사용하여 ECU 및 클라우드 인프라 전반에서 커넥티드 카 시스템을 구축하고 테스트하는 자동차 소프트웨어 엔지니어 팀
Industry Insights

/

May 30, 2025

/

#

Min Read

AI 도구를 사용하는 자동차 소프트웨어 팀의 최신 개발 패턴

This is an external post, click the button below to view.
View Post

자동차 소프트웨어 복잡성이 계속 증가함에 따라 엔지니어링 팀은 개발자 효율성을 개선하고 오류를 줄이며 안전에 중요한 시스템의 품질을 유지하기 위해 AI 지원 도구를 사용하고 있습니다.Sibros는 OTA 업데이트부터 데이터 로깅 및 진단에 이르기까지 커넥티드 카 플랫폼 전반의 개발을 지원하기 위해 커서 IDE, Windsurf, Cline, Claude Code 및 기타 대규모 언어 모델 (LLM) 과 같은 도구를 채택했습니다.

이 기사에서는 특히 임베디드 및 클라우드 기반 자동차 소프트웨어의 경우 AI 코딩 어시스턴트를 워크플로우에 통합하기 위한 실용적인 패턴, 교훈 및 팁을 공유합니다.이는 이론적인 아이디어가 아니라 우리가 생산 시스템을 구축하기 위해 일상적인 워크플로에 통합하고 있는 실제 적용 방법입니다.여러분도 그럴 수 있습니다.

구조부터 시작: AI 지원 계획 및 아키텍처

자동차 시스템에서는 설계 단계 초기에 발생한 실수는 나중에 수정하기에는 비용이 많이 듭니다. 이는 OTA 업데이트 오케스트레이션 또는 로그 스트리밍과 같이 긴밀하게 연결된 서비스에서 특히 그렇습니다.Cursor IDE에서는 AI를 사용하여 시스템을 공동 설계하는 광범위한 계획부터 시작하여 모든 새로운 기능을 시작할 수 있습니다.

우리는 LLM이 서비스 책임을 정의하고, 도메인 모델을 설계하고, 통신 계약을 예상하도록 촉구합니다.

OTA 소프트웨어 업데이트를 위한 배포 서비스를 구축하고 있습니다.다음 내용을 요약해 주세요.

  1. 서비스 책임
  2. 엔티티 모델 및 필드
  3. 서비스 간 통신 포인트
  4. Go 기반 모노레포의 권장 폴더 구조

프롬프트 예시:

We are building a deployment service for OTA software updates. Please outline: 1. Service responsibilities 2. Entity models and fields 3. Service-to-service communication points 4. Suggested folder structure for Go-based monorepo

이러한 종류의 선행 설계는 나중에 발생하는 이탈을 줄이고 전체 팀이 아키텍처 결정 전반에 걸쳐 일관성을 유지할 수 있도록 합니다.

.cursorrules를 사용하여 AI에 코드베이스에 대해 교육하기

기본적으로 LLM에는 특정 리포지토리에 대한 컨텍스트가 없습니다.그곳이 바로 그곳입니다. . 커서 규칙 파일이 들어옵니다.프로젝트의 AI 온보딩 문서라고 생각하시면 됩니다.

이를 사용하여 다음을 정의합니다.

  • 우리의 계층화된 아키텍처
  • 이름 지정 규칙
  • 주요 파일 및 역할

예제 스니펫:

## Code Organization - Entity layer: Domain models - Service layer: Business logic - Storage layer: Postgres repositories - Endpoint layer: API definitions

이를 통해 AI는 우리 스타일에 맞는 코드를 완성하고 내부 불일치를 피할 수 있습니다.

안전에 좌회전: 테스트 우선 AI 워크플로우

자동차 코드는 펌웨어 업데이트, 브레이크 컨트롤러 또는 원격 측정 진단과 같은 중요한 기능에 영향을 미치는 경우가 많습니다.즉, AI 생성 코드는 테스트, 예측 및 검증이 가능해야 합니다.

우리는 “테스트 우선” 프롬프트 접근 방식을 사용합니다. 즉, AI에 로직 작성을 요청하기 전에 성공이 어떤 모습인지 정의하는 것입니다.

테스트 생성 프롬프트:

Write integration tests for the software rollout endpoint. Test cases: - Valid rollout with multiple staged deployments - Failure when package ID is missing - Rollout respects feature flag settings

이를 통해 AI가 제약 조건 내에서 작동하고 다운스트림에서 원치 않는 동작을 방지할 수 있습니다.

대규모 디버깅: 오류 메시지 삽입

더 이상 전체 스택 트레이스를 수동으로 읽지 않습니다.대신 데이터를 Cursor에 직접 붙여넣고 근본 원인 분석을 요청합니다.이는 패닉이 자주 발생하는 Go에서 특히 유용합니다.

프롬프트 예제:

Error: `panic: runtime error: invalid memory address or nil pointer dereference` This happens when trying to call `.Deploy()` inside the OTA rollout logic. Help me debug.

이는 OTA 롤아웃 로직 내에서 `.Deploy () '를 호출하려고 할 때 발생합니다.디버그 도와주세요.

AI는 가능한 원인을 반환하고, 로깅 라인을 제안하고, 수정 사항까지 제공합니다.예전에는 30분 동안 고무를 더킹하고 통나무를 선별하던 작업을 대체할 수 있습니다.

Git 위생을 통한 LLM 드리프트 방지

LLM을 사용할 때 흔히 발생하는 함정 중 하나는 손상된 코드 위에 수정 사항을 쌓아두는 경향이 있다는 것입니다.이로 인해 “크래프트 (cruft)" 가 생깁니다. 이 용어는 근거가 부족한 편집 레이어를 가리키는 용어입니다.

이를 방지하려면:

  • AI로 인한 변경이 성공할 때마다 약속합니다.
  • 우리는 자유롭게 재설정합니다 git 리셋 --하드
  • 우리는 Cursor를 주니어 엔지니어처럼 취급합니다. 잠재력은 높지만 감독이 필요합니다.

이러한 습관은 코드를 깔끔하게 유지하고 미묘하게 손상된 제품을 배송할 위험을 최소화합니다.

AI 페어 프로그래머와 함께하는 리팩토링

많은 AI 사용자는 리팩토링에 Cursor를 충분히 활용하지 않습니다.우리는 이를 사전에 활용하여 기술 부채를 줄입니다.Cursor는 긴 함수, 반복되는 블록 또는 일관되지 않은 패턴을 찾아내는 데 유용합니다.

프롬프트:

Refactor `updateRolloutStatus` to: 1. Reduce nesting 2. Improve naming 3. Move DB logic to storage layer 4. Keep behavior identical (covered by existing tests)

이를 통해 테스트 커버리지에 대한 확신을 유지하면서 레거시 코드를 더 빠르게 현대화할 수 있습니다.

AI와 더 잘 작동하는 스택 및 아키텍처 선택

우리는 일부 프레임워크와 패턴이 다른 프레임워크보다 AI 친화적이라는 것을 알게 되었습니다.커서는 시스템이 모듈식이고 형식화되어 있고 문서화되어 있을 때 가장 잘 작동합니다.

우리는 다음을 선호합니다:

  • 계층화된 클린 아키텍처를 사용하세요
  • 리액트 후크가 있는 타입스크립트
  • 명확하게 정의된 서비스 경계

내부 전용 DSL과 형식화되지 않은 API를 피하면 AI의 효율성이 크게 높아집니다.

온디맨드 문서

AI는 코드만 작성하는 것이 아니라 문서도 작성합니다.우리는 Cursor를 사용하여 내부 문서, API 사양, 심지어 아키텍처 결정 기록 (ADR) 을 생성합니다.

프롬프트:

Generate API documentation for `POST /v1/rollouts`. Include: - Purpose - Request/response schema - Error codes - Authorization behavior

이렇게 하면 수동 오버헤드가 줄어들고 기능이 발전함에 따라 내부 문서를 최신 상태로 유지할 수 있습니다.

최종 생각

이러한 AI 지원 개발 패턴은 이론에서 나온 것이 아닙니다.실제 자동차급 시스템을 구축하는 데 수백 시간을 투자한 결과 발전한 것이죠.우리의 조언: AI를 오라클이 아닌 협력자처럼 대하세요.반복과 제안은 IT 부서에 맡기되, 특히 안전에 중요한 로직의 경우 항상 사람이 직접 검토하도록 하세요.

신뢰성을 훼손하지 않으면서 더 빠르게 움직이고자 하는 커넥티드 카 개발자에게 이러한 패턴을 채택하면 진정한 우위를 점할 수 있습니다.

샤오지엔 황
샤오지엔 황
Xioajian은 Sibros 소프트웨어 개발 및 클라우드 인프라 팀을 이끌고 있습니다.Sibros에 입사하기 전에는 Nuro.ai 에서 제품 책임자로 근무했으며 그 전에는 Uber와 Facebook에서 핵심 엔지니어로 근무했습니다.그는 Uber에서 전 세계 앱을 위한 Uber의 중요 워크로드를 실행하는 클라우드 인프라를 구축한 팀을 이끌었습니다.